畢業(yè)設(shè)計(jì)---pc機(jī)與多臺(tái)單片機(jī)串行通信設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  畢業(yè)設(shè)計(jì)( 論 文 )說(shuō)明書</p><p>  論文題目 PC機(jī)與多臺(tái)單片機(jī)之間的串行通信 </p><p><b>  目 錄</b></p><p>  摘 要…………………………………………………………………………………Ⅱ</p><p>  Abstract ………………………………

2、……………………………………………Ⅲ</p><p>  第一章 緒論 ………………………………………………………………………1</p><p>  第二章 課題實(shí)施方案 ……………………………………………………………2</p><p>  2.1 系統(tǒng)硬件設(shè)計(jì) …………………………………………………………………2</p><p>

3、  2.2 系統(tǒng)軟件設(shè)計(jì) …………………………………………………………………3</p><p>  第三章 硬件電路設(shè)計(jì) ……………………………………………………………5</p><p>  3.1 80C51單片機(jī)結(jié)構(gòu)及其串行通信原理 ………………………………………5</p><p>  3.2 串行接口及其差分轉(zhuǎn)換電路 ………………………………………

4、………17</p><p>  3.3 Protel DXP 2004原理圖設(shè)計(jì)………………………………………………20</p><p>  第四章 系統(tǒng)軟件設(shè)計(jì) …………………………………………………………29</p><p>  4.1 系統(tǒng)的通信協(xié)議 ……………………………………………………………29</p><p>  4

5、.2 C51編程實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的串行通信 ……………………………29</p><p>  4.3 Windows集成開發(fā)環(huán)境uVision2 …………………………………………33</p><p>  第五章 總結(jié) ……………………………………………………………………39</p><p>  致謝 ……………………………………………………………

6、…………………41</p><p>  參考文獻(xiàn) …………………………………………………………………………42</p><p><b>  摘 要</b></p><p>  本文詳細(xì)介紹了基于RS-485總線的PC機(jī)與多臺(tái)單片機(jī)間的串行通信原理、實(shí)現(xiàn)方法和相應(yīng)的通信硬件、軟件設(shè)計(jì)。該設(shè)計(jì)是由PC機(jī)與單片機(jī)組成的主從控制系統(tǒng),其中PC機(jī)做

7、為上位機(jī)對(duì)下位單片機(jī)是實(shí)現(xiàn)控制和監(jiān)視功能。它包括通信和控制兩個(gè)功能模塊。單片機(jī)作為下位機(jī)在整個(gè)系統(tǒng)中屬于從屬地位,主要用來(lái)接收上位機(jī)的命令。由于此通信的PC接口是RS232的9針接口,且下位機(jī)數(shù)目有限(32臺(tái))。所以本設(shè)計(jì)采用了RS485總線以及RS232轉(zhuǎn)RS485的協(xié)議芯片以滿足長(zhǎng)距離多機(jī)通信,本文討論了總線接口轉(zhuǎn)換、主從式通信協(xié)議設(shè)計(jì)方法,給出了采用中斷式處理的通信過(guò)程流程圖,并敘述了設(shè)計(jì)過(guò)程中必備的繪圖軟件Protel DXP的

8、應(yīng)用,以及編輯源代碼軟件keil uVision2的應(yīng)用,實(shí)現(xiàn)了PC機(jī)對(duì)多個(gè)單片機(jī)組成采集終端的通信與管理。</p><p>  關(guān)鍵詞: PC機(jī);單片機(jī);RS485;通信</p><p><b>  Abstract</b></p><p>  The communication 、realized method and correspond

9、ing design of hardware and software between PC and multiple MCUs based on RS-485 is described in detai in the article. This design instroduces a pincipal and subordinate control system which is composed of PC and single

10、chip. Divided from its function, it includes two parts: communication and control, in which PC is used as master, and MCUs is used as slave so as to receive the single order from the master.The bus interface conversion a

11、nd the desi</p><p>  Keywords: PC;MCUs;RS485;communication</p><p><b>  第一章 緒論</b></p><p>  單片機(jī)由于其具有控制功能強(qiáng)、設(shè)計(jì)靈活和性能價(jià)格比高的特點(diǎn)。因此在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用,在工業(yè)控制領(lǐng)域,計(jì)算機(jī)的數(shù)量有一臺(tái)變?yōu)槎嗯_(tái),多臺(tái)計(jì)算機(jī)組成

12、了多機(jī)系統(tǒng),計(jì)算機(jī)分布關(guān)系可以分為緊密耦合和松散耦合,主從控制系統(tǒng)是一種松散式的多機(jī)系統(tǒng),計(jì)算機(jī)之間由通信協(xié)議來(lái)聯(lián)系。此時(shí)往往需要組成上位機(jī)對(duì)下位機(jī)的通訊系統(tǒng),由一臺(tái)上位機(jī)去控制多臺(tái)下位機(jī)。主從控制就是一臺(tái)功能較強(qiáng)的主機(jī)和32臺(tái)左右的從機(jī)組成的多機(jī)系統(tǒng)。上位機(jī)一般是PC機(jī),下位機(jī)一般是單片機(jī)系統(tǒng),執(zhí)行單片機(jī)與PC機(jī)串行通信的問題。</p><p>  本課題計(jì)算機(jī)的通信由上位機(jī)(主機(jī))控制。主機(jī)向各個(gè)從機(jī)發(fā)送命令

13、或者接受從機(jī)反饋的信息,主機(jī)有權(quán)修改從機(jī)的參數(shù),接受從機(jī)的數(shù)據(jù),還可以查看從機(jī)的狀態(tài),可以說(shuō)主機(jī)是主從控制的大腦。在本設(shè)計(jì)中主機(jī)用來(lái)監(jiān)視或查看從機(jī)的狀態(tài),并向從機(jī)發(fā)送命令,在系統(tǒng)中起著主導(dǎo)地位。我們通過(guò)查看主機(jī)界面的狀態(tài)即可響應(yīng)的控制發(fā)送與接收。從機(jī)在系統(tǒng)中處于從屬地位,是命令的執(zhí)行者。從機(jī)之間不能直接聯(lián)系,它們之間必須有主機(jī)這個(gè)橋梁聯(lián)系。</p><p>  在設(shè)計(jì)中我們選用了PC機(jī)作為我們的主機(jī),從機(jī)為單片機(jī)

14、(我們本著可得,性價(jià)比采用此選擇)。但在選擇中出現(xiàn)了通訊接口的問題,我們是串型通訊,在PC機(jī)和單片機(jī)之間,我們需要電平轉(zhuǎn)換,而且考慮到工業(yè)運(yùn)用問題我們需要考慮總的選用,在常用的RS232和RS485中,不能使用雙端信號(hào),因此要求使用較高的輸出電壓,而且其傳輸距離僅為15米。RS485通信接口的信號(hào)傳輸是用兩根線之間的電壓表示邏輯1和0的因?yàn)榘l(fā)送端兩根傳送線,而且接受接收端也是兩根傳送線.這樣RS485接受和發(fā)送僅需要2根線就完成了傳輸.

15、由于傳輸線采用了差動(dòng)信道,所以它的干擾抑制性好,又由于它的阻抗低無(wú)接地問題.傳輸距離可高達(dá)1200m,傳輸速度可達(dá)1Mbps比較上面的數(shù)據(jù),考慮工業(yè)要求,我們采用了RS485方式。</p><p>  第二章 課題實(shí)施方案</p><p>  2.1 系統(tǒng)硬件設(shè)計(jì)</p><p>  PC機(jī)的串行接口為RS-232或USB總線,現(xiàn)階段應(yīng)用更多的是將RS-232接

