甲乙兩機(jī)串口通信雙向控制系統(tǒng)軟件設(shè)計(jì)及系統(tǒng)仿真_第1頁(yè)
甲乙兩機(jī)串口通信雙向控制系統(tǒng)軟件設(shè)計(jì)及系統(tǒng)仿真_第2頁(yè)
甲乙兩機(jī)串口通信雙向控制系統(tǒng)軟件設(shè)計(jì)及系統(tǒng)仿真_第3頁(yè)
甲乙兩機(jī)串口通信雙向控制系統(tǒng)軟件設(shè)計(jì)及系統(tǒng)仿真_第4頁(yè)
甲乙兩機(jī)串口通信雙向控制系統(tǒng)軟件設(shè)計(jì)及系統(tǒng)仿真_第5頁(yè)
已閱讀5頁(yè),還剩10頁(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)介

1、 目錄1. 題目設(shè)計(jì)要求:12. 系統(tǒng)的組成及工作原理22.1 系統(tǒng)組成22.2 工作原理22.3 雙機(jī)通訊的方案33. 系統(tǒng)硬件電路44. 軟件設(shè)計(jì)54.1 甲機(jī)程序設(shè)計(jì)54.2 乙機(jī)程序設(shè)計(jì)85. 系統(tǒng)仿真調(diào)試 126. 設(shè)計(jì)體會(huì)和收獲137. 參考文獻(xiàn)141. 題目設(shè)計(jì)要求:甲乙兩機(jī)串口雙向通信設(shè)計(jì)要求:利用51單片機(jī),RS232芯片,LED燈,數(shù)碼管進(jìn)行雙機(jī)通信設(shè)計(jì)。甲機(jī)可按鍵控制乙機(jī)的LED顯示;乙機(jī)可按鍵控制甲機(jī)的數(shù)碼管顯示。完成以下設(shè)計(jì)環(huán)節(jié): 1)使用Altium Desinger開(kāi)發(fā)工具,設(shè)計(jì)電路原理圖。 2)使用Uvision2開(kāi)發(fā)平臺(tái),采用C語(yǔ)言或匯編語(yǔ)言設(shè)計(jì)軟件程序。 3

2、)使用PROTEUS仿真軟件,設(shè)計(jì)仿真原理圖并運(yùn)行軟件程序,完成系統(tǒng)仿真。 2. 系統(tǒng)的組成及工作原理2.1 系統(tǒng)組成 本次設(shè)計(jì)是用兩個(gè)單片機(jī)(稱為甲機(jī)和乙機(jī))之間采用方式1雙向串行通信。 甲機(jī)的按鍵可通過(guò)串口控制甲機(jī)、乙機(jī)的2個(gè)LED燈,按一次甲機(jī)、乙機(jī)的LED1點(diǎn)亮,LED2滅,按兩次甲機(jī)、乙機(jī)LED1滅,LED2點(diǎn)亮,按三次甲機(jī)、乙機(jī)的LED1和LED2全亮。 乙機(jī)的按鍵課控制串口向甲機(jī)發(fā)送按下的次數(shù),按下的次數(shù)通過(guò)串口顯示在甲機(jī)P0口的數(shù)碼管上,由此設(shè)計(jì)出總體框圖。LED顯示按鍵數(shù)碼管顯示LED顯示按鍵STC89C51R1STC89C51R1圖2.1 總體框圖 2.2 工作原理雙機(jī)通信

3、系統(tǒng)通過(guò)甲乙單片機(jī)的串行口來(lái)實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。甲單片機(jī)通過(guò)開(kāi)關(guān)電路來(lái)啟動(dòng)發(fā)送程序,甲機(jī)當(dāng)開(kāi)關(guān)按下時(shí)向乙機(jī)發(fā)送一個(gè)數(shù)據(jù),乙機(jī)上蜂嚀器發(fā)出聲音提示有數(shù)據(jù)發(fā)送過(guò)來(lái),乙機(jī)通過(guò)接收中斷來(lái)接收和開(kāi)關(guān)判斷是否接收甲機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù),并通過(guò)編寫(xiě)好的數(shù)據(jù)代碼在8個(gè)發(fā)光二極管上顯示主機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)。乙單片機(jī)通過(guò)開(kāi)關(guān)電路來(lái)啟動(dòng)發(fā)送程序,乙機(jī)給甲機(jī)發(fā)送一數(shù)據(jù),甲機(jī)上蜂嚀器發(fā)出聲音提示有數(shù)據(jù)發(fā)送過(guò)來(lái),甲機(jī)通過(guò)接收中斷來(lái)接收和開(kāi)關(guān)判斷是否接收乙機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù),并通過(guò)編寫(xiě)好的數(shù)據(jù)代碼在8個(gè)發(fā)光二極管上顯示乙機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)。 2.3 雙機(jī)通訊的方案 設(shè)計(jì)方案: 該系統(tǒng)采用主從共兩片AT89C51單片機(jī)來(lái)實(shí)現(xiàn)上位機(jī)對(duì)下位機(jī)

