版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 一、 引言2</b></p><p><b> 二、 方案設(shè)計(jì)2</b></p><p><b> 1. 方案一2</b></p><p><b> 2.
2、方案二3</b></p><p><b> 三、總體設(shè)計(jì)4</b></p><p> 1.單片機(jī)串行口通信5</p><p> 2. MAX232芯片5</p><p><b> 五、軟件設(shè)計(jì)5</b></p><p> 六、整體電路設(shè)計(jì)6&
3、lt;/p><p><b> 七、結(jié)論6</b></p><p><b> 八、附錄7</b></p><p><b> 1、發(fā)送程序7</b></p><p><b> 2、接收程序8</b></p><p><
4、b> 3、整體電路圖9</b></p><p><b> 九、參考文獻(xiàn)10</b></p><p> 雙機(jī)之間的串行通信設(shè)計(jì)</p><p><b> 引言</b></p><p> 由于MCS51系列單片機(jī)具有性能穩(wěn)定、工作可靠、價(jià)格低廉等特點(diǎn),因此其應(yīng)用相當(dāng)廣泛。
5、一個(gè)MCS51系列的單片機(jī)(如Atmel89c**)內(nèi)部包含有RAM、FLASH ROM、兩個(gè)或者三個(gè)16位的定時(shí)器/計(jì)數(shù)器、一個(gè)通用異步串行通信控制器(UART)等多種資源。在這種情況下,一個(gè)系統(tǒng)中就使用了兩個(gè)或兩個(gè)以上的單片機(jī),而單片機(jī)之間就要通過(guò)互連來(lái)進(jìn)行數(shù)據(jù)通信。MCS51系列的單片機(jī)(以下簡(jiǎn)稱單片機(jī))都帶有串口,利用串口進(jìn)行互連通信極為方便,其各種連接方式在許多書籍和資料上都有介紹,在此不再重述。但如果系統(tǒng)要求擴(kuò)充的資源是對(duì)外
6、連接的串口,或?qū)ο嗷ブg的數(shù)據(jù)傳送有一定的速度要求,則單片機(jī)的串口就不能用作系統(tǒng)內(nèi)兩單片機(jī)的通信接口了。所幸的是,單片機(jī)的并行端口也能相互連接來(lái)進(jìn)行數(shù)據(jù)通信。根據(jù)單片機(jī)端口內(nèi)部結(jié)構(gòu)的特點(diǎn),這些端口的端口線可以直接相連,從而使兩單片機(jī)之間并行通信接口的實(shí)現(xiàn)不用另外的硬件電路設(shè)備。</p><p><b> 方案設(shè)計(jì)</b></p><p><b> 1 方
7、案一</b></p><p> 本方案采用單片機(jī)AT89C51作為軟件程序的載體,并采用并行通信方式。并行通信是指數(shù)據(jù)各位同時(shí)并行傳送的通信方式。 如果只需要一個(gè)單片機(jī)向另一個(gè)單片機(jī)傳送數(shù)據(jù),則可以采用單向并行通信接口方式,這種方式較為簡(jiǎn)單。單片機(jī)A為數(shù)據(jù)發(fā)送方,單片機(jī)B為數(shù)據(jù)接收方,8位端口可以是P0?3的任何一個(gè)。數(shù)據(jù)傳送的流程是:?jiǎn)纹瑱C(jī)A將數(shù)據(jù)送到端口后,通過(guò)STB信號(hào)中斷單片機(jī)B。單片機(jī)B進(jìn)
8、入中斷并從端口讀取數(shù)據(jù),讀完后,在LED燈上顯示。原理圖如圖1-1。</p><p><b> 圖1-1</b></p><p><b> 2、方案二 </b></p><p> 本次設(shè)計(jì),對(duì)于兩片89C51,采用RS232進(jìn)行雙機(jī)通信。發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過(guò)電平轉(zhuǎn)換芯片MAX232將TTL電平轉(zhuǎn)換為
9、RS232電平輸出,經(jīng)過(guò)傳輸線將信號(hào)傳送到接收端。接收方也使用MAX232芯片進(jìn)行電平轉(zhuǎn)換后,信號(hào)到達(dá)接收方串行口的接收端。接受方接收后,在數(shù)碼管上顯示接收的信息。 軟件部分,通過(guò)通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送AAH給從機(jī),當(dāng)從機(jī)接收到AAH后,向主機(jī)回答B(yǎng)BH。主機(jī)收到BBH后就把數(shù)碼表TAB[16]中的10個(gè)數(shù)據(jù)送給從機(jī),并發(fā)送檢驗(yàn)和。從機(jī)收到16個(gè)數(shù)據(jù)并計(jì)算接收到數(shù)據(jù)的檢驗(yàn)和,與主機(jī)發(fā)送來(lái)的檢驗(yàn)和進(jìn)行比較,若檢驗(yàn)和相同則發(fā)送00H
10、給主機(jī);否則發(fā)送FFH給主機(jī),重新接受。從機(jī)收到16個(gè)正確數(shù)據(jù)后送到一個(gè)數(shù)碼管顯示。如圖1-2</p><p><b> 圖1-2</b></p><p><b> 3方案論證</b></p><p> 方案一中的傳輸?shù)姆€(wěn)定性明顯不如的方案二中采用串行方式。由于有多根傳輸線并行傳輸數(shù)據(jù),因此傳送速度快、通信速率高。一
11、般而言,串行通信的傳送速度明顯將低于并行通信。但當(dāng)多位數(shù)據(jù)遠(yuǎn)程傳輸時(shí),傳輸線路的開(kāi)銷就成為突出問(wèn)題。由于串行通信只需一對(duì)傳輸線,并且可以利用電話線等有通信信道作為傳輸介質(zhì),因而可以大大降低傳輸線路的成本。所以此報(bào)告結(jié)合實(shí)際,采用串行通信方式,即方案二。很容易看出,采用方案二,電路比較的簡(jiǎn)單穩(wěn)定,將接受到的數(shù)據(jù)顯示出來(lái)。</p><p><b> 總體設(shè)計(jì)</b></p>&l
12、t;p> 最終設(shè)計(jì)電路如下圖3所示,發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過(guò)電平轉(zhuǎn)換芯片MAX232將TTL電平轉(zhuǎn)換為RS232電平輸出,經(jīng)過(guò)傳輸線將信號(hào)傳送到接收端。接收方也使用MAX232芯片進(jìn)行電平轉(zhuǎn)換后,信號(hào)到達(dá)接收方串行口的接收端。接受方接收后,通過(guò)P1口在數(shù)碼管上顯示接收的信息。</p><p> 單元電路(或軟件模塊)設(shè)計(jì)</p><p> 1.單片機(jī)串行通信功能&
13、lt;/p><p> 圖1-4 AT89C51</p><p> 51單片機(jī)的串行接口是一個(gè)全雙工的接口,它可以作為UART(通用異步接受和發(fā)送器)用,也可以作為同步移位寄存器用。數(shù)據(jù)緩沖器(SBUF)接受或發(fā)送的數(shù)據(jù)都要先送到SBUF緩存。有兩個(gè),一個(gè)緩存,另一個(gè)接受,用同一直接地址99H,發(fā)送時(shí)用指令將數(shù)據(jù)送到SBUF即可啟動(dòng)發(fā)送;接收時(shí)用指令將SBUF中接收到的數(shù)據(jù)取出。</p
14、><p> 2.MAX232芯片</p><p> 用8051串行接口通信,如果兩臺(tái)8051單片機(jī)之間的距離很近(不超過(guò)1.5m),可以采用直接將兩臺(tái)8051單片機(jī)的串行接口直接相連,利用其自身的TTL電平(0-5V)直接傳輸數(shù)據(jù)信息。如果傳輸距離較遠(yuǎn)(超過(guò)1.5m),由于傳輸線的阻抗與分布電容,會(huì)產(chǎn)生電平損耗和波形畸變,以至于檢測(cè)不出數(shù)據(jù)或數(shù)據(jù)出錯(cuò)。此時(shí)可利用 RS232標(biāo)準(zhǔn)總線接口,將
15、單片機(jī)輸出的TTL電平轉(zhuǎn)換為RS232標(biāo)準(zhǔn)電平(邏輯1為-15—-5V;邏輯0為+5-—+15V)。用RS232可將傳輸距離提高到15m,如果想遠(yuǎn)距離傳輸,可以采用RS422或者RS485。</p><p> 電平轉(zhuǎn)換芯片MAX232是美信公司(MAXIM)生產(chǎn),專用于進(jìn)行將TTL電平轉(zhuǎn)換為RS232電平的芯片,MAX232內(nèi)部有泵電源,能將+5V電源電壓在芯片內(nèi)提高到RS232電平所需的+10V或者-10V電
16、平。</p><p> 圖1-5電平轉(zhuǎn)換芯片MAX23</p><p><b> 五、軟件設(shè)計(jì)</b></p><p> 通過(guò)通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送AAH給從機(jī),當(dāng)從機(jī)接收到AAH后,向主機(jī)回答B(yǎng)BH。主機(jī)收到BBH后就把數(shù)碼表TAB[16]中的10個(gè)數(shù)據(jù)送給從機(jī),并發(fā)送檢驗(yàn)和。從機(jī)收到16個(gè)數(shù)據(jù)并計(jì)算接收到數(shù)據(jù)的檢驗(yàn)和,與主機(jī)發(fā)
17、送來(lái)的檢驗(yàn)和進(jìn)行比較,若檢驗(yàn)和相同則發(fā)送00H給主機(jī);否則發(fā)送FFH給主機(jī),重新接受。從機(jī)收到16個(gè)正確數(shù)據(jù)后送到一個(gè)數(shù)碼管顯示。</p><p><b> 六、電路整體測(cè)試</b></p><p> 在protues上進(jìn)行仿真實(shí)驗(yàn)。首先使用KeilC將編寫完成的程序編譯生成HEX文件,將HEX文件燒錄到兩片單片機(jī)中,進(jìn)行仿真實(shí)驗(yàn),結(jié)果如下圖所示,可以看到,接收端
18、已將接受到的數(shù)據(jù)完整的顯示了出來(lái)。</p><p><b> 結(jié)論</b></p><p> 經(jīng)過(guò)繁忙而又緊張的課程設(shè)計(jì),終于順利的完成了設(shè)計(jì)任務(wù)。雖然在這段時(shí)間里每天都那么繁忙,但是在這忙碌的過(guò)程中卻得到了許多的收獲。經(jīng)過(guò)課程設(shè)計(jì),在查閱資料的過(guò)程中,學(xué)習(xí)了基于單片機(jī)的C語(yǔ)言程序設(shè)計(jì),了解了單片機(jī)串行通信的基本知識(shí),對(duì)于以后的學(xué)習(xí)和工作都有很大的益處。在學(xué)習(xí)的過(guò)
19、程中,也遇到了一些困難,比如開(kāi)始的時(shí)候,由于發(fā)送端和接收端的通信協(xié)議沒(méi)有做好,導(dǎo)致數(shù)據(jù)不能正確的傳輸,在解決問(wèn)題的過(guò)程中,對(duì)于通信協(xié)議的實(shí)現(xiàn)有了深刻的認(rèn)識(shí)。通過(guò)這次課程設(shè)計(jì),鍛煉了自己獨(dú)立思考的能力。</p><p><b> 附錄</b></p><p><b> 1、主機(jī)發(fā)送程序</b></p><p> #in
20、clude <reg51.h></p><p> #define uchar unsigned char </p><p> void init();</p><p> void send();</p><p> ucharTAB[16] ={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x0
21、7,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};</p><p> uchar i,sum;</p><p><b> int j;</b></p><p><b> main()</b></p><p> { init();</p>&
22、lt;p><b> send();</b></p><p><b> } </b></p><p> void init(void)</p><p><b> { EA=1;</b></p><p><b> ES=1;</b></p
23、><p> TMOD=0x20;</p><p><b> TH1=0xfd;</b></p><p><b> TL1=0xfd;</b></p><p> PCON=0x00;</p><p> SCON=0x50;</p><p><
24、b> TR1=1;</b></p><p><b> } </b></p><p> void send(void)</p><p><b> {do</b></p><p> { SBUF=0xaa;</p><p> while(!TI);&
25、lt;/p><p><b> TI=0;</b></p><p> while(!RI);</p><p><b> RI=0;</b></p><p><b> }</b></p><p> while((SBUF^0xbb)!=0);</
26、p><p><b> do</b></p><p><b> { sum=0;</b></p><p> for(i=0;i<=15;i++)</p><p> { SBUF=TAB[i];</p><p> sum+=TAB[i];</p><
27、;p> while(!TI);</p><p><b> TI=0;</b></p><p><b> }</b></p><p><b> SBUF=sum;</b></p><p> while(!TI);</p><p><b
28、> TI=0;</b></p><p> while(!RI);</p><p><b> RI=0;</b></p><p><b> }</b></p><p> while(SBUF!=0);</p><p><b> }<
29、/b></p><p><b> 2、從機(jī)接收程序</b></p><p> #include<reg51.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p>
30、; void delay(int );</p><p> void receive(void) ;</p><p> void init(void);</p><p> uchar i,sum;</p><p><b> int j;</b></p><p> ucharTAB[16]
31、 ={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};</p><p> void main()</p><p><b> { init();</b></p><p> receive();</p><p
32、><b> }</b></p><p> void init(void)</p><p><b> { EA=1;</b></p><p><b> ES=1;</b></p><p> TMOD=0x20;</p><p><b&
33、gt; TH1=0xfd;</b></p><p><b> TL1=0xfd;</b></p><p> PCON=0x00;</p><p> SCON=0x50;</p><p><b> TR1=1;</b></p><p><b>
34、 } </b></p><p> void delay(int x)</p><p> {int i,j;</p><p> for(i=0;i<x;i++)</p><p> for(j=1;j<=150;j++ );</p><p><b> }</b>&l
35、t;/p><p> void receive(void)</p><p> { uchar TABS[16];</p><p><b> do</b></p><p> { while(!RI);RI=0; }</p><p> while((SBUF^0xaa)!=0);</p&g
36、t;<p> SBUF=0xbb;</p><p> while(!TI);TI=0;</p><p><b> while(1)</b></p><p><b> { sum=0;</b></p><p> for(i=0;i<=15;i++)</p>
37、<p> { while(!RI);RI=0;</p><p> TABS[i]=SBUF;</p><p> sum+=TABS[i];</p><p><b> }</b></p><p> while(!RI);RI=0;</p><p> if((SBUF^sum)=
38、=0)</p><p> { SBUF=0x00;</p><p> while(!TI);</p><p><b> TI=0;</b></p><p><b> break;</b></p><p><b> }</b></p>
39、<p><b> else</b></p><p> { SBUF=0xff;</p><p> while(!TI);</p><p><b> TI=0;</b></p><p><b> }</b></p><p><
40、b> }</b></p><p><b> while(1)</b></p><p> { for(i=0;i<=15;i++)</p><p> { P1=TABS[i];</p><p> delay(500);</p><p><b> }<
41、;/b></p><p><b> }</b></p><p><b> }</b></p><p><b> 系統(tǒng)電路圖</b></p><p><b> 九、參考文獻(xiàn)</b></p><p> [1] 趙茂泰.智
42、能儀器原理及應(yīng)用.北京: 電子工業(yè)出版社,2004.7</p><p> [2] 張毅剛,劉杰.MCS—51單片機(jī)原理及應(yīng)用.哈爾濱: 哈爾濱工業(yè)大學(xué)出版社,2004.6</p><p> [3] 何立民.單片機(jī)應(yīng)用技術(shù)選編.北京: 北京航天航空大學(xué)出版,2002.5</p><p> [4] 張軍,梅麗鳳.單片機(jī)原理接口技術(shù).北京交通大學(xué)出版社,2006.5
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 雙機(jī)串行通信設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---雙機(jī)之間的串行通信設(shè)計(jì)
- 雙機(jī)串行通信課程設(shè)計(jì)
- 雙機(jī)串行通信的設(shè)計(jì)與實(shí)現(xiàn)
- 雙機(jī)串行通信的設(shè)計(jì)與實(shí)現(xiàn)
- 課程設(shè)計(jì) 雙機(jī)串行通信的實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)---串行通信接口設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)報(bào)告-雙機(jī)串行通信
- 學(xué)年論文-基于at89c51的雙機(jī)串行通信設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于usb的串行通信軟硬件設(shè)計(jì)
- 單片機(jī)擴(kuò)展串行通信畢業(yè)設(shè)計(jì)論文
- 單片機(jī)單片機(jī)課程設(shè)計(jì)-雙機(jī)串行通信
- 電子與信息工程畢業(yè)論文單片機(jī)雙機(jī)通信系統(tǒng)設(shè)計(jì)
- 雙機(jī)通訊課程設(shè)計(jì)報(bào)告--雙機(jī)通信的設(shè)計(jì)
- 單片機(jī)串行通信發(fā)射機(jī)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-----單片機(jī)串行通信發(fā)射機(jī)
- 畢業(yè)設(shè)計(jì)---pc機(jī)與多臺(tái)單片機(jī)串行通信設(shè)計(jì)
- 單片機(jī)單片機(jī)課程設(shè)計(jì)-雙機(jī)串行通信e
- 通信工程畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----單片機(jī)串行通信發(fā)射接口技術(shù)
評(píng)論
0/150
提交評(píng)論