16、口轉(zhuǎn)換成RS-485接口,然后采用RS-485進(jìn)行長(zhǎng)距離、高速的串行異步通信。單片機(jī)采用RS-485進(jìn)行串行通信,只需要將TTL電平的串行接口通過(guò)芯片轉(zhuǎn)換為RS-485串行接口,這種轉(zhuǎn)換比較簡(jiǎn)單,本系統(tǒng)采用的是MAX485芯片。利用PC現(xiàn)有的RS-232接口,系統(tǒng)中采用專用的RS-232/485標(biāo)準(zhǔn)轉(zhuǎn)換芯片MAX3162E來(lái)實(shí)現(xiàn)。此轉(zhuǎn)換芯片一邊與RS-232標(biāo)準(zhǔn)9針接口相連,另一邊與RS-485總線相連,原理圖如圖2-1所示。</

17、p><p>  圖2-1 系統(tǒng)結(jié)構(gòu)圖</p><p>  在多媒體網(wǎng)絡(luò)廣播系統(tǒng)中,利用PC機(jī)與單片機(jī)夠成的多機(jī)通信系統(tǒng),采用主從式結(jié)構(gòu):主從控制多個(gè)從機(jī),作為從機(jī)的單片機(jī)不主動(dòng)發(fā)送命令或數(shù)據(jù),一切都由主PC機(jī)控制;并且在一個(gè)多級(jí)系統(tǒng)中,只有一臺(tái)主機(jī),各臺(tái)從機(jī)之間不能相互通信,即使有信息交換也必須通過(guò)主從轉(zhuǎn)發(fā)。采用RS-485構(gòu)成的多機(jī)通信系統(tǒng)原理框圖、在總線末端接一個(gè)匹配電阻,吸收總線上的反

18、射信號(hào),使得正常傳輸信號(hào)無(wú)毛刺。匹配電阻的取值應(yīng)該與總線的特性阻抗相當(dāng)。在總線上沒有信號(hào)傳輸時(shí),總線處于懸浮狀態(tài),容易受干擾信號(hào)的影響。將總線上的差分信號(hào)的正端A+和負(fù)端B-之間接一網(wǎng)絡(luò)。當(dāng)總線上沒有傳輸時(shí),正端A+的電平大約為3.2V,負(fù)端B-的電平大約為1.6V,即使有干擾信號(hào),也很難產(chǎn)生串行通信的起始信號(hào)0,從而增加了總線抗干擾的能力。</p><p>  在該系統(tǒng)中,由于采用MAX487差分平衡收發(fā)器芯片

19、,半雙工傳輸方式,因此驅(qū)動(dòng)器可接的下位機(jī)根據(jù)需要最多可擴(kuò)展至128個(gè)。</p><p>  2.2 系統(tǒng)軟件設(shè)計(jì)</p><p><b>  (一)通信協(xié)議設(shè)計(jì)</b></p><p>  為保證通信進(jìn)行,首先做到單片機(jī)的串行口與主控機(jī)串行口的設(shè)置保持一致,即數(shù)據(jù)格式一致、通信波特率相同。如果是多點(diǎn)通信,每個(gè)從機(jī)要分配一個(gè)地址碼。系統(tǒng)中協(xié)議有

20、三種幀格式:呼叫幀、應(yīng)答幀和數(shù)據(jù)幀。呼叫幀由主機(jī)發(fā)出。應(yīng)答幀只能由從機(jī)發(fā)出。當(dāng)從機(jī)收到呼叫幀后,把本機(jī)地址和當(dāng)前狀態(tài)回發(fā)給主機(jī)。設(shè)置開機(jī)自檢、自診斷程序,機(jī)器不能帶病工作;如果需要,還可以設(shè)置在工作空閑時(shí)或定時(shí)自檢程序。</p><p>  PC機(jī)與單片機(jī)構(gòu)成的多機(jī)通信系統(tǒng)采用主從結(jié)構(gòu)。數(shù)據(jù)通信總是有主機(jī)發(fā)起。主機(jī)處于發(fā)送狀態(tài)“說(shuō)”時(shí)從機(jī)總是處于“聽”狀態(tài)。若主機(jī)發(fā)送的地址信息與本地從機(jī)相符,則接受該數(shù)據(jù),否則,

21、繼續(xù)“聽”總線上的數(shù)據(jù)。若從機(jī)需要發(fā)送數(shù)據(jù),則必須等到主機(jī)輪詢本地從機(jī)時(shí),才可以提出請(qǐng)求。這種網(wǎng)絡(luò)模式下從機(jī)不會(huì)“偵聽”其他從機(jī)對(duì)主機(jī)的響應(yīng),這樣就不會(huì)對(duì)其他從機(jī)產(chǎn)生錯(cuò)誤的響應(yīng)。主從式多機(jī)通信協(xié)議中,通信速率設(shè)為19.2kbps。系統(tǒng)上電或復(fù)位后,使所有從機(jī)的SM2位置1處于只接收地址幀監(jiān)聽狀態(tài)。主機(jī)向從機(jī)發(fā)送一幀地址信息,從機(jī)接收到地址幀后,將其與本地地址比較,判斷是否一致。若與本地地址相符,則清除SM2,同時(shí)發(fā)送應(yīng)答幀,進(jìn)入通信狀態(tài)

22、;其他與本地地址不相符的從機(jī)則保持SM2位不變,繼續(xù)監(jiān)聽。主從機(jī)均以中斷方式進(jìn)行通信,程序流程如圖2-2所示:</p><p><b>  否</b></p><p>  圖2-2 通信流程圖</p><p> ?。ǘ┒鄼C(jī)發(fā)送是的分時(shí)說(shuō)、聽</p><p>  多機(jī)傳送時(shí),通信協(xié)議要合理地協(xié)調(diào)總線的分時(shí)公用,通信波特率

23、的計(jì)算要有冗余。采用RS-485總線連接的多個(gè)站點(diǎn),由于485總線是異步半雙工的通信總線,在某一個(gè)時(shí)刻,總線只可能呈現(xiàn)一種狀態(tài),即任一時(shí)刻只有一個(gè)站點(diǎn)在“說(shuō)”,則數(shù)據(jù)將在通信總線里碰撞,結(jié)果是處于接受狀態(tài)的站點(diǎn)不能收到正確的數(shù)據(jù)。在RS-485總線通信網(wǎng)絡(luò)中,必須控制好每個(gè)站點(diǎn)的“聽”、“說(shuō)”狀態(tài),即收、發(fā)狀態(tài),對(duì)總線的使用權(quán)必須進(jìn)行分配,以使各個(gè)從機(jī)的發(fā)送控制信號(hào)在時(shí)間上完全隔離,保證能及時(shí)、正確地傳輸數(shù)據(jù)。要做到總線上設(shè)備在時(shí)序上的

24、嚴(yán)格配合,必須要遵從一下幾點(diǎn):</p><p>  1.復(fù)位時(shí),主從機(jī)都應(yīng)該處于接受狀態(tài)。</p><p>  2.控制端RE、DE的信號(hào)有效脈沖寬應(yīng)該大于發(fā)送或接收一幀信號(hào)的寬度。</p><p>  3.總線上所連接的各從機(jī)的發(fā)送控制信號(hào)在時(shí)序上完全隔開。通信方式一般是主節(jié)點(diǎn)循環(huán)輪詢各個(gè)從節(jié)點(diǎn)。各個(gè)從節(jié)點(diǎn)都有自己的網(wǎng)絡(luò)通信識(shí)別號(hào),即本機(jī)地址。當(dāng)朱節(jié)點(diǎn)的輪詢信息中

25、包含自己的網(wǎng)絡(luò)通信識(shí)別號(hào),此從節(jié)點(diǎn)對(duì)此幀進(jìn)行應(yīng)答,其他節(jié)點(diǎn)則忽略此幀,不做處理。</p><p>  第三章 硬件電路設(shè)計(jì)</p><p>  3.1 80C51單片機(jī)結(jié)構(gòu)</p><p>  3.1.1 MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)</p><p>  在MCS-51系列[1]里,所有產(chǎn)品都是以8051為核心電路發(fā)展起來(lái)的,它們都具有80

