電子工程畢業(yè)設(shè)計雙機(jī)之間的串行通信設(shè)計_第1頁
電子工程畢業(yè)設(shè)計雙機(jī)之間的串行通信設(shè)計_第2頁
電子工程畢業(yè)設(shè)計雙機(jī)之間的串行通信設(shè)計_第3頁
電子工程畢業(yè)設(shè)計雙機(jī)之間的串行通信設(shè)計_第4頁
電子工程畢業(yè)設(shè)計雙機(jī)之間的串行通信設(shè)計_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目 錄一、引言2二、方案設(shè)計21. 方案一22方案二3三、總體設(shè)計41.單片機(jī)串行口通信52. MAX232芯片5五、軟件設(shè)計5六、整體電路設(shè)計6七、結(jié)論6八、附錄71、發(fā)送程序72、接收程序83、整體電路圖9九、參考文獻(xiàn)10雙機(jī)之間的串行通信設(shè)計一、 引言由于MCS51系列單片機(jī)具有性能穩(wěn)定、工作可靠、價格低廉等特點,因此其應(yīng)用相當(dāng)廣泛。一個MCS51系列的單片機(jī)(如Atmel89c*)內(nèi)部包含有RAM、FLASH ROM、兩個或者三個16位的定時器/計數(shù)器、一個通用異步串行通信控制器(UART)等多種資源。在這種情況下,一個系統(tǒng)中就使用了兩個或兩個以上的單片機(jī),而單片機(jī)之間就要通過互連來進(jìn)

2、行數(shù)據(jù)通信。MCS51系列的單片機(jī)(以下簡稱單片機(jī))都帶有串口,利用串口進(jìn)行互連通信極為方便,其各種連接方式在許多書籍和資料上都有介紹,在此不再重述。但如果系統(tǒng)要求擴(kuò)充的資源是對外連接的串口,或?qū)ο嗷ブg的數(shù)據(jù)傳送有一定的速度要求,則單片機(jī)的串口就不能用作系統(tǒng)內(nèi)兩單片機(jī)的通信接口了。所幸的是,單片機(jī)的并行端口也能相互連接來進(jìn)行數(shù)據(jù)通信。根據(jù)單片機(jī)端口內(nèi)部結(jié)構(gòu)的特點,這些端口的端口線可以直接相連,從而使兩單片機(jī)之間并行通信接口的實現(xiàn)不用另外的硬件電路設(shè)備。二、 方案設(shè)計1方案一本方案采用單片機(jī)AT89C51作為軟件程序的載體,并采用并行通信方式。并行通信是指數(shù)據(jù)各位同時并行傳送的通信方式。 如果

3、只需要一個單片機(jī)向另一個單片機(jī)傳送數(shù)據(jù),則可以采用單向并行通信接口方式,這種方式較為簡單。單片機(jī)A為數(shù)據(jù)發(fā)送方,單片機(jī)B為數(shù)據(jù)接收方,8位端口可以是P03的任何一個。數(shù)據(jù)傳送的流程是:單片機(jī)A將數(shù)據(jù)送到端口后,通過STB信號中斷單片機(jī)B。單片機(jī)B進(jìn)入中斷并從端口讀取數(shù)據(jù),讀完后,在LED燈上顯示。原理圖如圖1-1。 圖1-12、方案二 本次設(shè)計,對于兩片89C51,采用RS232進(jìn)行雙機(jī)通信。發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過電平轉(zhuǎn)換芯片MAX232將TTL電平轉(zhuǎn)換為RS232電平輸出,經(jīng)過傳輸線將信號傳送到接收端。接收方也使用MAX232芯片進(jìn)行電平轉(zhuǎn)換后,信號到達(dá)接收方串行口的接收端。