4、的控制,由于是近距離的雙機(jī)通信,我們采用單片機(jī)直接交叉連接的方式,上位機(jī)發(fā)送的數(shù)據(jù)由串行口TXD端輸出,直接由下位機(jī)的串行口數(shù)據(jù)接收端RXD接收。需要注意的是一定要保證主從機(jī)相同的數(shù)據(jù)傳輸速率,即要求設(shè)置相同的波特率。電路分為數(shù)碼管顯示模塊,指示模塊、以及單片機(jī)工作的基本復(fù)位、晶振模塊。 甲機(jī)由3個(gè)數(shù)碼管,4個(gè)獨(dú)立鍵盤(pán)開(kāi)關(guān),1個(gè)蜂嚀器組成。 乙機(jī)由8個(gè)發(fā)光二極管,一個(gè)蜂嚀器,1個(gè)數(shù)字溫度傳感器DS18B20組成。 單片機(jī)上最基本的兩個(gè)電路: 復(fù)位電路(圖2.2)和晶振電路(圖2.3)圖2.2 復(fù)位電路圖圖2.3 晶振電路圖3. 系統(tǒng)硬件電路第一步將兩組按鍵和LED燈分別連接到單片機(jī)U1、U2的

5、P1口,第二步將單片機(jī)U1的P0口分別連接到數(shù)碼顯示管上進(jìn)行顯示,第三步將單片機(jī)U1的P0口連接到排阻上,第四步分別將單片機(jī)U1、U2的P3口連接到各自的線驅(qū)動(dòng)器/接收器上,第五步將兩個(gè)線驅(qū)動(dòng)器/接收器分別連接到各自的DB-9接口上,最后再將單片機(jī)U1、U2通過(guò)DB-9連接器進(jìn)行連接,來(lái)實(shí)現(xiàn)雙機(jī)通訊。圖3.1 線路原理圖4. 軟件設(shè)計(jì)本系統(tǒng)的軟件設(shè)計(jì)流程圖。系統(tǒng)設(shè)計(jì)代碼分為以下幾個(gè)部分:初始化串行、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、鍵盤(pán)輸入、數(shù)值轉(zhuǎn)換、LED顯示,數(shù)碼管顯示,用keil編譯。4.1 甲機(jī)程序設(shè)計(jì)甲機(jī)程序設(shè)計(jì)框圖如下(圖4.1),開(kāi)始將兩個(gè)單片機(jī)進(jìn)行初始化。然后按動(dòng)按鍵K1,甲機(jī)發(fā)送信號(hào),乙機(jī)

6、查詢接收后回送應(yīng)答,甲機(jī)中斷接收應(yīng)答,兩機(jī)的LED閃爍。再次按動(dòng)按鍵K1,重復(fù)上述過(guò)程。開(kāi)始等待按鍵初始化乙機(jī)查詢接收輸出完成?F乙機(jī)回送應(yīng)答T甲機(jī)發(fā)送甲機(jī)中斷接收應(yīng)答T結(jié)束LED閃爍圖4.1甲程序設(shè)計(jì)框圖甲機(jī)程序:/-甲機(jī)程序代碼-#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit led1=P10;sbit led2=P13;sbit key=P17;/-共陽(yáng)極數(shù)碼管段碼-uchar code table=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8

7、,0x80,0x90,0xff;uchar num;/-延時(shí)-void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/-串行口發(fā)送函數(shù)-void transfer(uchar c)SBUF=c;while(TI=0); TI=0;void main()/主函數(shù)num=0;P0=0x00;SCON=0x50;/串行口工作在方式1,既可以發(fā)送數(shù)據(jù),也可以接收數(shù)據(jù)TMOD=0x20;/定時(shí)器T1工作在方式2PCON=0x00;TH1=(256-253)/32;TL1=(256-253)%32;RI=0;TI=0;TR1=1