26、51的基本結(jié)構(gòu)和軟件特征[2]。從制造工藝來(lái)看,MCS-51系列中的器件基本上可分為HMOS和CMOS兩類。CMOS器件的特點(diǎn)是電流小和功耗低(掉電方式下消耗10uA電流),但對(duì)電平要求高(高電平大于4.5V,低電平小于0.45V),HMOS對(duì)電平要求低(高電平大于2.0V,低電平小于0.8V),但是功耗大。</p><p>  8051單片機(jī)內(nèi)部包含了作為微型計(jì)算機(jī)所必須的基本功能部件,各功能部件相互獨(dú)立而融為

27、一體,集成在同一塊芯片上。8051內(nèi)部結(jié)構(gòu)如圖3-1所示: </p><p>  圖3-1 單片機(jī)內(nèi)部結(jié)構(gòu)圖</p><p><b>  一 CPU結(jié)構(gòu)</b></p><p>  (一)算術(shù)邏輯部件ALU</p><p>  8051的ALU是一個(gè)性能極強(qiáng)的運(yùn)算器[3][4],能進(jìn)行加、減、乘、除四則運(yùn)算,也可進(jìn)行

28、與、或、非等邏輯運(yùn)算,還可以實(shí)現(xiàn)數(shù)據(jù)傳送、移位、判斷和程序轉(zhuǎn)移等功能。</p><p>  (二)定時(shí)控制部件OSC</p><p>  OSC是控制器的核心,能為控制器提供時(shí)鐘脈沖。</p><p><b> ?。ㄈS眉拇嫫鹘M</b></p><p><b>  1.程序計(jì)數(shù)器PC</b>&l

29、t;/p><p>  程序計(jì)數(shù)器PC是一個(gè)二進(jìn)制16位程序地址寄存器(編碼范圍為0000H—FFFFH,共64KB),專門用來(lái)存放下一條需要執(zhí)行的指令的內(nèi)存地址,能自動(dòng)加1。</p><p><b>  2.累加器ACC</b></p><p>  累加器ACC是一個(gè)專門用來(lái)存放操作數(shù)或運(yùn)算結(jié)果的8位寄存器。</p><p>

30、;<b>  3.通用寄存器B</b></p><p>  通用寄存器B是專門為乘法和除法設(shè)置的8位寄存器,通常用來(lái)存放積的高8位或除法的余數(shù)。</p><p>  4.程序狀態(tài)字PSW</p><p>  程序狀態(tài)字PSW是用來(lái)存放指令執(zhí)行后有關(guān)狀態(tài)的8位標(biāo)志寄存器,其各位的定義如圖3-2所示:</p><p>  圖

31、3-2 程序狀態(tài)字各位定義</p><p><b>  5.堆棧指針SP</b></p><p>  SP是一個(gè)8位寄存器,能自動(dòng)加、減1,專門用來(lái)存放堆棧的棧頂?shù)刂贰W裱跋冗M(jìn)后出,后進(jìn)先出”的規(guī)律。</p><p>  6.數(shù)據(jù)指針DPTR</p><p>  DPTR是一個(gè)16位的寄存器,由兩個(gè)八位寄存器DPH和D

32、PL拼裝而成。主要用來(lái)存放存儲(chǔ)器的地址,DPH用來(lái)存放高8位,DPL用來(lái)存放低8位。</p><p><b>  二 ROM存儲(chǔ)器</b></p><p>  8051內(nèi)部?jī)H有4KB ROM存儲(chǔ)器,地址范圍為0000H—0FFFH。8051可外接ROM,但一定保證片內(nèi)和片外之和不能超過(guò)64KB(即8051有64KB的尋址區(qū)0000H—FFFFH),在4KB地址范圍為

33、0000H—0FFFH里還可供片外使用,其取決于控制線EA,如圖3-3所示 </p><p>  1000H----FFFFH</p><p>  0000H----0FFFH</p><p>  圖3-3 程序存儲(chǔ)器地址分配</p><p><b>  三 I/O端口</b></p><p>

34、  I/O段口是MCS-51單片機(jī)對(duì)外部實(shí)現(xiàn)控制和信息交換的必經(jīng)之路,是一個(gè)過(guò)渡的集成電路,用于信息傳送過(guò)程中的速度匹配和增強(qiáng)他的負(fù)載能力。</p><p><b>  并行I/O端口</b></p><p>  8051有四個(gè)并行I/O端口,分別命名為P0、P1、P2和P3,在這四個(gè)并行I/O端口中,每個(gè)端口都有雙向I/O功能。每個(gè)端口內(nèi)部都有一個(gè)八位數(shù)據(jù)輸出鎖存器

35、和一個(gè)八位數(shù)據(jù)輸入緩沖器。</p><p>  四個(gè)并行I/O端口作為通用I/O使用是,共有寫端口、讀端口和讀引腳三種操作方式。寫端口就是輸出數(shù)據(jù),是把累加器A或其他寄存器中數(shù)據(jù)傳送到端口鎖存器中,然后由端口自動(dòng)從端口引腳線上輸出,讀端口是把端口鎖存器中輸出數(shù)據(jù)讀到CPU的累加器。讀引腳是輸入外部數(shù)據(jù)的操作,是從端口引腳線上讀入外部的輸入數(shù)據(jù)。</p><p><b>  串行I

36、/O端口</b></p><p>  8051有一個(gè)全雙工的可編程串行I/O端口。這個(gè)串行I/O端口既可以在程序控制下把CPU的八位并行數(shù)據(jù)變成串行數(shù)據(jù)一位一位地從發(fā)送數(shù)據(jù)線Txd發(fā)送出去,也可以把串行接收到數(shù)據(jù)變成八位并行數(shù)據(jù)送給CPU,而且這種串行發(fā)送和串行接受可以單獨(dú)進(jìn)行,也可以同步進(jìn)行。</p><p>  8051串行發(fā)送和串行接收利用了P3口的第二功能,即P3.1引

37、腳作為串行數(shù)據(jù)的發(fā)送線Txd和P3.0引腳作為串行數(shù)據(jù)的接收線Rxd。串行I/O口的電路結(jié)構(gòu)還包括串行口控制寄存器SCON、電源及波特率選擇寄存器PCON和串行數(shù)據(jù)緩沖器SBUF等。</p><p>  四 定時(shí)器/計(jì)數(shù)器</p><p>  8051內(nèi)部有兩個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器,命名為T0和T1,都由兩個(gè)8位寄存器TH和TL拼裝而成。</p><p>

38、  定時(shí)器/計(jì)數(shù)器T0和T1有定時(shí)器和計(jì)數(shù)器兩種工作模式。 在定時(shí)模式下,T0、T1的計(jì)數(shù)脈沖可以有單片機(jī)時(shí)鐘脈經(jīng)12分頻后提供,故定時(shí)時(shí)間和單片機(jī)時(shí)鐘頻率有關(guān)。</p><p>  在計(jì)數(shù)模式下,T0、T1的計(jì)數(shù)脈沖可以從P3.4和P3.5引腳上輸入。</p><p><b>  五 中斷系統(tǒng)</b></p><p>  中斷是指CPU暫停

39、原程序執(zhí)行轉(zhuǎn)而為外部設(shè)備服務(wù)(執(zhí)行中斷服務(wù)程序),并在服務(wù)完后回到原程序執(zhí)行的過(guò)程。中斷系統(tǒng)是指能夠處理上述中斷過(guò)程所需要的那部分電路。</p><p>  8051有三個(gè)內(nèi)部中斷源和兩個(gè)外部中斷源內(nèi)部中斷源是指兩個(gè)定時(shí)器/計(jì)數(shù)器中斷源和一個(gè)串行口中斷源,串行口中斷源是在串行口每發(fā)送完一個(gè)八位二進(jìn)制數(shù)據(jù)或接受到一組輸入數(shù)據(jù)八位后自動(dòng)向中斷系統(tǒng)提出的。外部中斷源通常指外部設(shè)備其產(chǎn)生的中斷請(qǐng)求信號(hào)可以從P3.2和P3

