下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于51單片機(jī)的雙機(jī)串行通信課程設(shè)計一、總體設(shè)計i設(shè)計目的1 .通過設(shè)計相關(guān)模塊充分熟悉51單片機(jī)的最小系統(tǒng)的組成和原理;2 .通過軟件仿真熟悉keil和proteus的配合使用;3 .通過軟件編程熟悉51的C51編程規(guī)范;4 .通過實(shí)際的硬件電路搭設(shè)提高實(shí)際動手能力。5 .設(shè)計要求:兩片單片機(jī)之間進(jìn)行串行通信,A機(jī)將0x06發(fā)送給B機(jī),在B機(jī)的數(shù)碼管上靜態(tài)顯示1,B機(jī)將0f動態(tài)循環(huán)發(fā)送到A機(jī),并在其數(shù)碼管上顯示。3.設(shè)計方案:軟件部分,通過通信協(xié)議進(jìn)行發(fā)送接收,A機(jī)先送0x06(B機(jī)數(shù)碼管顯示1)給B機(jī)(B機(jī)靜態(tài)顯示),當(dāng)從機(jī)接收到后,向B機(jī)發(fā)送代表0-f的數(shù)碼管編碼數(shù)組。B收到0x06后就
2、把數(shù)碼表TAB16中的數(shù)據(jù)送給從機(jī)。二、硬件設(shè)計1.51單片機(jī)串行通信功能U119>XTAL1P0.0MD0XTAL2P0.3ASiD3P0.4/AIMP0.5XAD5P0.6XAD6RSTP0.7AAD7P20/ASP21/A9P2.2/A103S歷3S3736,g35292i''"222324PSENP2.3/A11ALEP2.4/A12EA?P2.S/A13P2.6/A1I4P27ZA15PI0P3s0/RXDP11P3.1axD30英26a.10'114-P1.2P3.2ilxinroIP1,3P3.3ilhinriF1.4F3.4/T0PI.5
3、P35JT1P1.6P3.6AFP1.7P3.7/RD-J5JI4_L.16.a17AT69CS1圖1.AT89C51(52)計算機(jī)與外界的信息交換稱為通信,常用的通信方式有兩種:并行通信和串行通信。51單片機(jī)用4個接口與外界進(jìn)行數(shù)據(jù)輸入與數(shù)據(jù)輸出就是并行通信,并行通信的特點(diǎn)是傳輸信號的速度快,但所用的信號線較多,成本高,傳輸?shù)木嚯x較近。串行通信的特點(diǎn)是只用兩條信號線(一條信號線,再加一條地線作為信號回路)即可完成通信,成本低,傳輸?shù)木嚯x較遠(yuǎn)。51單片機(jī)的串行接口是一個全雙工的接口,它可以作為UART通用異步接受和發(fā)送器)用,也可以作為同步移位寄存器用。51單片機(jī)串行接口的結(jié)構(gòu)如下:(1)數(shù)據(jù)
4、緩沖器(SBUF接受或發(fā)送的數(shù)據(jù)都要先送到SBUF緩存。有兩個,一個緩存,另一個接受,用同一直接地址99H,發(fā)送時用指令將數(shù)據(jù)送到SBUF即可啟動發(fā)送;接收時用指令將SBUF中接收到的數(shù)據(jù)取出。(2)串行控制寄存器(PCONSCONB于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式選擇位,這兩位組合成00,01,10,11對應(yīng)于工作方式0、1、2、3。串行接口工作方式特點(diǎn)見下表SM0SM1功能波特率0008位同步移位寄存器(用于I/O擴(kuò)展)forC1201110位異步串行通信(UART可變(T1溢出率*2SMO
5、D32)10211位異步串行通信(UARTforC64或foRd3211311位異步串行通信(UART可變(T1溢出率*2SMOD32)SM2多機(jī)通信控制位。REN接收允許控制位。軟件置1允許接收;軟件置0禁止接收。TB8:方式2或3時,TB8為要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或1#0。RB9在方式2或3時,RB8位接收到的第9位數(shù)據(jù),實(shí)際為主機(jī)發(fā)送的第9位數(shù)據(jù)TB8,使從機(jī)根據(jù)這一位來判斷主機(jī)發(fā)送的時呼叫地址還是要傳送的數(shù)據(jù)。TI:發(fā)送中斷標(biāo)志。發(fā)送完一幀數(shù)據(jù)后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)發(fā)送。RI:接收中斷標(biāo)志。接收完一幀數(shù)據(jù)后由硬件自動置位,并申請中斷。必須
6、要軟件清零后才能繼續(xù)接收。(3)輸入移位寄存器接收的數(shù)據(jù)先串行進(jìn)入輸入移位寄存器,8位數(shù)據(jù)全移入后,再并行送入接收SBUF中。(4)波特率發(fā)生器波特率發(fā)生器用來控制串行通信的數(shù)據(jù)傳輸速率的,51系列單片機(jī)用定時器T1作為波特率發(fā)生器,T1設(shè)置在定時方式。波特率時用來表示串行通信數(shù)據(jù)傳輸快慢程度的物理量,定義為每秒鐘傳送的數(shù)據(jù)位數(shù)。(5)電源控制寄存器PCON其最高位為SMOD(6)波特率計算當(dāng)定時器T1工作在定時方式的時候,定時器T1溢出率=(T1計數(shù)率)/(產(chǎn)生溢出所需機(jī)器周期)。由于是定時方式,T1計數(shù)率=forC12。產(chǎn)生溢出所需機(jī)器周期數(shù)=模M-計數(shù)初值X。3.整體電路設(shè)計最終設(shè)計電路
7、如下圖3所示,發(fā)送方的數(shù)據(jù)由串行口TXD段輸出,經(jīng)過傳輸線將信號P1口在數(shù)碼管上顯傳送到接收端。信號到達(dá)接收方串行口的接收端。接受方接收后,通過示接收的信息。JO/ADO.1<AD1.2/AD23WD3一4詭045/AD5.6/AD57WD7J2.0/A821也91.2/A10J.3/A11>4/A12J.5/A13?.6/A14>7/A15OURXD.1rrxp,2jNTQ-,3JINT1>3.4/T03亞5.6JWR3一7市PO.O/ADOPOVAD1P0.2JWD2P0.3/AD3P0.4/AD4P0.5WD5P0.5/AD6P口,D7P2.0/A8P2VA9P2
8、2AK10P2.3/A11P2.4/A12P2.5ZA13P2.3WM4R2.7AK15P3.0/RXDP3.1/TXDP3.2lNTD-P3.3/1NT1-P3.4fT0P3.5/T1P3.5/WRP37RD圖3.串行通信電路三、軟件設(shè)計(1)串行口工作于方式1;用定時器1產(chǎn)生9600bit/s的波特率,工作于方式2。(2)功能:將本機(jī)ROM中數(shù)碼表TAB16中的16個數(shù)發(fā)送到從機(jī),并保存在從機(jī)內(nèi)部ROM中,從機(jī)收到這16個數(shù)據(jù)后送到一個數(shù)碼管循環(huán)顯示。(3)通信協(xié)議:主機(jī)首先發(fā)送連絡(luò)信號從機(jī)接收到之后返回一個連絡(luò)信號表示從機(jī)已準(zhǔn)備好接收。四、聯(lián)合調(diào)試在protues上進(jìn)行仿真實(shí)驗。首先使用
9、KeilC將編寫完成的程序編譯生成HEXt件,將HEX文件燒錄到兩片單片機(jī)中,進(jìn)行仿真實(shí)驗,結(jié)果如下圖所示,可以看到,接收端已將接受到的數(shù)據(jù)完整的顯示了出來。IT口HErawiPQ3.auraMa陌平如rusMtru«.«4FCLTWrzmF71iAerzjsfAtirzjfAii才.nz,工am法flgl,,avrMFP3OPOfiliraPJZiTWTnP33T1TTFJ-irniMinfSdXR1173"13京他FFD.lfAPT"ZIK“邛mfZJfAII,H芻儒召工用“工舊EUnTE3.WT5®叮aWTtrwnm.E?3JT1#3jM
10、I>J3川:與EDnDn莖至叁iL等T圖4.仿真圖注:1 .仿真的過程中并沒有體現(xiàn)出單片機(jī)的最小系統(tǒng)的組成元素:時鐘電路和復(fù)位電路,但是實(shí)際的硬件電路中這兩部分是必不可少的,此外,在實(shí)際測試中,程序是事先燒進(jìn)單片機(jī)里的,所以這里并沒有涉及到電平轉(zhuǎn)換的問題(max232芯片和串口的連接)。2 .在數(shù)碼管的共陰極與地之間接三極管是為了放大數(shù)碼管的驅(qū)動電流,讓數(shù)碼管更加清楚的顯示數(shù)據(jù)。附:主要器件:兩個STC89C52RC晶振模塊:兩個11.0592M的晶振四個30pf的電容復(fù)位模塊:兩個開關(guān)兩個10uf的電容兩個10K的電阻兩個1K的電阻顯示模塊:兩個單顯共陰極數(shù)碼管兩個NPN®三
11、極管五、程序清單1. A機(jī)程序#include<reg51.h>#include<absacc.h>sbitkey=P3A6;voidsendrecieve();voidmain()(P1=0XFF;TMOD=0x20;/定時器1工作作方式2TH1=0XFD;TL1=0XFD;/波特率為9600PCON=0X00;/波特率不加倍TR1=1;SCON=0X50;/串口工作方式為3,即11為可變波特率,/開啟允許串口接收中斷,多機(jī)通訊位SM2置1(廣播),TB8置1(表示發(fā)送地址)/開發(fā)送及接受中斷EA=1;key=1;sendrecieve();)voidsendreci
12、eve()(SBUF=0X06;TI=0;while(1)(while(RI!=1);/等待接收數(shù)據(jù)完成RI=0;P1=SBUF;/顯示B發(fā)送來的數(shù)據(jù))2. B機(jī)程序#include<reg51.h>#include<absacc.h>codevoidsendrecieve();sbitkey=P3A6;unsignedcharled尸0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/共陰極,標(biāo)準(zhǔn)接法(a-hPX.0-PX.7)unsignedinti;del
13、ay(unsignedintz)unsignedintx,y;for(x=z;z>0;z-)for(y=6000;y>0;y-);/50msvoidmain()P1=0XFF;TMOD=0x20;/定時器1工作作方式2TH1=0XFD;TL1=0XFD;/波特率為9600PCON=0X00;/波特率不加倍TR1=1;SCON=0X50;串口工作方式為3,即11為可變波特率,key=1;開啟允許串口接收中斷,多機(jī)通訊位SM2置1EA=1;delay(20);sendrecieve();voidsendrecieve()(while(RI!=1);P1=SBUF;RI=0;for(i=
14、0;i<16;i+)(SBUF=ledi;向A發(fā)送信息TI=0;delay(60);/3s)i=0;)六、課設(shè)中遇到的問題及解決辦法:1 .在數(shù)碼管顯示模塊連接三極管時,由于萬用表的測試三極管的環(huán)節(jié)接觸不良,著實(shí)有點(diǎn)讓人頭疼,但是最后通過借了別租的表才解決了問題,而且我們找到了三極管上的型號與之性質(zhì)的對應(yīng)關(guān)系;2 .由于這次我們的課設(shè)內(nèi)容比較簡單,所以我們在軟件環(huán)節(jié)沒有沒遇到什么困難,在軟件仿真時也很順利,但是在最后焊接板子的時候,我們卻遇到了問題:數(shù)碼管的各管腳的排列順序不是遵循一定的規(guī)律的,所以在焊接時要特別注意布局與布線,在這個環(huán)節(jié)上我們花費(fèi)了嗎大半的時間。七、課設(shè)中的心得體會:負(fù)
15、責(zé)總體思路設(shè)計,代碼編寫,軟件仿真,并且參與最后的測試工作。本次課程設(shè)計我們組主要研究的是雙機(jī)通信實(shí)驗,通過與組成員之間的合作,在開始的前兩天中,主要是通過查找資料,或是在圖書館里查看書籍來學(xué)習(xí)有關(guān)雙機(jī)通信實(shí)驗的基本要求和實(shí)驗所需要的器件,以及各實(shí)驗器件所實(shí)現(xiàn)怎樣的功能。經(jīng)過了我們四個人的協(xié)商,由兩個人開始編寫代碼,再由兩個人開始設(shè)計實(shí)驗電路。在編寫程序代碼的時候,使我學(xué)習(xí)到了最大的是MCS51單片機(jī)的中斷程序的編寫。在編寫程序的時候由于之前只是在課堂上和書本上學(xué)習(xí)的有單片機(jī)中的中斷源以及中斷向量,所以在實(shí)踐的編寫代碼過程中會遇到很多不懂的問題,需要自己或者與同組成員相互溝通。并且也學(xué)會了單片
16、機(jī)的有關(guān)中斷設(shè)計的思想,由于我們是制作雙機(jī)通信的課程設(shè)計,所以在實(shí)驗中還學(xué)習(xí)到了單片機(jī)在使用中斷的需要用到兩片單片機(jī)作為主從機(jī)來控制信號的接受與發(fā)送。時候,如果有中斷申請的話,硬件電路會自動把單片機(jī)里接受發(fā)送中斷的TI和RI置1.這樣就表示單片機(jī)此時有外部中斷的申請,必須開中斷來接受發(fā)送過來的信號。大概兩天的時間,我們就把初步的軟件程序和硬件電路設(shè)計好了。并且在PROTEUS的仿真器件中實(shí)現(xiàn)了硬件電路的連接,然后我們把PROTEUS的仿真硬件和51的程序下載到單片機(jī)中通過調(diào)節(jié)實(shí)驗硬件和共同修改軟件程序最終實(shí)現(xiàn)了器件的仿真。接下來就是焊接電路的工作了,由另外的組員來實(shí)現(xiàn)大部分的硬件電路的焊接,從
17、中我也學(xué)習(xí)幫忙,盡快完成我們的全部的設(shè)計內(nèi)容。在完成了所有的焊接的時候,把程序下載到單片機(jī)中后,發(fā)現(xiàn)了數(shù)碼管顯示的和預(yù)期設(shè)置的有些不同,在經(jīng)過簡單的修改之后,我們成功的完成了我們的實(shí)驗作品。在此次課程設(shè)計中我學(xué)習(xí)到了好多新的知識以及通過了團(tuán)隊小組的合作受益匪淺。與羅軍昌同學(xué)一起進(jìn)行程序設(shè)計的思路整合與優(yōu)化,并采集實(shí)驗結(jié)果,編寫報告。這次課程設(shè)計的題目比較簡單,我們感覺自己完成的也比較好,至少所用到的知識都是在自己理解的基礎(chǔ)之上,我們采用了一位動態(tài)顯示的數(shù)碼管,數(shù)碼管的工作原理;我們在硬件連接完成好以后進(jìn)行檢測,當(dāng)我們檢測所有的焊點(diǎn)都沒有問題后,讓單片機(jī)發(fā)送數(shù)據(jù)。我們用了C語言程序,實(shí)現(xiàn)了實(shí)驗的
18、要求。通過兩個星期的學(xué)習(xí),我們在鞏固和學(xué)習(xí)硬件知識的同時,用軟件控制協(xié)調(diào)硬件實(shí)現(xiàn)現(xiàn)實(shí)功能,通過硬件完成軟件的功能等方面的融會貫通,取得了一定的效果。軟件編寫時,對于某些指令的功能,功能模塊的連接,等都到了小問題,不過我們查閱資料得到了解決,與此同時,了解了不少的問題。在這次設(shè)計中,我收獲不少東西,也遇到了不少的問題。首先,在完成單片機(jī)課程學(xué)習(xí)任務(wù)后,對內(nèi)容的掌握不夠,缺乏靈活運(yùn)用的能力,對于知識的擴(kuò)展也存在一定的問題,因此,初面對設(shè)計課題,無法系統(tǒng)地進(jìn)行設(shè)計思路的擬定。通過本次課程設(shè)計,不僅使理論知識得到了實(shí)踐,有效鞏固了知識。同時對于單片機(jī)發(fā)展歷史、強(qiáng)大功能、應(yīng)用領(lǐng)域以及系列知識得到了大概的
19、系統(tǒng)認(rèn)識,同時也初步了解了一個完整的系統(tǒng)開發(fā)的過程,對于創(chuàng)造思維的培養(yǎng)和開發(fā)能力的鍛煉,本次設(shè)計,為此提供了一個很好的平臺。負(fù)責(zé)硬件電路的搭建和測試與糾錯。經(jīng)過繁忙而又緊張的課程設(shè)計,終于順利的完成了設(shè)計任務(wù)。雖然在這段時間里每天都那么繁忙,但是在這忙碌的過程中卻得到了許多的收獲。經(jīng)過課程設(shè)計,在查閱資料的過程中,學(xué)習(xí)了基于單片機(jī)的C語言程序設(shè)計,了解了單片機(jī)串行通信的基本知識,對于以后的學(xué)習(xí)和工作都有很大的益處。在學(xué)習(xí)的過程中,也遇到了一些困難,比如開始的時候,由于發(fā)送端和接收端的通信協(xié)議沒有做好,導(dǎo)致數(shù)據(jù)不能正確的傳輸,在解決問題的過程中,對于通信協(xié)議的實(shí)現(xiàn)有了深刻的認(rèn)識。通過這次課程設(shè)計,我想真的是鍛煉了自己獨(dú)立思考的能力。查閱并收集課設(shè)中用到的相關(guān)的知識和資料,并參與硬件電路的焊接。我很清楚這個實(shí)驗的目的,表面上我們最終僅僅只是實(shí)現(xiàn)了設(shè)計要求的基本功能,但我覺得,這
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 豐巢柜掃碼取件流程及用戶合同詳解版B版
- 二零二五版辦公家具定制與售后支持協(xié)議3篇
- 二零二五年度跨境離婚協(xié)議書及財產(chǎn)轉(zhuǎn)移范本3篇
- 二零二五年度海洋資源開發(fā)項目技術(shù)人員聘任協(xié)議3篇
- 二零二五年度KTV加盟店運(yùn)營管理及培訓(xùn)合同范本3篇
- 二零二五版公積金個人提前還款合同3篇
- 西安航空學(xué)院《材料科學(xué)基礎(chǔ)I》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度柑橘產(chǎn)品溯源與食品安全合同3篇
- 烏海職業(yè)技術(shù)學(xué)院《視覺藝術(shù)賞析與表達(dá)》2023-2024學(xué)年第一學(xué)期期末試卷
- 個性化桶裝水供應(yīng)服務(wù)協(xié)議2024版版B版
- 2024年關(guān)愛留守兒童工作總結(jié)
- GB/T 45092-2024電解水制氫用電極性能測試與評價
- 《算術(shù)平方根》課件
- DB32T 4880-2024民用建筑碳排放計算標(biāo)準(zhǔn)
- 2024-2024年上海市高考英語試題及答案
- 注射泵管理規(guī)范及工作原理
- 山東省濟(jì)南市2023-2024學(xué)年高二上學(xué)期期末考試化學(xué)試題 附答案
- 大唐電廠采購合同范例
- GB/T 18724-2024印刷技術(shù)印刷品與印刷油墨耐各種試劑性的測定
- IEC 62368-1標(biāo)準(zhǔn)解讀-中文
- 15J403-1-樓梯欄桿欄板(一)
評論
0/150
提交評論