雙機(jī)串行通信設(shè)計(jì)_第1頁
雙機(jī)串行通信設(shè)計(jì)_第2頁
雙機(jī)串行通信設(shè)計(jì)_第3頁
雙機(jī)串行通信設(shè)計(jì)_第4頁
雙機(jī)串行通信設(shè)計(jì)_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、成績:課 程 設(shè) 計(jì) 報(bào) 告 書所屬課程名稱 單片機(jī)原理與接口技術(shù) 題 目 雙機(jī)串行通信 分 院 機(jī)電學(xué)院 專 業(yè)、班 級(jí) 機(jī)械設(shè)計(jì)制造及其自動(dòng)化 b0902 學(xué) 號(hào) 0612090218 學(xué) 生 姓 名 愛誰誰 指 導(dǎo) 教 師 周春明 2012年7月13日目 錄1 課程設(shè)計(jì)任務(wù)書12 總體設(shè)計(jì)23 硬件系統(tǒng)設(shè)計(jì)34 程序設(shè)計(jì)65 程序調(diào)試及結(jié)果分析116 總結(jié)137 參考文獻(xiàn)14遼東學(xué)院課程設(shè)計(jì)報(bào)告書 單片機(jī)原理與接口技術(shù)遼東學(xué)院一 課 程 設(shè) 計(jì) 任 務(wù) 書課程設(shè)計(jì)題目: 雙機(jī)串行通信 課程設(shè)計(jì)時(shí)間:自 2012 年7月2日起至 2012 年 7月 13日。課程設(shè)計(jì)要求: 1.通過本次課題

2、設(shè)計(jì),應(yīng)用單片機(jī)原理及其接口技術(shù)等所學(xué)相關(guān)知識(shí)及查閱資料,完成簡易雙機(jī)串行通信設(shè)計(jì),以達(dá)到理論與實(shí)踐更好的結(jié)合、進(jìn)一步提高綜合運(yùn)用所學(xué)知識(shí)和設(shè)計(jì)的能力的目的。2.兩片單片機(jī)之間進(jìn)行串行通信,發(fā)送端將0f循環(huán)發(fā)送到接收端,并在接收端顯示。接收完成后,led燈亮。 學(xué)生簽名:史強(qiáng) 2012 年7月 13日課程設(shè)計(jì)評(píng)閱意見項(xiàng)目課程設(shè)計(jì)態(tài)度評(píng)價(jià)10%出勤情況評(píng)價(jià)10%任務(wù)難度、量評(píng)價(jià)10%創(chuàng)新性評(píng)價(jià)10%綜合設(shè)計(jì)能力評(píng)價(jià)20%報(bào)告書寫規(guī)范評(píng)價(jià)20%答辯20%成績綜合評(píng)定等級(jí)評(píng)閱教師: 2012年 月 日二 總體設(shè)計(jì)2.1 設(shè)計(jì)目的 通過本次課題設(shè)計(jì),應(yīng)用單片機(jī)原理及其接口技術(shù)等所學(xué)相關(guān)知識(shí)及查閱資料,

3、完成簡易雙機(jī)串行通信設(shè)計(jì),以達(dá)到理論與實(shí)踐更好的結(jié)合、進(jìn)一步提高綜合運(yùn)用所學(xué)知識(shí)和設(shè)計(jì)的能力的目的。通過本次設(shè)計(jì)的訓(xùn)練,可以使我在基本思路和基本方法上對(duì)基于mcs-51單片機(jī)的嵌入式系統(tǒng)設(shè)計(jì)有一個(gè)比較感性的認(rèn)識(shí),并具備一定程度的設(shè)計(jì)能力。2.2 設(shè)計(jì)任務(wù)兩片單片機(jī)之間進(jìn)行串行通信,發(fā)送端將0f循環(huán)發(fā)送到接收端,完成后在接收端的led 燈亮。2.3 設(shè)計(jì)方法本次設(shè)計(jì),對(duì)于兩片89c51,采用rs232進(jìn)行雙機(jī)通信。發(fā)送方的數(shù)據(jù)由串行口txd段輸出。接受方接收后,燈亮。為提高抗干擾能力,還可以在輸入輸出端加光耦合進(jìn)行光電隔離。軟件部分,通過通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送aah給從機(jī),當(dāng)從機(jī)接收到a