40、.3(即INT0和INT1)引腳上輸入。</p><p>  3.1.2 MCS-51單片機(jī)引腳功能及其連接</p><p>  一 MCS-51單片機(jī)引腳功能</p><p><b>  引腳如圖3-4所示</b></p><p>  圖3-4 單片機(jī)引腳圖</p><p> ?。ㄒ唬┒丝诰€

41、(4*8=32條)</p><p>  1. P0口(P0.7—P0.0):</p><p>  功能a:不帶片外存儲(chǔ)器,P0可以作為通用I/O口使用,P0.7—P0.0用于傳送CPU的輸入/輸出數(shù)據(jù),此時(shí),輸入緩沖、輸出鎖存,不須外接專用鎖存器。</p><p>  功能b:帶片外存儲(chǔ)器,P0.7—P0.0在CPU訪問片外存儲(chǔ)器時(shí)顯示用于傳送片外存儲(chǔ)器的低8位,然

42、后傳送CPU對(duì)片外存儲(chǔ)器的讀寫數(shù)據(jù)。</p><p>  2.P1口(P1.7—P1.0):</p><p>  通用I/O口,用于傳送CPU的輸入/輸出數(shù)據(jù)。</p><p>  3.P2口(P2.7—P2.0):</p><p>  功能a:通用I/O口,用于傳送CPU的輸入/輸出數(shù)據(jù)。</p><p>  功能b

43、:與P0口引腳的第二功能相配合,用于輸出片外存儲(chǔ)器的高8位地址,共同選中片外存儲(chǔ)器單元,但并不能像P0口那樣還可以傳送存儲(chǔ)器的讀寫數(shù)據(jù)。</p><p>  4. P3口(P3.7—P3.0):</p><p>  功能a:通用I/O口,用于傳送CPU的輸入/輸出數(shù)據(jù)。</p><p>  功能b:控制功能端如下表:</p><p>  P3

44、.0 ………… RXD …………(串行口輸入)</p><p>  P3.1 ………… TXD …………(串行口輸出)</p><p>  P3.2 ………… INT0 …………(外部中斷0輸入)</p><p>  P3.3 ………… INT1 …………(外部中斷1輸入)</p><p>  P3.4 ………… T0 …………

45、(定時(shí)\計(jì)數(shù)器0的外部輸入)</p><p>  P3.5 ………… T1 …………(定時(shí)\計(jì)數(shù)器1的外部輸入)</p><p>  P3.6 ………… WR …………(片外數(shù)據(jù)存儲(chǔ)器寫選通)</p><p>  P3.7 ………… RD …………(片外數(shù)據(jù)存儲(chǔ)器讀選通)</p><p>  (二)電源線(2條)</p&g

46、t;<p>  Vcc為+5V電源線,Vss為接地線。</p><p> ?。ㄈ┛刂凭€(6條)</p><p>  1. ALE/PROG:地址鎖存允許/編程線,配合P0口引腳的第二功能使用。在訪問片外存儲(chǔ)器是,8051CPU在P0.7—P0.0引腳線上輸出片外存儲(chǔ)器低8位地址的同時(shí)還在ALE/PROG線上輸出一個(gè)高電位脈沖,用于把這個(gè)片外存儲(chǔ)器第8位地址鎖存到外部專用地址

47、鎖存器,一邊空出P0.7—P0.0引腳線去傳送隨后而來(lái)的片外存儲(chǔ)器讀寫數(shù)據(jù)。在不訪問片外存儲(chǔ)器時(shí),8051自動(dòng)在ALE/PROG線上輸出頻率為fosc/6的脈沖序列。</p><p>  2. EA/VPP:允許訪問片外存儲(chǔ)器/編程電源線。</p><p>  3. PSEN:片外ROM選通線,在執(zhí)行訪問片外ROM的指令MOVC時(shí),8051自動(dòng)在PSEN線上產(chǎn)生一個(gè)負(fù)脈沖,用于為片外ROM

48、芯片的選通。</p><p>  4. RST/VPD:復(fù)位/備用電源線,可以使8051處于復(fù)位工作狀態(tài)。</p><p>  5. XTAL1和XTAL2:片內(nèi)振蕩電路輸入線。如圖3-5所示</p><p>  二 單片機(jī)地址輸入的連接方式</p><p>  由于單片機(jī)的P2口和P0口具有第二功能(即分別輸入高低地址),故運(yùn)用此功能來(lái)確

49、定從機(jī)的地址,在地址開關(guān)與單片機(jī)之間還需要添加74LS244進(jìn)行緩沖</p><p>  具體連接如圖3-6所示:</p><p>  圖3-5 單片機(jī)3個(gè)控制端的常用連接方法和參數(shù)</p><p>  圖3-6 單片機(jī)地址控制圖</p><p>  3.1.3 MCS-51 中斷系統(tǒng)</p><p>  中斷是指計(jì)算

50、機(jī)暫時(shí)停止原程序執(zhí)行轉(zhuǎn)而為外部設(shè)備服務(wù),并在服務(wù)完后自動(dòng)返回原程序執(zhí)行的過(guò)程。中斷由中斷源產(chǎn)生,中斷源在需要時(shí)可以向CPU提出“中斷請(qǐng)求?!薄爸袛嗾?qǐng)求”通常是一種電信號(hào),CPU一旦對(duì)這個(gè)電信號(hào)進(jìn)行檢測(cè)和響應(yīng)便可自動(dòng)轉(zhuǎn)入該中斷源的中斷服務(wù)程序執(zhí)行,并在執(zhí)行完后自動(dòng)返回原程序繼續(xù)執(zhí)行,并且中斷源不同中斷服務(wù)程序的功能也不同。中斷系統(tǒng)是指能夠?qū)崿F(xiàn)中斷功能的那部分硬件電路和軟件程序,對(duì)于MCS-51單片機(jī),大部分中斷電路都是集成在芯片內(nèi)部的(即

51、內(nèi)部中斷,包括定時(shí)器溢出中斷源2個(gè)和串行口中斷源),只有INT0和INT1中斷輸入線上的中斷請(qǐng)求信號(hào)產(chǎn)生電路才分散在各中斷源電路或接口芯片電路里(即外部中斷)。而本項(xiàng)目中使用的是串行口中斷源。</p><p>  3.1.4 MCS-51的串行通信</p><p>  串行通信[5][6]是一種能把二進(jìn)制數(shù)據(jù)按位傳送的通信,故它所需傳輸線條數(shù)極少,特別適用于遠(yuǎn)程通信之中。</p>

52、;<p><b>  一 串行通信基礎(chǔ)</b></p><p> ?。ㄒ唬┊惒酵ㄐ胖械淖址麕?lt;/p><p>  字符幀也叫數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位等四部分組成。在串行通信中,發(fā)送端一幀一幀發(fā)送信息,接收端一幀一幀接收信息。兩相鄰字符幀之間可以無(wú)空閑位,也可以由若干空閑位,自行定義。圖3-7表示每一幀的結(jié)構(gòu):</p>

53、<p><b>  8位數(shù)據(jù)</b></p><p>  起始位奇偶校驗(yàn) 停止位</p><p>  第n字符幀(共11位)</p><p><b>  圖3-7 幀結(jié)構(gòu)</b></p><p><b>  (二)波特率</b></p><p&g