4、接受方接收后,在數(shù)碼管上顯示接收的信息。軟件部分,通過通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送AAH給從機(jī),當(dāng)從機(jī)接收到AAH后,向主機(jī)回答B(yǎng)BH。主機(jī)收到BBH后就把數(shù)碼表TAB16中的10個數(shù)據(jù)送給從機(jī),并發(fā)送檢驗和。從機(jī)收到16個數(shù)據(jù)并計算接收到數(shù)據(jù)的檢驗和,與主機(jī)發(fā)送來的檢驗和進(jìn)行比較,若檢驗和相同則發(fā)送00H給主機(jī);否則發(fā)送FFH給主機(jī),重新接受。從機(jī)收到16個正確數(shù)據(jù)后送到一個數(shù)碼管顯示。如圖1-2 圖1-23方案論證方案一中的傳輸?shù)姆€(wěn)定性明顯不如的方案二中采用串行方式。由于有多根傳輸線并行傳輸數(shù)據(jù),因此傳送速度快、通信速率高。一般而言,串行通信的傳送速度明顯將低于并行通信。但當(dāng)多位數(shù)據(jù)遠(yuǎn)程

5、傳輸時,傳輸線路的開銷就成為突出問題。由于串行通信只需一對傳輸線,并且可以利用電話線等有通信信道作為傳輸介質(zhì),因而可以大大降低傳輸線路的成本。所以此報告結(jié)合實際,采用串行通信方式,即方案二。很容易看出,采用方案二,電路比較的簡單穩(wěn)定,將接受到的數(shù)據(jù)顯示出來。三、 總體設(shè)計最終設(shè)計電路如下圖3所示,發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過電平轉(zhuǎn)換芯片MAX232將TTL電平轉(zhuǎn)換為RS232電平輸出,經(jīng)過傳輸線將信號傳送到接收端。接收方也使用MAX232芯片進(jìn)行電平轉(zhuǎn)換后,信號到達(dá)接收方串行口的接收端。接受方接收后,通過P1口在數(shù)碼管上顯示接收的信息。四、 單元電路(或軟件模塊)設(shè)計1.單片機(jī)串行通

6、信功能圖1-4 AT89C5151單片機(jī)的串行接口是一個全雙工的接口,它可以作為UART(通用異步接受和發(fā)送器)用,也可以作為同步移位寄存器用。數(shù)據(jù)緩沖器(SBUF)接受或發(fā)送的數(shù)據(jù)都要先送到SBUF緩存。有兩個,一個緩存,另一個接受,用同一直接地址99H,發(fā)送時用指令將數(shù)據(jù)送到SBUF即可啟動發(fā)送;接收時用指令將SBUF中接收到的數(shù)據(jù)取出。2.MAX232芯片用8051串行接口通信,如果兩臺8051單片機(jī)之間的距離很近(不超過1.5m),可以采用直接將兩臺8051單片機(jī)的串行接口直接相連,利用其自身的TTL電平(0-5V)直接傳輸數(shù)據(jù)信息。如果傳輸距離較遠(yuǎn)(超過1.5m),由于傳輸線的阻抗與

7、分布電容,會產(chǎn)生電平損耗和波形畸變,以至于檢測不出數(shù)據(jù)或數(shù)據(jù)出錯。此時可利用 RS232標(biāo)準(zhǔn)總線接口,將單片機(jī)輸出的TTL電平轉(zhuǎn)換為RS232標(biāo)準(zhǔn)電平(邏輯1為-15-5V;邏輯0為+5-+15V)。用RS232可將傳輸距離提高到15m,如果想遠(yuǎn)距離傳輸,可以采用RS422或者RS485。電平轉(zhuǎn)換芯片MAX232是美信公司(MAXIM)生產(chǎn),專用于進(jìn)行將TTL電平轉(zhuǎn)換為RS232電平的芯片,MAX232內(nèi)部有泵電源,能將+5V電源電壓在芯片內(nèi)提高到RS232電平所需的+10V或者-10V電平。圖1-5電平轉(zhuǎn)換芯片MAX23五、軟件設(shè)計通過通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送AAH給從機(jī),當(dāng)從機(jī)接收到