4、ah后,向主機(jī)回答bbh。主機(jī)收到bbh后就把數(shù)碼表tab16中的10個(gè)數(shù)據(jù)送給從機(jī),并發(fā)送檢驗(yàn)和。從機(jī)收到16個(gè)數(shù)據(jù)并計(jì)算接收到數(shù)據(jù)的檢驗(yàn)和,與主機(jī)發(fā)送來的檢驗(yàn)和進(jìn)行比較,若檢驗(yàn)和相同則發(fā)送00h給主機(jī);否則發(fā)送ffh給主機(jī),重新接受。從機(jī)收到16個(gè)正確數(shù)據(jù)后送到一個(gè)數(shù)碼管顯示。三 硬件系統(tǒng)設(shè)計(jì)3.1基本功能:利用89c51完成兩片單片機(jī)之間進(jìn)行串行通信。3.2可選器件:51系列單片機(jī)、電容、led燈 本設(shè)計(jì)是硬件電路和軟件編程相結(jié)合的設(shè)計(jì)方案,選擇合適的編程語言是一個(gè)重要的環(huán)節(jié)。在單片機(jī)的應(yīng)用系統(tǒng)程序設(shè)計(jì)時(shí),常用的是匯編語言和c語言。c語言雖然執(zhí)行效率沒有匯編語言高,但語言簡潔,使用方便,

5、靈活,運(yùn)算豐富,表達(dá)化類型多樣化,數(shù)據(jù)結(jié)構(gòu)類型豐富,具有結(jié)構(gòu)化的控制語句。本著學(xué)習(xí)和創(chuàng)新的精神,我們采用匯編語言編寫了程序。3.1 51單片機(jī)串行通信功能圖1.at89c51計(jì)算機(jī)與外界的信息交換稱為通信,常用的通信方式有兩種:并行通信和串行通信。51單片機(jī)用4個(gè)接口與外界進(jìn)行數(shù)據(jù)輸入與數(shù)據(jù)輸出就是并行通信,并行通信的特點(diǎn)是傳輸信號(hào)的速度快,但所用的信號(hào)線較多,成本高,傳輸?shù)木嚯x較近。串行通信的特點(diǎn)是只用兩條信號(hào)線(一條信號(hào)線,再加一條地線作為信號(hào)回路)即可完成通信,成本低,傳輸?shù)木嚯x較遠(yuǎn)。51單片機(jī)的串行接口是一個(gè)全雙工的接口,它可以作為uart(通用異步接受和發(fā)送器)用,也可以作為同步移位

6、寄存器用。51單片機(jī)串行接口的結(jié)構(gòu)如下:(1)數(shù)據(jù)緩沖器(sbuf)接受或發(fā)送的數(shù)據(jù)都要先送到sbuf緩存。有兩個(gè),一個(gè)緩存,另一個(gè)接受,用同一直接地址99h,發(fā)送時(shí)用指令將數(shù)據(jù)送到sbuf即可啟動(dòng)發(fā)送;接收時(shí)用指令將sbuf中接收到的數(shù)據(jù)取出。(2)串行控制寄存器(pcon)scon用于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:sm0sm1sm2rentb8rb8tirism0,sm1:串行接口工作方式選擇位,這兩位組合成00,01,10,11對(duì)應(yīng)于工作方式0、1、2、3。串行接口工作方式特點(diǎn)見下表sm0sm1工作方式功能波特率 0008位同步移位寄存器(用于i/o擴(kuò)展)forc

7、/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ù)這一位來判斷主機(jī)發(fā)送的時(shí)呼叫地址還是要傳送的數(shù)據(jù)。ti:發(fā)送中斷標(biāo)志。發(fā)送完一幀數(shù)據(jù)后由硬件自動(dòng)置位,并申請(qǐng)中斷。必須要軟件清零

8、后才能繼續(xù)發(fā)送。ri:接收中斷標(biāo)志。接收完一幀數(shù)據(jù)后由硬件自動(dòng)置位,并申請(qǐng)中斷。必須要軟件清零后才能繼續(xù)接收。(3)輸入移位寄存器接收的數(shù)據(jù)先串行進(jìn)入輸入移位寄存器,8位數(shù)據(jù)全移入后,再并行送入接收sbuf中。(4)波特率發(fā)生器波特率發(fā)生器用來控制串行通信的數(shù)據(jù)傳輸速率的,51系列單片機(jī)用定時(shí)器t1作為波特率發(fā)生器,t1設(shè)置在定時(shí)方式。波特率時(shí)用來表示串行通信數(shù)據(jù)傳輸快慢程度的物理量,定義為每秒鐘傳送的數(shù)據(jù)位數(shù)。(5)電源控制寄存器pcon其最高位為smod。(6)波特率計(jì)算當(dāng)定時(shí)器t1工作在定時(shí)方式的時(shí)候,定時(shí)器t1溢出率=(t1計(jì)數(shù)率)/(產(chǎn)生溢出所需機(jī)器周期)。由于是定時(shí)方式,t1計(jì)數(shù)率