54、t;  定義是每秒傳送二進(jìn)制數(shù)碼的位數(shù),單位是bps(位/秒),用于表征數(shù)據(jù)傳輸?shù)乃俣龋ㄌ芈试礁?,?shù)據(jù)傳輸速度越快。而實(shí)際的字符傳輸速率是以幀/秒來(lái)衡量。</p><p><b> ?。ㄈ┩ㄐ胖剖?lt;/b></p><p>  1.半雙工制式:A、B只能是一個(gè)發(fā)送,一個(gè)接收,即一條信號(hào)線和一條接地線。</p><p>  2.全雙工制式:A、

55、B兩站間有兩個(gè)獨(dú)立的通信回路,兩站都可以同時(shí)發(fā)送和接收數(shù)據(jù),其兩站間至少需要三條傳輸線:一條用于發(fā)送,一條用于接收和一條用于信號(hào)地。</p><p>  二 MCS-51的串行接口</p><p>  (一) 串行口控制寄存器SCON和PCON[7][8]</p><p>  MCS-51對(duì)串行口的控制是通過(guò)SCON實(shí)現(xiàn)的,也和電源控制寄存器PCON有</p

56、><p>  串行口控制寄存器SCON決定串行口通信工作方式,控制數(shù)據(jù)的接收和發(fā)送,并標(biāo)示串行口的工作狀態(tài)等。其位格式為圖3-8所示:</p><p>  圖3-8 特殊功能寄存器SCON</p><p>  其中fosc為晶振頻率</p><p>  SM2:多機(jī)通訊控制位。在方式0時(shí),SM2一定要等于0。在方式1中,當(dāng)(SM2)=1則只有接收

57、到有效停止位時(shí),RI才置1。在方式2或方式3當(dāng)(SM2)=1且接收到的第九位數(shù)據(jù)RB8=0時(shí),RI才置1。</p><p>  REN:接收允許控制位。由軟件置位以允許接收,又由軟件清0來(lái)禁止接收。</p><p>  TB8: 是要發(fā)送數(shù)據(jù)的第9位。在方式2或方式3中,要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0。例如,可約定作為奇偶校驗(yàn)位,或在多機(jī)通訊中作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)志位。

58、</p><p>  RB8:接收到的數(shù)據(jù)的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8為接收到的停止位。在方式2或方式3中,RB8為接收到的第9位數(shù)據(jù)。</p><p>  TI:發(fā)送中斷標(biāo)志。在方式0中,第8位發(fā)送結(jié)束時(shí),由硬件置位。在其它方式的發(fā)送停止位前,由硬件置位。TI置位既表示一幀信息發(fā)送結(jié)束,同時(shí)也是申請(qǐng)中斷,可根據(jù)需要,用軟件查詢的方法獲得數(shù)據(jù)已發(fā)送

59、完畢的信息,或用中斷的方式來(lái)發(fā)送下一個(gè)數(shù)據(jù)。TI必須用軟件清0。</p><p>  RI:接收中斷標(biāo)志位。在方式0,當(dāng)接收完第8位數(shù)據(jù)后,由硬件置位。在其它方式中,在接收到停止位的中間時(shí)刻由硬件置位(例外情況見于SM2的說(shuō)明)。RI置位表示一幀數(shù)據(jù)接收完畢,可用查詢的方法獲知或者用中斷的方法獲知。RI也必須用軟件清0。</p><p><b>  1. 方式0 </b&g

60、t;</p><p>  在方式0下,串行口的SBUF是作為同步的移位寄存器用的。</p><p>  在串行口發(fā)送時(shí),“SBUF(發(fā)送)”相當(dāng)于一個(gè)并入串出的移位寄存器,由MCS-51的內(nèi)部總線并行接收8位數(shù)據(jù),并從TxD線串行輸出,此時(shí)是在TI=0下進(jìn)行的CPU通過(guò)指令給“SBUF(發(fā)送)”送出發(fā)送字符后,RxD線上即可發(fā)出8位數(shù)據(jù),8位數(shù)據(jù)發(fā)送完后TI由硬件置位,并可向CPU請(qǐng)求中斷

61、,CPU響應(yīng)中斷后先用軟件使TI清零,然后再給“SBUF(發(fā)送)”送下一幀的數(shù)據(jù)。</p><p>  在接收操作時(shí),“SBUF(接收)”相當(dāng)于一個(gè)串入并出的移位寄存器,從RxD線接收一幀串行數(shù)據(jù)并把它并行的送入內(nèi)部總線,此時(shí)RI=0且REN=1,接收電路接收到8位數(shù)據(jù)后,RI自動(dòng)置1并發(fā)出串行口中斷請(qǐng)求,CPU響應(yīng)后RI由軟件復(fù)位。</p><p><b>  2. 方式1 &

62、lt;/b></p><p>  在方式1下,串行口設(shè)定為10位異步通信方式,字符幀中除8位數(shù)據(jù)外,還可有一位起始位和一位停止位。</p><p>  發(fā)送操作時(shí),TI=0,執(zhí)行指令后,發(fā)送電路就自動(dòng)在8位發(fā)送字符前后分別添加一位起始位和一位停止位,并在移動(dòng)脈沖作用下在TxD線上依次發(fā)送一幀信息,發(fā)送完后自動(dòng)維持TxD線高電平。TI也由硬件在發(fā)送停止位時(shí)置位,并由軟件將它復(fù)位。<

63、;/p><p>  接收操作時(shí),RI=0且REN=1,接收電路對(duì)高電平的RxD線采樣,當(dāng)接收電路連續(xù)8次采樣到RxD線為低電平時(shí),相應(yīng)的檢測(cè)器便可確認(rèn)RxD線上有了起始位,在接收數(shù)據(jù)第9位時(shí),當(dāng)RI=0和SM2=0或接收到的停止位為1,才能把接收到的8位字符存入“SBUF(接收)”中,把停止位送入RB8,并使RI=1和發(fā)出串行口中斷請(qǐng)求,若上述條件不滿足,則數(shù)據(jù)被舍去。</p><p>  3

64、. 方式2和方式3</p><p>  方式2和方式3都是11位異步收發(fā)。兩者的差異僅在于通信波特率有所不同方式2的波特率由MCS-51主頻fosc經(jīng)32或64分頻后提供;方式3的波特率有定時(shí)器T1或T2的溢出率經(jīng)32分頻后提供,故它的波特率是可調(diào)的。</p><p>  方式2和方式3的發(fā)送過(guò)程和接收過(guò)程類似于方式1,只是在發(fā)送數(shù)據(jù)第9位時(shí),將之預(yù)先裝入SCON的TB8中,而第9位可由用

65、戶自定義。一幀數(shù)據(jù)發(fā)送完后,TI=1,CPU便可通過(guò)查詢TI來(lái)以同樣方法發(fā)送下一個(gè)字符幀。</p><p>  方式2和方式3的接收過(guò)程也和方式1類似。所不同的是:方式1時(shí)RB8中存放的是停止位,方式2和方式3時(shí)RB8中存放的是數(shù)據(jù)第9位。因此,方式2和方式3時(shí)必須滿足接收有效字符的條件變?yōu)椋篟I=0和SM2=0或者收到的第9位為1,只有上述條件同時(shí)滿足時(shí)接收到的字符才能送入SBUF,第9位數(shù)據(jù)位才能裝入RB8中

66、,并使RI=1。</p><p>  電源控制寄存器PCON中只有一位SMOD與串行口工作有關(guān),它的位格式為圖3-9所示:</p><p>  圖3-9電源控制寄存器PCON</p><p>  SMOD:波特率倍增位。串行口工作在方式1、方式2、方式3時(shí),若SMOD=1,則波特率提高一倍;若SMOD=0,則波特率不提高一倍。</p><p>

67、;  (二) 串行口的通信波特率</p><p>  串行口的通信波特率恰好反映串行口傳輸數(shù)據(jù)的速率。通信波特率的選用,不僅和所選通信設(shè)備、傳輸距離有關(guān),還受傳輸線狀況所制約。</p><p><b>  波特率設(shè)計(jì)</b></p><p><b>  1、方式0的波特率</b></p><p> 

