畢業(yè)設計(論文)-基于AT89C51的雙機串行通信設計.doc_第1頁
畢業(yè)設計(論文)-基于AT89C51的雙機串行通信設計.doc_第2頁
畢業(yè)設計(論文)-基于AT89C51的雙機串行通信設計.doc_第3頁
畢業(yè)設計(論文)-基于AT89C51的雙機串行通信設計.doc_第4頁
畢業(yè)設計(論文)-基于AT89C51的雙機串行通信設計.doc_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

河北大學2015屆本科生學年論文(課程設計)基于AT89C51的雙機串行通信設計摘 要 本文利用ATMEL公司的兩片單片機AT89C51,采用RS232,通過KEIL軟件匯編編程和 PROTUES軟件仿真,最終完成雙機的串行通信。設計要求為:兩片單片機之間進行串行通信,發(fā)送端通過串行口TXD將0F循環(huán)發(fā)送到接收端,完成后在接收端的LED燈亮。軟件部分設計:通過通信協議進行發(fā)送接收,主機收到從機的接收信號后,向從機發(fā)送16個數據與校驗和,從機接收數據并與校驗和比較,若相同則燈亮。關鍵詞: AT89C51單片機;匯編程序;接口技術;仿真及封裝The design of the Dual Serial Communications system based on the AT89C51 ABSTRACTThis paper uses two pieces of microcontroller AT89C51 made by ATMEL Corporation, using RS232, programming by KEIL software compilation and simulatting by PROTUES software, then carries out the final completion of the serial communication double machine. Design requirements: serial communication between two microcontrollers, the sender sends 0 F to the receiver by via serial port TXD, at the receiving end after the completion of LED lights. Software part of the design: transmitting and receiving via the communication protocol, the host machine after receiving a signal from the slave machine ,sends 16 datas and the checksum, then the slave machine receives datas and compares with the checksum ,if the same is lights.Key words: AT89C51 sngle chip microcomputer; Assemble program; Interface technology; Encapsulation and simulation目錄1引言12 總體設計23 硬件系統(tǒng)設計33.1 AT89C51簡介33.2 整體電路設計44 軟件系統(tǒng)設計54.1串行通信軟件實現54.2 程序流程圖. .64.3 源程序. 74.4 系統(tǒng)調試.105設計總結.11參考文獻.12121 引言計算機與計算機的數據傳送可以采用串行通訊和并行通訊兩種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠程傳輸時,避免了多條線路特性的不一致而被廣泛使用。在串行通訊時,要求通訊雙方都采用一個標準接口,使不同設備可以方便的連接起來進行通訊。RS232接口是目前最常用的一種串行通訊接口。它是在1970年由美國嗲你在工業(yè)協會聯合貝爾系統(tǒng)、調制解調器廠家及計算機終端生產廠家共同制定的用于串行通訊的標準。隨著計算機技術的迅猛發(fā)展,單片機作為計算機發(fā)展的一個重要分支領域,由運算器、控制器、存儲器、輸入輸出設備構成,具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,在通信中發(fā)揮著越來越重要的作用。但能在一些相對復雜的單片機應用系統(tǒng)中,僅僅一個單片機資源是不夠的,往往需要兩個或多個單片機系統(tǒng)協同作業(yè),因此如何實現單片機與單片機之間的通訊具有非常重要的現實意義。2 總體設計總體設計:兩片單片機之間進行串行通信,發(fā)送端通過串行口TXD將0F循環(huán)發(fā)送到接收端,完成后在接收端的LED燈亮。本次硬件設計如圖1所示,對于兩片89C51,采用RS232進行雙機通信。發(fā)送方的數據由串行口TXD輸出。接收方由串行口RXD接收后,燈亮。為提高抗干擾能力,還可以在輸入輸出端增加光耦合進行光電隔離。圖1 串行通信的總體設計框圖單片機1單片機2LED燈復位電路復位電路 串行發(fā)送串行接收軟件部分,通過通信協議進行發(fā)送接收,主機先送AAH給從機,當從機接收到AAH后,向主機回答B(yǎng)BH。主機收到BBH后就把數碼表TAB16中的16個數據發(fā)送給從機,并發(fā)送校驗和。從機收到16個數據并計算接收到數據的校驗和,與主機發(fā)送來的校驗和進行比較,若檢驗相同則發(fā)送00H給主機;否則發(fā)送FFH給主機,重新接收。從機接收到10個正確數據后,則LED燈顯示接收成功。3 硬件系統(tǒng)設計3.1VHDL基本程序結構如圖2所示,AT89C51有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,2個16位可編程定時計數器,2個全雙工串行通信口,2個讀寫口線。P0口:P0口為一個8位漏級開路雙向I/O口,當P0口的管腳第一次寫1時,被定義為高阻輸入。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入。P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。表1 P3第二功能圖P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。P3口也可作為AT89C51的一些特殊功能口,如表1所示:口管腳第二功能名稱P3.0RXD串行輸入口P3.1TXD串行輸出口P3.2/INT0外部中斷0P3.3INT1外部中斷1P3.4T0計時器0外部輸入P3.5T1計時器1外部輸入P3.6WR外部數據存儲器寫選通P3.7RD外部數據存儲器讀選通圖2 AT89C51單片機的引腳圖ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。PSEN:外部程序存儲器的選通信號。RST:復位輸入。EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。3.2 總體電路設計最終電路設計如下圖3所示:發(fā)送方的數據由串行口TXD段輸出,經過RS232電平輸出,經過傳輸線將信號傳輸到接收端圖3 總體電路設計圖4 系統(tǒng)匯編仿真與實現4.1串行通信軟件實現4.1.1數據緩沖器(SBUF)接受或發(fā)送的數據都要先送到SBUF緩存。有兩個,一個緩存,另一個接受,用同一直接地址99H,發(fā)送時用指令將數據送到SBUF即可啟動發(fā)送;接收時用指令將SBUF中接收到的數據取出。4.1.2串行控制寄存器(PCON)SCON用于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:SM0SM1SM2RENTB8RB8TIRI表2 串行接口工作方式SM0,SM1:串行接口工作方式選擇位,這兩位組合成00,01,10,11對應于工作方式0、1、2、3。串行接口工作方式特點見下表2:SM0SM1工作方式功能波特率0008位同步移位寄存器(用于I/O擴展)fORC/1201110位異步串行通信(UART)可變(T1溢出率*2SMOD/32)10211位異步串行通信(UART)fORC/64或fORC/3211311位異步串行通信(UART)可變(T1溢出率*2SMOD/32)SM2:多機通信控制位。REN:接收允許控制位。軟件置1允許接收;軟件置0禁止接收。TB8:方式2或3時,TB8為要發(fā)送的第9位數據,根據需要由軟件置1或清0。RB9:在方式2或3時,RB8位接收到的第9位數據,實際為主機發(fā)送的第9位數據TB8,使從機根據這一位來判斷主機發(fā)送的時呼叫地址還是要傳送的數據。TI:發(fā)送中斷標志。發(fā)送完一幀數據后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)發(fā)送。RI:接收中斷標志。接收完一幀數據后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)接收。4.1.3輸入移位寄存器接收的數據先串行進入輸入移位寄存器,8位數據全移入后,再并行送入接收SBUF中。4.1.4波特率發(fā)生器波特率發(fā)生器用來控制串行通信的數據傳輸速率的,51系列單片機用定時器T1作為波特率發(fā)生器,T1設置在定時方式。波特率時用來表示串行通信數據傳輸快慢程度的物理量,定義為每秒鐘傳送的數據位數。4.1.5波特率計算當定時器T1工作在定時方式的時候,定時器T1溢出率=(T1計數率)/(產生溢出所需機器周期)。由于是定時方式,T1計數率= fORC/12。產生溢出所需機器周期數=模M-計數初值X。4.2程序流程圖4.2.1發(fā)送端程序流程圖圖4 接收端程序流程圖4.2.1發(fā)送端程序流程圖圖5接收端程序流程圖4.3源程序4.3.1發(fā)送端程序ORG 0000H LJMP STARTSTART:CLR EAMOV TMOD,#20H ;定時器置方式2MOV TH1,#0F4H ;裝載定時器初值,波特率2400MIV TL1,#0F4HMOV PCON,#00HSETB TR1 ;啟動定時器MOV SCON,#50H ;設定串口方式1,且準備接收應答信號LOOP1:MOV SBUF,#0AAH ;發(fā)聯絡信號JNB TI,$ ;等待一幀發(fā)送完畢CLR TI ;允許在發(fā)送JNB RI,$ ;等待2機的應答信號CLR TI ;允許再接收MOV A,SBUF ;2號機應答后,讀至AXRL A,#0BBH ;判斷2號機是否準備完畢JNZ LOOP1 ;2號機未準備好,繼續(xù)聯絡LOOP2:MOV RO,#40H ;2號機準備好,設定數據塊地址指針初值MOV R7,#10H ;設定數據塊長度初值MOV R6,#00H ;清校驗和單元LOOP3:MOV SBUF,R0 ;發(fā)送一個數據字節(jié)MOV A,R6ADD A,R0 ;求校驗和 MOV R6,A ;保存校驗和INC R0JNB TI,$CLR TIDJNZ R7,LOOP3 ;整個數據塊是否發(fā)送完畢MOV SBUF,R6 ;發(fā)送校驗和JNB TI,$CLR TIJNB RI,$ ;等待2號機的應答信號CLR RIMOV A,SBUF ;2號機應答,讀至AJNZ LOOP2 ;2號機應答 錯誤,轉重新發(fā)送END 4.3.1接收端程序ORG 0000HLJMP STARTSTART:CLR EACLR P1.0MOV TMOD,#20HMOV TH1,#0F4HMOV TH1,#0F4HMOV PCON,#00HSETB TR1MOV SCON,#50H ;設定串口方式1,且準備接收LOOP1:JNB RI,$ ;等待1號機的聯絡信號CLR RIMOV A,SBUF ;收到1號機信號XRL A,#0AAH ;判是否為1號機聯絡信號JNZ LOOP1 ;不是1號機聯絡信號,在等待MOV SBUF,#0BBH ;是1號機聯絡信號,發(fā)應答信號JNB TI,$CLR TIMOV R0,#40H ;設定數據塊地址指針初值MOV R7,#10H ;設定數據塊長度初值MOV R6,#00H ;清校驗和單元LOOP2:JNB RI,$CLR RIMOV A,SBUFMOV R0,A ;接收數據存儲INC R0ADD A,R6 ;求校驗和MOV R6,A DJNZ R7,LOOP2 ;判斷數據塊是否接收完畢JNB RI,$ ;完畢,接收1號機發(fā)來的校驗和CLR RIMOV A,SBUFXRL A,R6 ;比較校驗和JZ END1 ;校驗和相等,跳至發(fā)正確標志MOV SBUF,#0FFH ;校驗和不相等,發(fā)錯誤標志JNB TI,$ ;轉重新接收CLR TIEND1:SETB P1.0MOV SBUF, #00HEND5 系統(tǒng)調試在protues 上進行軟件仿真實驗。首先使用keil將編寫完成的程序編譯生成HEX文件,將HEX文件錄入到兩片單片機中,進行仿真實驗,結果如下圖所示,可以看到,接收端成功接收到數據。圖6 系統(tǒng)仿真結果6 設計總結本次設計采用兩片AT89C51單片機實現信息的串行通信,設計過程中,從雙機通信背景的了解,到89C51單片機具體功能的了解,到串行通信的原理的熟悉,到掌握具體串行通信在雙機之間的實現;從硬件電路設計到程序編寫;從硬件調試到軟件模擬實現等。發(fā)送方的數據由串行口TXD斷輸出,經過傳輸線將信號傳送到接收端。接收方接收電平信號,對于接口電路,短距離傳送,減少抗干擾作用,如果短離遠雙機串口中可以連接電平轉換器常用芯片RS232,在此不再敘述。設計中,收獲不少東西,也遇到了不少的問題。首先,在完成單片機課程學習任務后,對內容的掌握不夠,缺乏靈活運用的能力,對于知識的擴展也存在一定的問題,因此,面對設計課題,無法系統(tǒng)地進行設計思路的擬定。其次,理解不能更好的聯系實踐,在鞏固和學習硬件知識的同時,用軟件控制協調硬件實現現實功能,通過硬件完成軟件的功能

溫馨提示

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

評論

0/150

提交評論