9、= forc/12。產(chǎn)生溢出所需機(jī)器周期數(shù)=模m-計(jì)數(shù)初值x。3.2 整體電路設(shè)計(jì)最終設(shè)計(jì)電路如下圖3所示,發(fā)送方的數(shù)據(jù)由串行口txd段輸出,經(jīng)過電平轉(zhuǎn)換芯片max232將ttl電平轉(zhuǎn)換為rs232電平輸出,經(jīng)過傳輸線將信號(hào)傳送到接收端。圖2.整體電路四 程序設(shè)計(jì)通過通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送aah給從機(jī),當(dāng)從機(jī)接收到aah后,向主機(jī)回答bbh。主機(jī)收到bbh后就把數(shù)碼表tab16中的10個(gè)數(shù)據(jù)送給從機(jī),并發(fā)送檢驗(yàn)和。從機(jī)收到16個(gè)數(shù)據(jù)并計(jì)算接收到數(shù)據(jù)的檢驗(yàn)和,與主機(jī)發(fā)送來的檢驗(yàn)和進(jìn)行比較,若檢驗(yàn)和相同則發(fā)送00h給主機(jī);否則發(fā)送ffh給主機(jī),重新接受。從機(jī)收到16個(gè)正確數(shù)據(jù)后送到一個(gè)數(shù)碼

10、管顯示。4.1 串行通信軟件實(shí)現(xiàn)(1)串行口工作于方式1;用定時(shí)器1產(chǎn)生2400bit/s的波特率,工作于方式2。(2)功能:將本機(jī)rom中數(shù)碼表tab16中的16個(gè)數(shù)發(fā)送到從機(jī),并保存在從機(jī)內(nèi)部rom中,從機(jī)收到這16個(gè)數(shù)據(jù)后送到一個(gè)數(shù)碼管循環(huán)顯示。(3)通信協(xié)議:主機(jī)首先發(fā)送連絡(luò)信號(hào)(aah),從機(jī)接收到之后返回一個(gè)連絡(luò)信號(hào)(bbh)表示從機(jī)已準(zhǔn)備好接收。(4)通信過程使用第九位發(fā)送奇偶校驗(yàn)位。(5)從機(jī)接收到一個(gè)數(shù)據(jù)后,立即進(jìn)行奇偶校驗(yàn),若數(shù)據(jù)沒有錯(cuò)誤,則返回00h,否則返回ffh。(6)主機(jī)發(fā)送一個(gè)數(shù)據(jù)后,等待從機(jī)返回?cái)?shù)據(jù);若為00h,則繼續(xù)發(fā)送下一個(gè)數(shù)據(jù),若為ffh,則重新發(fā)送數(shù)據(jù)。

11、4.2 程序流程圖(1)發(fā)送端程序流程圖主程序開始從機(jī)是否回答bbh?程序初始化主機(jī)發(fā)送aahn主機(jī)發(fā)送數(shù)據(jù),檢驗(yàn)和輸出完成?n清除標(biāo)志位(2) 接收方程序流程圖主程序開始檢驗(yàn)和相等?程序初始化接收數(shù)據(jù),計(jì)算檢驗(yàn)和n發(fā)送00h至主機(jī)接收完成?n清除標(biāo)志位發(fā)送ffh,重新接收顯示4.3:源程序匯編語言程序:發(fā)送程序清單如下: start:clr ea mov tmod,#20h ;定時(shí)器1置為方式2 mov th1,#0f4h ;裝載定時(shí)器初值,波特率2400 mov tl1,#0f4h mov pcon,#00h setb tr1 ;啟動(dòng)定時(shí)器 mov scon,#50h ;設(shè)定串口方式1,且