68、 工作方式0時(shí),移位脈沖由機(jī)器周期的第6個(gè)狀態(tài)周期S6給出,每個(gè)機(jī)器周期產(chǎn)生一個(gè)移位脈沖,發(fā)送或接收一位數(shù)據(jù)。因此,波特率是固定的,為振蕩頻率的1/12,不受PCON寄存器中SMOD的影響。用公式表示為:</p><p>  工作方式0的波特率=fosc/12 (式3.1.1)</p><p><b>  2、方式2的波特率</b>&l

69、t;/p><p>  工作方式2時(shí),移位脈沖由振蕩頻率fosc的第二節(jié)拍P2時(shí)鐘(即fosc/2)給出,所以,方式2波特率取決于PCON中的SMOD位的值,當(dāng)SMOD=0時(shí),波特率為fosc的1/64;當(dāng)SMOD=1時(shí),波特率為fosc的1/32,用公式表示為;</p><p>  工作方式2波特率=(2SMOD/64)×fosc (式3.1.2)</p>

70、<p>  3、工作方式1和方式3的波特率</p><p>  在這兩種方式下,串行口波特率是由定時(shí)器的溢出率決定的,因而波特率也是可變的。相應(yīng)公式為:</p><p>  波特率=(2SMOD/32)*定時(shí)器T1溢出率 (式3.1.3)</p><p>  定時(shí)器T1溢出率=(fosc/12)* [1/(2k 初值)] (式3.1.4

71、)</p><p>  實(shí)際上定時(shí)器T1通常采用方式2,因?yàn)槎〞r(shí)器T1在方式2下工作,TH1和TL1分別設(shè)定為兩個(gè)8位重裝計(jì)數(shù)器。</p><p>  表3-1 固定波特率與寄存器狀態(tài)</p><p>  (三) 串口工作方式2、3的發(fā)送接收時(shí)序</p><p>  串口工作方式2、3的發(fā)送、接收時(shí)序如圖3-11所示。</p>

72、<p>  圖3-11發(fā)送接收時(shí)序圖</p><p>  3.2 串行接口及其電平轉(zhuǎn)換電路</p><p>  3.2.1串行接口RS232結(jié)構(gòu)與引腳功能</p><p>  RS232是個(gè)人計(jì)算機(jī)上的通信接口之一,由電子工業(yè)協(xié)會(huì)(Electronic Industries Association,EIA) 所制定的異步傳輸標(biāo)準(zhǔn)接口。通常 RS-232

73、接口以9個(gè)引腳 (DB-9) 或是25個(gè)引腳 (DB-25) 的型態(tài)出現(xiàn)如圖3-12所示。(這里我們運(yùn)用DB-9,其針孔意義如圖3-13所示 )</p><p>  在多數(shù)情況下主要使用主通道,對(duì)于一般雙工通信,僅需幾條信號(hào)線就可實(shí)現(xiàn),如一條發(fā)送線、一條接收線及一條地線。 </p><p>  RS-232標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸速率為每秒150、300、600、1200、2400、4800、9

74、600、19200波特。</p><p>  RS-232 標(biāo)準(zhǔn)規(guī)定,驅(qū)動(dòng)器允許有2500pF的電容負(fù)載,通信距離將受此電容限制,例如,采用150pF/m的通信電纜時(shí),最大通信距離為15m;若每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號(hào)傳送,存在共地噪聲和不能抑制共模干擾等問題,因此一般用于15m以內(nèi)的通信。同時(shí)RS232是點(diǎn)對(duì)點(diǎn)(即只用一對(duì)收、發(fā)設(shè)備)的通信,因此PC機(jī)無(wú)

75、法直接對(duì)多個(gè)下位機(jī)進(jìn)行遠(yuǎn)距離通信。</p><p>  圖3-12 9針、25針接口 圖3-13 9針管腳意義</p><p>  RS232的電器特性、邏輯電平和各種信號(hào)線功能的規(guī)定。 </p><p>  在TxD和RxD上:</p><p>  邏輯1:-3V ~-15V </p>

76、<p>  邏輯0:+3V~+15V </p><p>  發(fā)送數(shù)據(jù)(TxD)——通過(guò)TxD終端將串行數(shù)據(jù)發(fā)送到MODEM,(DTE→DCE)。 </p><p>  接收數(shù)據(jù)(RxD)——通過(guò)RxD線終端接收從MODEM發(fā)來(lái)的串行數(shù)據(jù),(DCE→DTE)。 </p><p>  以上規(guī)定說(shuō)明了RS232標(biāo)準(zhǔn)對(duì)邏輯電平的定義。對(duì)于數(shù)據(jù)(信息碼):邏輯“1”

77、的電平低于-3V,邏輯“0”的電平高于+3V。也就是當(dāng)傳輸電平的絕對(duì)值大于3V時(shí),電路可以有效地檢查出來(lái),介于-3~+3V之間的電壓無(wú)意義,低于-15V或高于+15V的電壓也認(rèn)為無(wú)意義,因此,實(shí)際工作時(shí),應(yīng)保證電平在±(3~15)V之間。  RS232與TTL轉(zhuǎn)換: RS232是用正負(fù)電壓來(lái)表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計(jì)算機(jī)接口或終端的TTL器件連接,必須在EIA RS-232C 與

78、TTL電路之間進(jìn)行電平和邏輯關(guān)系的變換。實(shí)現(xiàn)這種變換的方法可用分立元件,也可用集成電路芯片。今使用MAX3162芯片以實(shí)現(xiàn)電平間的轉(zhuǎn)換。 </p><p>  RS485接口的通信原理</p><p>  圖3-14 MAX485引腳圖</p><p>  在圖3-14中顯示出了RS-485的引腳圖。RS485采用差分信號(hào)負(fù)邏輯,+2V~+6V表示“0”,- 6V~

79、- 2V表示“1”。RS485有兩線制和四線制兩種接線,四線制只能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信方式,現(xiàn)很少采用,現(xiàn)在多采用的是兩線制接線方式,這種接線方式為總線式拓樸結(jié)構(gòu)在同一總線上最多可以掛接32個(gè)結(jié)點(diǎn)。在RS485通信網(wǎng)絡(luò)中一般采用的是主從通信方式,即一個(gè)主機(jī)帶多個(gè)從機(jī)。很多情況下,連接RS-485通信鏈路時(shí)只是簡(jiǎn)單地用一對(duì)雙絞線將各個(gè)接口的“A”、“B”端連接起來(lái)。</p><p>  圖3-15 兩線制總線拓?fù)涫浇Y(jié)構(gòu)

80、</p><p>  與RS232相比較RS485有以下幾個(gè)特點(diǎn)[8]:</p><p>  1. RS-485的電氣特性:邏輯“1”以兩線間的電壓差為+(2—6) V表示;邏輯“0”以兩線間的電壓差為-(2—6)V表示。接口信號(hào)電平比RS-232-C降低了,就不易損壞接口電路的芯片, 且該電平與TTL電平兼容,可方便與TTL 電路連接。 </p><p>  2.

81、 RS-485的數(shù)據(jù)最高傳輸速率為10Mbps </p><p>  3. RS-485接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干能力增強(qiáng),即抗噪聲干擾性好。 </p><p>  4. RS-485最大的通信距離約為1219M,最大傳輸速率為10Mb/S,傳輸速率與傳輸距離成反比,在100Kb/S的傳輸速率下,才可以達(dá)到最大的通信距離,如果需傳輸更長(zhǎng)的距離,需要加485中繼器。RS

82、-485總線一般最大支持32個(gè)節(jié)點(diǎn),如果使用特制的485芯片,可以達(dá)到128個(gè)或者256個(gè)節(jié)點(diǎn),最大的可以支持到400個(gè)節(jié)點(diǎn)。</p><p>  因RS-485接口具有良好的抗噪聲干擾性,長(zhǎng)的傳輸距離和多站能力等上述優(yōu)點(diǎn)就使其成為首選的串行接口。 由于RS485接口組成的半雙工網(wǎng)絡(luò),一般只需二根連線,所以RS485接口均采用屏蔽雙絞線傳輸。</p><p>  3.2.3 MAX3162

