




已閱讀5頁(yè),還剩5頁(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)介
河北大學(xué)2015屆本科生學(xué)年論文(課程設(shè)計(jì))基于AT89C51的雙機(jī)串行通信設(shè)計(jì)摘 要 本文利用ATMEL公司的兩片單片機(jī)AT89C51,采用RS232,通過(guò)KEIL軟件匯編編程和 PROTUES軟件仿真,最終完成雙機(jī)的串行通信。設(shè)計(jì)要求為:兩片單片機(jī)之間進(jìn)行串行通信,發(fā)送端通過(guò)串行口TXD將0F循環(huán)發(fā)送到接收端,完成后在接收端的LED燈亮。軟件部分設(shè)計(jì):通過(guò)通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)收到從機(jī)的接收信號(hào)后,向從機(jī)發(fā)送16個(gè)數(shù)據(jù)與校驗(yàn)和,從機(jī)接收數(shù)據(jù)并與校驗(yàn)和比較,若相同則燈亮。關(guān)鍵詞: AT89C51單片機(jī);匯編程序;接口技術(shù);仿真及封裝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 總體設(shè)計(jì)23 硬件系統(tǒng)設(shè)計(jì)33.1 AT89C51簡(jiǎn)介33.2 整體電路設(shè)計(jì)44 軟件系統(tǒng)設(shè)計(jì)54.1串行通信軟件實(shí)現(xiàn)54.2 程序流程圖. .64.3 源程序. 74.4 系統(tǒng)調(diào)試.105設(shè)計(jì)總結(jié).11參考文獻(xiàn).12121 引言計(jì)算機(jī)與計(jì)算機(jī)的數(shù)據(jù)傳送可以采用串行通訊和并行通訊兩種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠(yuǎn)程傳輸時(shí),避免了多條線路特性的不一致而被廣泛使用。在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同設(shè)備可以方便的連接起來(lái)進(jìn)行通訊。RS232接口是目前最常用的一種串行通訊接口。它是在1970年由美國(guó)嗲你在工業(yè)協(xié)會(huì)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展,單片機(jī)作為計(jì)算機(jī)發(fā)展的一個(gè)重要分支領(lǐng)域,由運(yùn)算器、控制器、存儲(chǔ)器、輸入輸出設(shè)備構(gòu)成,具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),在通信中發(fā)揮著越來(lái)越重要的作用。但能在一些相對(duì)復(fù)雜的單片機(jī)應(yīng)用系統(tǒng)中,僅僅一個(gè)單片機(jī)資源是不夠的,往往需要兩個(gè)或多個(gè)單片機(jī)系統(tǒng)協(xié)同作業(yè),因此如何實(shí)現(xiàn)單片機(jī)與單片機(jī)之間的通訊具有非常重要的現(xiàn)實(shí)意義。2 總體設(shè)計(jì)總體設(shè)計(jì):兩片單片機(jī)之間進(jìn)行串行通信,發(fā)送端通過(guò)串行口TXD將0F循環(huán)發(fā)送到接收端,完成后在接收端的LED燈亮。本次硬件設(shè)計(jì)如圖1所示,對(duì)于兩片89C51,采用RS232進(jìn)行雙機(jī)通信。發(fā)送方的數(shù)據(jù)由串行口TXD輸出。接收方由串行口RXD接收后,燈亮。為提高抗干擾能力,還可以在輸入輸出端增加光耦合進(jìn)行光電隔離。圖1 串行通信的總體設(shè)計(jì)框圖單片機(jī)1單片機(jī)2LED燈復(fù)位電路復(fù)位電路 串行發(fā)送串行接收軟件部分,通過(guò)通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送AAH給從機(jī),當(dāng)從機(jī)接收到AAH后,向主機(jī)回答B(yǎng)BH。主機(jī)收到BBH后就把數(shù)碼表TAB16中的16個(gè)數(shù)據(jù)發(fā)送給從機(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給主機(jī);否則發(fā)送FFH給主機(jī),重新接收。從機(jī)接收到10個(gè)正確數(shù)據(jù)后,則LED燈顯示接收成功。3 硬件系統(tǒng)設(shè)計(jì)3.1VHDL基本程序結(jié)構(gòu)如圖2所示,AT89C51有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,當(dāng)P0口的管腳第一次寫1時(shí),被定義為高阻輸入。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。表1 P3第二功能圖P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。P3口也可作為AT89C51的一些特殊功能口,如表1所示:口管腳第二功能名稱P3.0RXD串行輸入口P3.1TXD串行輸出口P3.2/INT0外部中斷0P3.3INT1外部中斷1P3.4T0計(jì)時(shí)器0外部輸入P3.5T1計(jì)時(shí)器1外部輸入P3.6WR外部數(shù)據(jù)存儲(chǔ)器寫選通P3.7RD外部數(shù)據(jù)存儲(chǔ)器讀選通圖2 AT89C51單片機(jī)的引腳圖ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。PSEN:外部程序存儲(chǔ)器的選通信號(hào)。RST:復(fù)位輸入。EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。3.2 總體電路設(shè)計(jì)最終電路設(shè)計(jì)如下圖3所示:發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過(guò)RS232電平輸出,經(jīng)過(guò)傳輸線將信號(hào)傳輸?shù)浇邮斩藞D3 總體電路設(shè)計(jì)圖4 系統(tǒng)匯編仿真與實(shí)現(xiàn)4.1串行通信軟件實(shí)現(xiàn)4.1.1數(shù)據(jù)緩沖器(SBUF)接受或發(fā)送的數(shù)據(jù)都要先送到SBUF緩存。有兩個(gè),一個(gè)緩存,另一個(gè)接受,用同一直接地址99H,發(fā)送時(shí)用指令將數(shù)據(jù)送到SBUF即可啟動(dòng)發(fā)送;接收時(shí)用指令將SBUF中接收到的數(shù)據(jù)取出。4.1.2串行控制寄存器(PCON)SCON用于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:SM0SM1SM2RENTB8RB8TIRI表2 串行接口工作方式SM0,SM1:串行接口工作方式選擇位,這兩位組合成00,01,10,11對(duì)應(yīng)于工作方式0、1、2、3。串行接口工作方式特點(diǎn)見下表2:SM0SM1工作方式功能波特率0008位同步移位寄存器(用于I/O擴(kuò)展)fORC/1201110位異步串行通信(UART)可變(T1溢出率*2SMOD/32)10211位異步串行通信(UART)fORC/64或fORC/3211311位異步串行通信(UART)可變(T1溢出率*2SMOD/32)SM2:多機(jī)通信控制位。REN:接收允許控制位。軟件置1允許接收;軟件置0禁止接收。TB8:方式2或3時(shí),TB8為要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0。RB9:在方式2或3時(shí),RB8位接收到的第9位數(shù)據(jù),實(shí)際為主機(jī)發(fā)送的第9位數(shù)據(jù)TB8,使從機(jī)根據(jù)這一位來(lái)判斷主機(jī)發(fā)送的時(shí)呼叫地址還是要傳送的數(shù)據(jù)。TI:發(fā)送中斷標(biāo)志。發(fā)送完一幀數(shù)據(jù)后由硬件自動(dòng)置位,并申請(qǐng)中斷。必須要軟件清零后才能繼續(xù)發(fā)送。RI:接收中斷標(biāo)志。接收完一幀數(shù)據(jù)后由硬件自動(dòng)置位,并申請(qǐng)中斷。必須要軟件清零后才能繼續(xù)接收。4.1.3輸入移位寄存器接收的數(shù)據(jù)先串行進(jìn)入輸入移位寄存器,8位數(shù)據(jù)全移入后,再并行送入接收SBUF中。4.1.4波特率發(fā)生器波特率發(fā)生器用來(lái)控制串行通信的數(shù)據(jù)傳輸速率的,51系列單片機(jī)用定時(shí)器T1作為波特率發(fā)生器,T1設(shè)置在定時(shí)方式。波特率時(shí)用來(lái)表示串行通信數(shù)據(jù)傳輸快慢程度的物理量,定義為每秒鐘傳送的數(shù)據(jù)位數(shù)。4.1.5波特率計(jì)算當(dāng)定時(shí)器T1工作在定時(shí)方式的時(shí)候,定時(shí)器T1溢出率=(T1計(jì)數(shù)率)/(產(chǎn)生溢出所需機(jī)器周期)。由于是定時(shí)方式,T1計(jì)數(shù)率= fORC/12。產(chǎn)生溢出所需機(jī)器周期數(shù)=模M-計(jì)數(shù)初值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 ;定時(shí)器置方式2MOV TH1,#0F4H ;裝載定時(shí)器初值,波特率2400MIV TL1,#0F4HMOV PCON,#00HSETB TR1 ;啟動(dòng)定時(shí)器MOV SCON,#50H ;設(shè)定串口方式1,且準(zhǔn)備接收應(yīng)答信號(hào)LOOP1:MOV SBUF,#0AAH ;發(fā)聯(lián)絡(luò)信號(hào)JNB TI,$ ;等待一幀發(fā)送完畢CLR TI ;允許在發(fā)送JNB RI,$ ;等待2機(jī)的應(yīng)答信號(hào)CLR TI ;允許再接收MOV A,SBUF ;2號(hào)機(jī)應(yīng)答后,讀至AXRL A,#0BBH ;判斷2號(hào)機(jī)是否準(zhǔn)備完畢JNZ LOOP1 ;2號(hào)機(jī)未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò)LOOP2:MOV RO,#40H ;2號(hào)機(jī)準(zhǔn)備好,設(shè)定數(shù)據(jù)塊地址指針初值MOV R7,#10H ;設(shè)定數(shù)據(jù)塊長(zhǎng)度初值MOV R6,#00H ;清校驗(yàn)和單元LOOP3:MOV SBUF,R0 ;發(fā)送一個(gè)數(shù)據(jù)字節(jié)MOV A,R6ADD A,R0 ;求校驗(yàn)和 MOV R6,A ;保存校驗(yàn)和INC R0JNB TI,$CLR TIDJNZ R7,LOOP3 ;整個(gè)數(shù)據(jù)塊是否發(fā)送完畢MOV SBUF,R6 ;發(fā)送校驗(yàn)和JNB TI,$CLR TIJNB RI,$ ;等待2號(hào)機(jī)的應(yīng)答信號(hào)CLR RIMOV A,SBUF ;2號(hào)機(jī)應(yīng)答,讀至AJNZ LOOP2 ;2號(hào)機(jī)應(yīng)答 錯(cuò)誤,轉(zhuǎn)重新發(fā)送END 4.3.1接收端程序ORG 0000HLJMP STARTSTART:CLR EACLR P1.0MOV TMOD,#20HMOV TH1,#0F4HMOV TH1,#0F4HMOV PCON,#00HSETB TR1MOV SCON,#50H ;設(shè)定串口方式1,且準(zhǔn)備接收LOOP1:JNB RI,$ ;等待1號(hào)機(jī)的聯(lián)絡(luò)信號(hào)CLR RIMOV A,SBUF ;收到1號(hào)機(jī)信號(hào)XRL A,#0AAH ;判是否為1號(hào)機(jī)聯(lián)絡(luò)信號(hào)JNZ LOOP1 ;不是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),在等待MOV SBUF,#0BBH ;是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),發(fā)應(yīng)答信號(hào)JNB TI,$CLR TIMOV R0,#40H ;設(shè)定數(shù)據(jù)塊地址指針初值MOV R7,#10H ;設(shè)定數(shù)據(jù)塊長(zhǎng)度初值MOV R6,#00H ;清校驗(yàn)和單元LOOP2:JNB RI,$CLR RIMOV A,SBUFMOV R0,A ;接收數(shù)據(jù)存儲(chǔ)INC R0ADD A,R6 ;求校驗(yàn)和MOV R6,A DJNZ R7,LOOP2 ;判斷數(shù)據(jù)塊是否接收完畢JNB RI,$ ;完畢,接收1號(hào)機(jī)發(fā)來(lái)的校驗(yàn)和CLR RIMOV A,SBUFXRL A,R6 ;比較校驗(yàn)和JZ END1 ;校驗(yàn)和相等,跳至發(fā)正確標(biāo)志MOV SBUF,#0FFH ;校驗(yàn)和不相等,發(fā)錯(cuò)誤標(biāo)志JNB TI,$ ;轉(zhuǎn)重新接收CLR TIEND1:SETB P1.0MOV SBUF, #00HEND5 系統(tǒng)調(diào)試在protues 上進(jìn)行軟件仿真實(shí)驗(yàn)。首先使用keil將編寫完成的程序編譯生成HEX文件,將HEX文件錄入到兩片單片機(jī)中,進(jìn)行仿真實(shí)驗(yàn),結(jié)果如下圖所示,可以看到,接收端成功接收到數(shù)據(jù)。圖6 系統(tǒng)仿真結(jié)果6 設(shè)計(jì)總結(jié)本次設(shè)計(jì)采用兩片AT89C51單片機(jī)實(shí)現(xiàn)信息的串行通信,設(shè)計(jì)過(guò)程中,從雙機(jī)通信背景的了解,到89C51單片機(jī)具體功能的了解,到串行通信的原理的熟悉,到掌握具體串行通信在雙機(jī)之間的實(shí)現(xiàn);從硬件電路設(shè)計(jì)到程序編寫;從硬件調(diào)試到軟件模擬實(shí)現(xiàn)等。發(fā)送方的數(shù)據(jù)由串行口TXD斷輸出,經(jīng)過(guò)傳輸線將信號(hào)傳送到接收端。接收方接收電平信號(hào),對(duì)于接口電路,短距離傳送,減少抗干擾作用,如果短離遠(yuǎn)雙機(jī)串口中可以連接電平轉(zhuǎn)換器常用芯片RS232,在此不再敘述。設(shè)計(jì)中,收獲不少東西,也遇到了不少的問題。首先,在完成單片機(jī)課程學(xué)習(xí)任務(wù)后,對(duì)內(nèi)容的掌握不夠,缺乏靈活運(yùn)用的能力,對(duì)于知識(shí)的擴(kuò)展也存在一定的問題,因此,面對(duì)設(shè)計(jì)課題,無(wú)法系統(tǒng)地進(jìn)行設(shè)計(jì)思路的擬定。其次,理解不能更好的聯(lián)系實(shí)踐,在鞏固和學(xué)習(xí)硬件知識(shí)的同時(shí),用軟件控制協(xié)調(diào)硬件實(shí)現(xiàn)現(xiàn)實(shí)功能,通過(guò)硬件完成軟件的功能
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 天津市雙菱中學(xué)2024-2025學(xué)年高二上學(xué)期期中考試化學(xué)試題(含答案)
- 廣東省揭陽(yáng)新華中學(xué)2024-2025學(xué)年高一下學(xué)期第一次月考化學(xué)試卷(含答案)
- 2024-2025學(xué)年河北省張家口市懷安縣八年級(jí)(上)期末物理試卷(含答案)
- 2019-2025年軍隊(duì)文職人員招聘之軍隊(duì)文職法學(xué)題庫(kù)綜合試卷A卷附答案
- 餐飲廚房考試試題及答案
- 配對(duì)合同范本(2篇)
- 2025年度施工員(市政工程)專業(yè)技能知識(shí)考試題庫(kù)及答案(一)
- 口腔牙周病知識(shí)培訓(xùn)課件
- 化學(xué)基本知識(shí)培訓(xùn)課件
- 私人酒窖租賃服務(wù)酒品保管免責(zé)
- DB11-T 641-2018 住宅工程質(zhì)量保修規(guī)程
- CoDeSys編程手冊(cè)
- 1981年高考數(shù)學(xué)全國(guó)卷(理科)及其參考答案-1981年高考數(shù)學(xué)
- 義務(wù)教育《歷史》課程標(biāo)準(zhǔn)(2022年版)
- 開工申請(qǐng)開工令模板
- 基于消費(fèi)者心理的中國(guó)奢侈品營(yíng)銷策略分析——以CHANEL為例市場(chǎng)營(yíng)銷專業(yè)
- 單元三 電子合同法律實(shí)務(wù)
- 廣西獲補(bǔ)償資助高校畢業(yè)生在職在崗情況調(diào)查表
- (完整版)機(jī)場(chǎng)報(bào)批程序指南(流程)
- 英文繪本Mymum我媽媽
- 穿心打撈學(xué)習(xí)ppt課件
評(píng)論
0/150
提交評(píng)論