12、準(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號(hào)機(jī)的應(yīng)答信號(hào) clr ri ;允許再接收 mov a,sbuf ;2號(hào)機(jī)應(yīng)答后,讀至a xrl a,#0bbh ;判斷2號(hào)機(jī)是否準(zhǔn)備完畢 jnz loop1 ;2號(hào)機(jī)未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò) loop2:mov r0,#40h ;2號(hào)機(jī)準(zhǔn)備好,設(shè)定數(shù)據(jù)塊地址指針初值 mov r7,#10h ;設(shè)定數(shù)據(jù)塊長度初值 mov r6,#00h ;清校驗(yàn)和單元 loop3:mov sbuf,r0 ;發(fā)送一個(gè)數(shù)據(jù)字節(jié) mov a,r6 add a

13、,r0 ;求校驗(yàn)和 mov r6,a ;保存校驗(yàn)和 inc r0 jnb ti,$ clr ti djnz r7, loop3 ;整個(gè)數(shù)據(jù)塊是否發(fā)送完畢 mov sbuf,r6 ;發(fā)送校驗(yàn)和 jnb ti,$ clr ti jnb ri,$ ;等待2號(hào)機(jī)的應(yīng)答信號(hào) clr ri mov a,sbuf ;2號(hào)機(jī)應(yīng)答,讀至a jnz loop2 ;2號(hào)機(jī)應(yīng)答“錯(cuò)誤”,轉(zhuǎn)重新發(fā)送 ret ;2號(hào)機(jī)應(yīng)答“正確”,返回接收程序清單如下: start:clr ea clr p1.0mov tmod,#20h mov th1,#0f4h mov tl1,#0f4h mov pcon,#00h setb tr

14、1 mov scon,#50h ;設(shè)定串口方式1,且準(zhǔn)備接收 loop1:jnb ri,$ ;等待1號(hào)機(jī)的聯(lián)絡(luò)信號(hào) clr ri mov 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 ti mov r0,#40h ;設(shè)定數(shù)據(jù)塊地址指針初值 mov r7,#10h ;設(shè)定數(shù)據(jù)塊長度初值 mov r6,#00h ;清校驗(yàn)和單元 loop2:jnb ri,$ clr ri mov a,sbuf mov r0,a ;接收數(shù)據(jù)轉(zhuǎn)儲(chǔ)

15、inc r0 add a,r6 ;求校驗(yàn)和 mov r6,a djnz r7, loop2 ;判數(shù)據(jù)塊是否接收完畢 jnb ri,$ ;完畢,接收1號(hào)機(jī)發(fā)來的校驗(yàn)和 clr ri mov a,sbuf xrl 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 ti end1:setb p1.0mov sbuf,#00h ret五 系統(tǒng)調(diào)試與存在的問題在protues上進(jìn)行仿真實(shí)驗(yàn)。首先使用keil將編寫完成的程序編譯生成hex文件,將hex文件錄到兩片單片機(jī)中,進(jìn)行仿真實(shí)驗(yàn),結(jié)

16、果如下圖所示,可以看到,接收端接收到數(shù)據(jù)。圖4.仿真圖5.1 硬件調(diào)試常見故障:1、邏輯錯(cuò)誤:它是由設(shè)計(jì)錯(cuò)誤或加工過程中的工藝性錯(cuò)誤所造成的。這類錯(cuò)誤包括錯(cuò)線、開路、短路等。2、元器件失效:有兩方面的原因:一是器件本身已損壞或性能不符合要求;二是組裝錯(cuò)誤造成元件失效,如電解電容、集成電路安裝方向錯(cuò)誤等。3、可靠性差:因其可靠性差的原因很多,如金屬化孔、接插件接觸不良會(huì)造成系統(tǒng)時(shí)好時(shí)壞,經(jīng)不起振動(dòng);走線和布局不合理也會(huì)引起系統(tǒng)可靠性差。4、電源故障:若樣機(jī)由電源故障,則加電后很容易造成器件損壞。電源故障包括電壓值不符合設(shè)計(jì)要求,電源引線和插座不對(duì),功率不足,負(fù)載能力差等。調(diào)試方法:包括多級(jí)調(diào)試和聯(lián)機(jī)調(diào)試。在調(diào)試過程中要針對(duì)可能出現(xiàn)的故障認(rèn)真分析,直至檢查出原因并排除。本次硬件調(diào)試過程中,對(duì)所出現(xiàn)的問題進(jìn)行了認(rèn)真的分析和改正,最后能夠很好的達(dá)到設(shè)計(jì)要求的效果。5.2 軟件調(diào)試軟件調(diào)試一般分為以下四個(gè)階段:1、 編寫程序并查錯(cuò);2、 在匯編語言的編譯系統(tǒng)中編譯源程序3、 對(duì)程序進(jìn)行編譯連接,并及時(shí)發(fā)現(xiàn)程序中存在的錯(cuò)誤;4、 改正錯(cuò)誤。在軟件調(diào)試過程中,對(duì)出現(xiàn)的錯(cuò)誤進(jìn)行了認(rèn)真的分析和修改,多次調(diào)試成功后,能夠很好的達(dá)到既定的設(shè)計(jì)效果。 六 設(shè)計(jì)小結(jié)經(jīng)過繁忙而又緊張的課程設(shè)計(jì),終于順利的完成了設(shè)計(jì)任務(wù)。雖然在這段時(shí)間里每天都那么繁忙,但是在這忙碌的過程中卻得到了許多的收獲。經(jīng)過課程設(shè)計(jì)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論