83、E電平轉(zhuǎn)換芯片</p><p>  由于PC機(jī)默認(rèn)的只帶有RS232接口,有一種方法可以得到PC上位機(jī)的RS485電路即通過(guò)RS232/RS485轉(zhuǎn)換芯片將PC機(jī)串口RS232信號(hào)轉(zhuǎn)換成RS485信號(hào),即采用MAXIM公司生產(chǎn)的MAX3162E協(xié)議轉(zhuǎn)換接口芯片,實(shí)現(xiàn)RS232與RS485協(xié)議轉(zhuǎn)換的接口電路。</p><p>  MAX3162E功能分為四部分:⑴兩路RS232電平信號(hào)到TT

84、L電平信號(hào)的轉(zhuǎn)換(19腳-10腳、20腳-9腳,15腳為使能端);⑵兩路TTL電平信號(hào)到RS232電平信號(hào)的轉(zhuǎn)換(21腳-8腳、24腳-5腳,16腳為使能端);⑶一路TTL邏輯電壓信號(hào)到RS485差分信號(hào)的轉(zhuǎn)換(23腳-6腳、7腳,22腳為使能端。</p><p>  使能端無(wú)效時(shí),6腳、7腳呈高阻態(tài));⑷一路RS485差分信號(hào)到TTL邏輯電壓信號(hào)的轉(zhuǎn)換(17腳、18腳-11腳,12腳為使能端。使能端無(wú)效時(shí),11

85、腳呈高阻態(tài))。在圖2中利用了RS232的RTS信號(hào)來(lái)控制總線的方向。當(dāng)RTS為邏輯電平1(-12V)時(shí),9腳輸出為TTL的邏輯電平1(+5V),使能端DE485(22腳)有效,這樣TXD端發(fā)送的RS232電平信號(hào)就可以由19腳-10腳-23腳-6腳、7腳變?yōu)镽S485差分信號(hào)輸出;當(dāng)RTS為邏輯電平0(+12V)時(shí),9腳輸出為TTL的邏輯電平0(0V),使能端RE485(12腳)有效,這樣RS485輸入的差分信號(hào)就可以由17腳、18腳-

86、11腳-24腳-5腳變?yōu)镽S232電平信號(hào)輸出,RXD端就可以接收數(shù)據(jù)。</p><p>  3.3 Protel DXP 2004原理圖設(shè)計(jì)</p><p>  3.3.1 Protel 2004的基本操作</p><p><b>  一 設(shè)置文檔選項(xiàng)</b></p><p>  在繪制原理圖之前[9],應(yīng)該設(shè)置圖紙

87、的相關(guān)參數(shù),包括圖紙方向、圖紙尺寸,邊框及標(biāo)題欄等。</p><p>  在Protel 2004中,為自定義圖紙大小,執(zhí)行File/New/Schematic sheet/Design /Document Options 命令,打開如圖所示對(duì)話框。</p><p>  在Custom Style選項(xiàng)組中的Use Custom Style中設(shè)置文本框的高度和寬度如圖3-17箭頭標(biāo)記所示:&

88、lt;/p><p><b>  二 使用元器件庫(kù)</b></p><p>  原理圖設(shè)計(jì)的基本構(gòu)件是元器件,為了便于管理,元器件都封裝在元器件庫(kù)中。Protel 2004提供的庫(kù)很多,并且已預(yù)裝了兩個(gè)常用元器件庫(kù),即Miscellaneous Device.IntLib和Miscellaneous Connectors. IntLib。</p><

89、p>  圖3-17 Document Options</p><p><b>  查找元器件:</b></p><p>  在原理圖的設(shè)計(jì)過(guò)程中,為通過(guò)元器件庫(kù)管理器查找需要的元器件,Protel 2004提供了查找原理圖元器件的4種方式,即按元器件的名稱、按元器件描述欄中的資料、按元器件模塊的名稱和按元器件模塊的類型查找,一般情況下是按元器件的名稱查找。&l

90、t;/p><p>  在原理圖設(shè)計(jì)環(huán)境中執(zhí)行Design/Browse Library命令彈出Libraries對(duì)話框,如圖所示。單擊Search按鈕打開Search Libraries 對(duì)話框,在Results選項(xiàng)卡中顯示搜索結(jié)果。如圖3-19所示。</p><p><b>  三 元器件操作</b></p><p>  電路元器件是構(gòu)成電路原理

91、圖的基本組成部分,通過(guò)元器件的操作可了解原理圖繪制的基本方法和步驟,如下框圖3-18所示:</p><p>  圖3-18 元器件操作流程</p><p>  圖3-19 元器件搜索界面</p><p>  3.3.2繪制原理圖</p><p><b>  一 放置元器件</b></p><p>

92、  放置元器件是指將元器件放在原理圖的所需位置,并且設(shè)置元器件的屬性。</p><p>  單擊所需元器件名稱并拖入指定地區(qū),如圖3-20所示</p><p>  圖3-20 放置元器件</p><p><b>  二 連接原理圖線路</b></p><p>  通過(guò)導(dǎo)線可以連接元器件,形成一個(gè)完整的電路原理圖。<

93、/p><p>  圖3-21 原理圖連接方式</p><p>  三 放置標(biāo)注和元件命名</p><p><b> ?。?)放置標(biāo)注</b></p><p>  圖3-22 放置標(biāo)注</p><p><b>  (2)元器件命名</b></p><p> 

94、 電路原理圖有時(shí)需要放置一些說(shuō)明性的文字或文本及網(wǎng)絡(luò)標(biāo)號(hào)。</p><p>  圖3-23 輸入元件名</p><p>  3.3.3制作芯片原理圖庫(kù)</p><p>  由于本原理圖中MAX3261芯片無(wú)法在庫(kù)中無(wú)法找出,故需要自行制作芯片原理圖[10]。</p><p>  在Protel 2004界面中工具欄找到“元件繪制工具”如圖3-

95、24</p><p>  圖3-24 元件制作</p><p><b>  繪制步驟:</b></p><p>  (1) 新建原理圖庫(kù)文件來(lái)啟動(dòng)原理圖庫(kù)文件編輯器</p><p>  Protel 2004設(shè)計(jì)系統(tǒng)的主界面上執(zhí)行菜單命令File/New/Library/Schematic Library此時(shí)將會(huì)新建一個(gè)

96、原理圖庫(kù)文件。</p><p>  (2)單擊工具欄中的按鈕,系統(tǒng)彈出保存文件對(duì)話框。</p><p>  (3)在文件名一欄中填入“My SchLib”,單擊按鈕,此時(shí)在工程【Projects】面板中會(huì)出現(xiàn)剛才保存的元器件原理圖庫(kù)文件名,如圖3-25所示</p><p>  圖3-25 新建的庫(kù)文件</p><p>  (4)在上圖中單擊原

97、理圖庫(kù)文件編輯器面板【SCH Library】標(biāo)簽,打開原理圖庫(kù)文件編輯器面板。</p><p>  (5)在元器件原理圖庫(kù)中新建元器件:?jiǎn)螕鬭dd按鈕,并為元器件設(shè)置名稱。</p><p>  (6)開始在元器件繪制工作區(qū)進(jìn)行元器件原理圖符號(hào)的繪制工作。</p><p>  用戶需對(duì)所要繪制的元器件的管腳按照他們?cè)趯?shí)際元器件中的位置進(jìn)行編號(hào)</p>