8、AAH后,向主機(jī)回答B(yǎng)BH。主機(jī)收到BBH后就把數(shù)碼表TAB16中的10個數(shù)據(jù)送給從機(jī),并發(fā)送檢驗和。從機(jī)收到16個數(shù)據(jù)并計算接收到數(shù)據(jù)的檢驗和,與主機(jī)發(fā)送來的檢驗和進(jìn)行比較,若檢驗和相同則發(fā)送00H給主機(jī);否則發(fā)送FFH給主機(jī),重新接受。從機(jī)收到16個正確數(shù)據(jù)后送到一個數(shù)碼管顯示。六、電路整體測試在protues上進(jìn)行仿真實驗。首先使用KeilC將編寫完成的程序編譯生成HEX文件,將HEX文件燒錄到兩片單片機(jī)中,進(jìn)行仿真實驗,結(jié)果如下圖所示,可以看到,接收端已將接受到的數(shù)據(jù)完整的顯示了出來。七、 結(jié)論經(jīng)過繁忙而又緊張的課程設(shè)計,終于順利的完成了設(shè)計任務(wù)。雖然在這段時間里每天都那么繁忙,但是在

9、這忙碌的過程中卻得到了許多的收獲。經(jīng)過課程設(shè)計,在查閱資料的過程中,學(xué)習(xí)了基于單片機(jī)的C語言程序設(shè)計,了解了單片機(jī)串行通信的基本知識,對于以后的學(xué)習(xí)和工作都有很大的益處。在學(xué)習(xí)的過程中,也遇到了一些困難,比如開始的時候,由于發(fā)送端和接收端的通信協(xié)議沒有做好,導(dǎo)致數(shù)據(jù)不能正確的傳輸,在解決問題的過程中,對于通信協(xié)議的實現(xiàn)有了深刻的認(rèn)識。通過這次課程設(shè)計,鍛煉了自己獨立思考的能力。八、 附錄1、主機(jī)發(fā)送程序#include <reg51.h>#define uchar unsigned char void init();void send();ucharTAB16 = 0x3f,0x0

10、6,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar i,sum;int j;main() init(); send(); void init(void) EA=1; ES=1; TMOD=0x20; TH1=0xfd; TL1=0xfd;PCON=0x00; SCON=0x50; TR1=1; void send(void)do SBUF=0xaa; while(!TI); TI=0; while(!RI); RI=0; while(SBUF0xbb)!=0);do sum=0;for(i=

11、0;i<=15;i+) SBUF=TABi; sum+=TABi;while(!TI);TI=0;SBUF=sum;while(!TI);TI=0;while(!RI);RI=0;while(SBUF!=0);2、從機(jī)接收程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intvoid delay(int );void receive(void) ;void init(void);uchar i,sum;int j;ucharTAB16 = 0x3f,0x06,0x5b,0x4f,0x66,

12、0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void main() init(); receive(); void init(void) EA=1; ES=1; TMOD=0x20; TH1=0xfd;TL1=0xfd; PCON=0x00; SCON=0x50;TR1=1; void delay(int x)int i,j;for(i=0;i<x;i+)for(j=1;j<=150;j+ );void receive(void) uchar TABS16; do while(!RI);RI=0; while(SBU

13、F0xaa)!=0); SBUF=0xbb; while(!TI);TI=0; while(1) sum=0; for(i=0;i<=15;i+) while(!RI);RI=0; TABSi=SBUF; sum+=TABSi; while(!RI);RI=0; if(SBUFsum)=0) SBUF=0x00;while(!TI); TI=0; break; else SBUF=0xff; while(!TI); TI=0; while(1) for(i=0;i<=15;i+) P1=TABSi; delay(500);3、 系統(tǒng)電路圖九、參考文獻(xiàn)1 趙茂泰.智能儀器原理及應(yīng)用.北京: 電子工業(yè)出版社,2004.72 張毅剛,劉杰.MCS51單片機(jī)原理及應(yīng)用.哈爾濱: 哈爾濱工

溫馨提示

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

評論

0/150

提交評論