8、;IE=0x90;/串行口中斷打開(kāi)while(1)if(key=0)while(key=0);num=(num+1)%4;switch(num)case 0: transfer('D');led1=1; led2=1;break;case 1: transfer('A');led1=0; led2=1;break;case 2: transfer('B');led1=1; led2=0;break;case 3: transfer('C');led1=0; led2=0;break;delay(100);void recieve(

9、) interrupt 4if(RI=1)RI=0;P0=tableSBUF;4.2 乙機(jī)程序設(shè)計(jì)乙機(jī)程序設(shè)計(jì)框圖如下(圖4.2),開(kāi)始將兩個(gè)單片機(jī)進(jìn)行初始化。然后按動(dòng)按鍵K2,乙機(jī)發(fā)送信號(hào),甲機(jī)查詢接收后回送應(yīng)答,乙機(jī)中斷接收應(yīng)答,甲機(jī)的數(shù)碼管開(kāi)始計(jì)數(shù)。再次按動(dòng)按鍵K2,重復(fù)上述過(guò)程。開(kāi)始等待按鍵初始化甲機(jī)查詢接收輸出完成?F甲機(jī)回送應(yīng)答T乙機(jī)發(fā)送乙機(jī)中斷接收應(yīng)答T結(jié)束 數(shù)碼管顯示圖4.2乙機(jī)設(shè)計(jì)框圖乙機(jī)程序:/-乙機(jī)程序代碼-#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit led

10、1=P10;sbit led2=P13;sbit key=P17;uchar num=10;/-延時(shí)-void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void main()/主函數(shù)SCON=0x50;/串行口工作在方式1,既可以發(fā)送數(shù)據(jù),也可以接收數(shù)據(jù)TMOD=0x20;/定時(shí)器T2工作在方式2PCON=0x00;TH1=(256-253)/32;TL1=(256-253)%32;RI=0;TI=0;TR1=1;IE=0x90;/串行口中斷打開(kāi)led1=led2=1;while(1)if(key=0)while

11、(key=0);num=(num+1)%11;SBUF=num;while(TI=0);TI=0;void recieve() interrupt 4if(RI=1)RI=0;switch(SBUF)case 'A': led1=0; led2=1; break;case 'B': led1=1; led2=0; break;case 'C': led1=0; led2=0; break;case 'D': led1=1; led2=1;/delay(100);elseled1=led2=1;5. 系統(tǒng)仿真調(diào)試 編譯好代碼后,用P

12、roteus ISIS畫(huà)好原理圖,把編譯好的甲乙兩機(jī)程序的HEX文件,下載到原理圖的單片機(jī)U1、U2中,點(diǎn)擊運(yùn)行系統(tǒng)仿真,查看顯示效果,當(dāng)按動(dòng)K1時(shí)甲乙兩機(jī)的LED發(fā)生變化,當(dāng)按動(dòng)K2時(shí)甲機(jī)的數(shù)碼顯示管開(kāi)始計(jì)數(shù)。經(jīng)過(guò)測(cè)試顯示結(jié)果與預(yù)期結(jié)果一致,系統(tǒng)運(yùn)行正常。圖5.1 測(cè)試結(jié)果圖6. 設(shè)計(jì)體會(huì)和收獲最初選擇雙機(jī)串行通信這個(gè)實(shí)驗(yàn)時(shí),由于從未接觸過(guò)這類設(shè)計(jì),感到新鮮的同時(shí)不乏挑戰(zhàn)性?,F(xiàn)在終于將它完成了,感到受益頗多。第一,這是一份考驗(yàn)我們自覺(jué)性、動(dòng)手能力與協(xié)作意識(shí)的任務(wù)。第二,未知并不可怕,可怕的是因未知而止步。我們?cè)谡n堂上所學(xué)的知識(shí)是非常有限的,這次的課程設(shè)計(jì)就是個(gè)很好的體現(xiàn)。很多函數(shù)的運(yùn)用我們還沒(méi)掌握,一些簡(jiǎn)單的循環(huán)語(yǔ)句都可能出錯(cuò)。實(shí)踐后才能真的知道我們真正掌握了多少。第三,團(tuán)結(jié)就是力量一點(diǎn)都不假。在團(tuán)組合作時(shí)我們更便于互相取長(zhǎng)補(bǔ)短,相互討論,效果很好。通過(guò)本次課設(shè)實(shí)驗(yàn)我們對(duì)自身進(jìn)行了查缺補(bǔ)漏,是自己對(duì)單片機(jī)這門(mén)課程有了更深的了解,對(duì)我們以后的工作有了很

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論