98、<p>  單擊繪制原器件工具欄中的按鈕,繪制MAX3162原理圖符號(hào)的外部輪廓。</p><p>  單擊繪制元器件工具欄中的放置引腳按鈕,根據(jù)實(shí)際元器件的管腳名稱和分布位置,在芯片外觀輪廓上添加管腳,單擊該按鈕后按 鍵系統(tǒng)彈出管腳屬性設(shè)置對(duì)話框,如圖3-26所示</p><p>  設(shè)置完畢后單擊ok按鈕,元器件輪廓上適當(dāng)位置,單擊鼠標(biāo)左鍵放置該管腳,用相同的方法

99、,放置其余的管腳,并根據(jù)需要調(diào)整管腳位置,之后元器件原理圖符號(hào)的外形圖如圖3-37所示。</p><p>  圖3-26 原件管腳命名</p><p>  圖3-27 MAX3162E引腳</p><p>  最后執(zhí)行菜單命令File/Save即可將新建的元件“MAX3162”保存在當(dāng)前的元件庫(kù)文件“My SchLib. SchLib”中</p>&

100、lt;p>  3.3.4串行通信原理圖設(shè)計(jì)與繪制</p><p><b>  系統(tǒng)結(jié)構(gòu)圖:</b></p><p>  圖3-28系統(tǒng)結(jié)構(gòu)圖</p><p><b>  系統(tǒng)全局圖:</b></p><p>  8051單片機(jī)串行接口是一個(gè)可編程的全雙工串行通信接口。它可用作異步通信方式(UA

101、RT),與串行傳送信息的外部設(shè)備相連接,或用于通過(guò)標(biāo)準(zhǔn)異步通信協(xié)議進(jìn)行全雙工的8051多機(jī)系統(tǒng)也能通過(guò)同步方式,使用TTL或CMOS移位寄存器來(lái)擴(kuò)充I/O口。</p><p>  8051單片機(jī)通過(guò)管腳RXD(P3.0,串行數(shù)據(jù)接收端)和管腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界通信。SBUF是串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器。它們有相同名字和地址空間,但不會(huì)出現(xiàn)沖突,因?yàn)樗鼈儍蓚€(gè)一個(gè)只能被CPU讀

102、出數(shù)據(jù),一個(gè)只能被CPU寫入數(shù)據(jù)</p><p>  圖3-29系統(tǒng)全局圖</p><p>  第四章 系統(tǒng)軟件設(shè)計(jì)</p><p>  4.1 系統(tǒng)的通信協(xié)議</p><p>  在主從時(shí)多機(jī)系統(tǒng)中,只有一臺(tái)主機(jī),但從機(jī)可以有多臺(tái)。主機(jī)發(fā)送的信息可以傳送到各個(gè)從機(jī)或指定從機(jī),從機(jī)發(fā)送的信息只能為主機(jī)所接收,個(gè)從機(jī)之間不能直接通信。<

103、;/p><p>  主機(jī)發(fā)送并為從機(jī)接收的信息由兩類:一類是地址,用于指示需要和主機(jī)通信的從機(jī)地址,由串行數(shù)據(jù)第9位為“1”標(biāo)志;另一類是數(shù)據(jù),由串行數(shù)據(jù)第9位為“0”標(biāo)志。由于所有從機(jī)的SM2=1,故每個(gè)從機(jī)總能在RI=0時(shí)收到主機(jī)發(fā)來(lái)的地址(因?yàn)榇袛?shù)據(jù)的第9位為“1”),并進(jìn)入各自的中斷服務(wù)程序。在中斷服務(wù)程序中,每臺(tái)從機(jī)把接收到的從機(jī)地址和他的本機(jī)地址(系統(tǒng)設(shè)計(jì)時(shí)所分配)進(jìn)行比較。所有比較不相等的從機(jī)均從各自

104、的中斷服務(wù)程序中退出(SM2仍然等于1),只有比較成功的從機(jī)才是被主機(jī)尋址通信的從機(jī)。被尋址從機(jī)在程序中使SM2=0,以便接收隨之而來(lái)的數(shù)據(jù)。歸結(jié)起來(lái)如下:</p><p>  (1) 所有從機(jī)的SM2=1;以便接收主機(jī)發(fā)來(lái)的地址。</p><p>  (2) 主機(jī)給從機(jī)發(fā)送地址時(shí),第9數(shù)據(jù)上發(fā)送1,以指示從機(jī)接收這個(gè)地址。</p><p>  (3) 有從機(jī)在SM

105、2=1、RB8=1和RI=0時(shí),接收主機(jī)發(fā)來(lái)的從機(jī)地址,進(jìn)入相應(yīng)中斷服務(wù)程序,并和本機(jī)地址比較以確認(rèn)是否為被尋從機(jī)。</p><p>  (4)被尋址從機(jī)通過(guò)指令清除SM2,以正常接收數(shù)據(jù),并向主機(jī)發(fā)回接收到的從機(jī)地址,供主機(jī)核對(duì),未被尋址從機(jī)保持SM2=1,并退出各自中斷服務(wù)程序。</p><p>  (5)完成主機(jī)和被尋址從機(jī)之間的數(shù)據(jù)通信,被尋址從機(jī)在通信完成后,重新使SM2=1,并

106、退出中斷服務(wù)程序,等待下次通信。</p><p>  在多機(jī)通信中,主機(jī)通常把從機(jī)地址作為8位數(shù)據(jù)發(fā)送的(第9位為1),因此,MCS-51構(gòu)成的多機(jī)通信系統(tǒng)最多允許255臺(tái)從機(jī)(地址為00H~FEH),F(xiàn)FH作為一條控制命令由主機(jī)發(fā)送給從機(jī),以便使被尋址從機(jī)SM2=1。</p><p>  4.2 C51編程實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的串行通信</p><p><

107、;b>  單片機(jī)通信程序</b></p><p>  單片機(jī)的通信程序采用C51編程[11],通信以中斷的方式進(jìn)行。單片機(jī)處于從機(jī)地位,每臺(tái)單片機(jī)被分配一個(gè)節(jié)點(diǎn)地址。單片機(jī)每收到一個(gè)PC機(jī)送給本節(jié)點(diǎn)的命令幀,則根據(jù)命令幀中的命令代碼向PC機(jī)回送一個(gè)響應(yīng)幀。</p><p>  其系統(tǒng)主程序流圖如圖4-1所示:</p><p><b>  

108、N</b></p><p><b>  N</b></p><p>  Y </p><p>  圖4-1 系統(tǒng)主程序流圖</p><p>  單片機(jī)接收中斷服務(wù)流程:</p><p><b>  N</b></p&

109、gt;<p><b>  N</b></p><p>  圖4-2 系統(tǒng)中斷服務(wù)流圖</p><p>  以下是單片機(jī)的通信程序[12][13]。</p><p>  #define NODE_ADDR 1 // 定義本節(jié)點(diǎn)地址</p><p>  #define rcv_ snd_COUNT 12 //

110、定義接收發(fā)送緩沖區(qū)大小</p><p>  unsigned char data rcv_snd_buffer[rcv_ snd_COUNT];</p><p>  unsigned char data * rcv_snd_pointer; //定義接收發(fā)送指針</p><p>  void main() { </p><p>  SCON=

111、0x50;TMOD=0x20;TH1=0xfd; // 初始化串口和波特率</p><p>  TR1=1;ET1=0;ES=1;EA=1;</p><p>  rcv_snd_pointer=rcv_snd_buffer; // 初始化接收發(fā)送指針</p><p><b>  …</b></p><p><b&g

112、t;  }</b></p><p>  void comm(void) interrupt 4 using 1 // 通信中斷服務(wù)函數(shù)</p><p><b>  {</b></p><p>  if(RI==1) </p><p><b>  { //接收中斷</b></p>

113、;<p><b>  RI=0; </b></p><p>  *rcv_snd_pointer=SBUF;</p><p>  if(*rcv_snd_pointer == '*')</p><p>  {//接收的字符為結(jié)束字符</p><p>  if((toint(rcv_snd_b

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論