




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于 51 單片機(jī)的雙機(jī)串行通信課程設(shè)計一、總體設(shè)計1 設(shè)計目的1. 通過設(shè)計相關(guān)模塊充分熟悉 51 單片機(jī)的最小系統(tǒng)的組成和原理;2. 通過軟件仿真熟悉 keil 和 proteus 的配合使用;3. 通過軟件編程熟悉 51 的 C51 編程規(guī);4. 通過實際的硬件電路搭設(shè)提高實際動手能力。2.設(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)顯示),
2、當(dāng)從機(jī)接收到后,向 B機(jī)發(fā)送代表 0-f 的數(shù)碼管編碼數(shù)組。 B收到 0x06 后 就把數(shù)碼表 TAB16 中的數(shù)據(jù)送給從機(jī)。二、硬件設(shè)計1.51 單片機(jī)串行通信功能圖 1.AT89C51 ( 52)計算機(jī)與外界的信息交換稱為通信,常用的通信方式有兩種:并行通信和串行通信。 51 單片機(jī)用 4 個接口與外界進(jìn)行數(shù)據(jù)輸入與數(shù)據(jù)輸出就是并行通信 ,并行通信的特點是傳輸信 號的速度快,但所用的信號線較多,成本高,傳輸?shù)木嚯x較近。串行通信的特點是只用兩條 信號線(一條信號線,再加一條地線作為信號回路)即可完成通信,成本低,傳輸?shù)木嚯x較 遠(yuǎn)。51單片機(jī)的串行接口是一個全雙工的接口 ,它可以作為 UAR(
3、T 通用異步接受和發(fā)送器) 用,也可以作為同步移位寄存器用。 51 單片機(jī)串行接口的結(jié)構(gòu)如下:( 1)數(shù)據(jù)緩沖器( SBUF)接受或發(fā)送的數(shù)據(jù)都要先送到 SBUF緩存。有兩個,一個緩存,另一個接受,用同一直 接地址 99H, 發(fā)送時用指令將數(shù)據(jù)送到 SBUF即可啟動發(fā)送;接收時用指令將 SBUF中接收到 的數(shù)據(jù)取出。( 2)串行控制寄存器( PCON) SCON用于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式選擇位,這兩位組合成00,01,10,11 對應(yīng)于工作方式 0、1、2、3。串行接口工作方式特點見下表
4、SM0SM1工作方式功能波特率0008 位同步移位寄存器(用于 I/O 擴(kuò)展)f ORC/1201110 位異步串行通信( UART)可變( T1溢出率 *2 SMO/D32 )10211 位異步串行通信( UART)f ORC/64 或 f ORC/3211311 位異步串行通信( UART)可變( T1溢出率 *2 SMO/D32 )SM2:多機(jī)通信控制位。REN:接收允許控制位。軟件置 1允許接收;軟件置 0 禁止接收。TB8:方式 2 或 3 時, TB8為要發(fā)送的第 9 位數(shù)據(jù),根據(jù)需要由軟件置 1 或清 0。RB9:在方式 2 或 3 時,RB8位接收到的第 9 位數(shù)據(jù),實際為主機(jī)
5、發(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ù)后由硬件自動置位,并申請中斷。必須要軟件清零 后才能繼續(xù)接收。( 3)輸入移位寄存器接收的數(shù)據(jù)先串行進(jìn)入輸入移位寄存器 ,8 位數(shù)據(jù)全移入后 ,再并行送入接收 SBUF中。(4)波特率發(fā)生器 波特率發(fā)生器用來控制串行通信的數(shù)據(jù)傳輸速率的, 51 系列單片機(jī)用定時器 T1作為波 特率發(fā)生器 ,T1 設(shè)置在定時方式 。波特率時用來表示串行通信數(shù)據(jù)傳輸快慢程度的物理量, 定義為每
6、秒鐘傳送的數(shù)據(jù)位數(shù)。( 5)電源控制寄存器 PCON其最高位為 SMO。D(6)波特率計算當(dāng)定時器 T1 工作在定時方式的時候,定時器 T1 溢出率 =( T1計數(shù)率) / (產(chǎn)生溢出所 需機(jī)器周期) 。由于是定時方式, T1計數(shù)率= f OR/C12 。產(chǎn)生溢出所需機(jī)器周期數(shù) =模M-計數(shù) 初值 X。3. 整體電路設(shè)計最終設(shè)計電路如下圖 3 所示,發(fā)送方的數(shù)據(jù)由串行口 TXD 段輸出,經(jīng)過傳輸線將信號 傳送到接收端。信號到達(dá)接收方串行口的接收端。接受方接收后,通過P1 口在數(shù)碼管上顯示接收的信息。圖 3. 串行通信電路三、軟件設(shè)計(1)串行口工作于方式 1;用定時器 1 產(chǎn)生 9600bit
7、/s 的波特率,工作于方式 2。(2)功能:將本機(jī) ROM 中數(shù)碼表 TAB16 中的 16個數(shù)發(fā)送到從機(jī) ,并保存在從機(jī)部 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)行仿真實驗。 首先使用 KeilC 將編寫完成的程序編譯生成 HEX文件,將 HEX文件燒錄到兩片單片機(jī)中,進(jìn)行仿真實驗,結(jié)果如下圖所示,可以看到,接收端已將接受到的數(shù)據(jù)完整的顯示了出來。圖 4. 仿真圖注:1. 仿真的過程中并沒有體現(xiàn)出單片機(jī)的最小系統(tǒng)的組成元素:時鐘電路和復(fù)位電
8、路,但是 實際的硬件電路中這兩部分是必不可少的,此外,在實際測試中,程序是事先燒進(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型三極管五、程序清單1. A 機(jī)程序#include#includesbit key=P36;void sendr
9、ecieve();void main()P1=0XFF;TMOD=0x20;/ 定時器 1 工作作方式 2 TH1=0XFD;TL1=0XFD;/ 波特率為 9600PCON=0X00;/ 波特率不加倍TR1=1;SCON=0X50;/ 串口工作方式為 3,即 11 為可變波特率, /開啟允許串口接收中斷,多機(jī)通訊位SM2 置 1(廣播 ),TB8 置 1(表示發(fā)送地址 )/開發(fā)送及接受中斷EA=1;key=1;sendrecieve();void sendrecieve()SBUF=0X06;while(TI!=1);/ 等待數(shù)據(jù)發(fā)送完成,發(fā)送完則 ti 置 1,否則為 0TI=0;whil
10、e(1)while(RI!=1);/ 等待接收數(shù)據(jù)完成RI=0;P1=SBUF;/顯示 B 發(fā)送來的數(shù)據(jù)2. B 機(jī)程序#include#includevoid sendrecieve();sbit key=P36;codeunsigned char led=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/ 共陰極,標(biāo)準(zhǔn)接法 (a-h PX.0-PX.7)unsigned int i;delay(unsigned int z)unsigned int x,y;for(x=z;z0;
11、z-)for(y=6000;y0;y- );/50msvoid main()P1=0XFF;TMOD=0x20;/ 定時器 1 工作作方式 2 TH1=0XFD;TL1=0XFD;/ 波特率為 9600PCON=0X00;/ 波特率不加倍TR1=1;SCON=0X50;/ 串口工作方式為 3,即 11 為可變波特率,key=1;/ 開啟允許串口接收中斷,多機(jī)通訊位SM2 置 1EA=1;delay(20); sendrecieve();void sendrecieve()while(RI!=1);P1=SBUF;RI=0;for(i=0;i16;i+)SBUF=ledi;/向 A 發(fā)送信息wh
12、ile(TI!=1);/ 等待數(shù)據(jù)發(fā)送完成,發(fā)送完則 ti 置 1,否則為 0TI=0;delay(60); /3s i=0;六、課設(shè)中遇到的問題及解決辦法:1. 在數(shù)碼管顯示模塊連接三極管時, 由于萬用表的測試三極管的環(huán)節(jié)接觸不良, 著 實有點讓人頭疼, 但是最后通過借了別租的表才解決了問題, 而且我們找到了三極管上 的型號與之性質(zhì)的對應(yīng)關(guān)系;2. 由于這次我們的課設(shè)容比較簡單, 所以我們在軟件環(huán)節(jié)沒有沒遇到什么困難, 在 軟件仿真時也很順利, 但是在最后焊接板子的時候, 我們卻遇到了問題: 數(shù)碼管的各管 腳的排列順序不是遵循一定的規(guī)律的, 所以在焊接時要特別注意布局與布線, 在這個環(huán) 節(jié)上
13、我們花費了嗎大半的時間。七、課設(shè)中的心得體會:負(fù)責(zé)總體思路設(shè)計,代碼編寫,軟件仿真,并且參與最后的測試工作。本次課程設(shè)計我們組主要研究的是雙機(jī)通信實驗, 通過與組成員之間的合作, 在開始的 前兩天中, 主要是通過查找資料, 或是在圖書館里查看書籍來學(xué)習(xí)有關(guān)雙機(jī)通信實驗的基本 要求和實驗所需要的器件,以及各實驗器件所實現(xiàn)怎樣的功能。經(jīng)過了我們四個人的協(xié)商, 由兩個人開始編寫代碼, 再由兩個人開始設(shè)計實驗電路。 在 編寫程序代碼的時候,使我學(xué)習(xí)到了最大的是 MCS51 單片機(jī)的中斷程序的編寫。在編寫程 序的時候由于之前只是在課堂上和書本上學(xué)習(xí)的有單片機(jī)中的中斷源以及中斷向量, 所以在 實踐的編寫代
14、碼過程中會遇到很多不懂的問題, 需要自己或者與同組成員相互溝通。 并且也 學(xué)會了單片機(jī)的有關(guān)中斷設(shè)計的思想, 由于我們是制作雙機(jī)通信的課程設(shè)計, 所以在實驗中還學(xué)習(xí)到了單片機(jī)在使用中斷的需要用到兩片單片機(jī)作為主從機(jī)來控制信號的接受與發(fā)送。時候,如果有中斷申請的話, 硬件電路會自動把單片機(jī)里接受發(fā)送中斷的TI 和 RI置 1.這樣就表示單片機(jī)此時有外部中斷的申請, 必須開中斷來接受發(fā)送過來的信號。 大概兩天的時間, 我們就把初步的軟件程序和硬件電路設(shè)計好了。 并且在 PROTEUS 的仿真器件中實現(xiàn)了硬件 電路的連接,然后我們把 PROTEUS 的仿真硬件和 51 的程序下載到單片機(jī)過調(diào)節(jié)實驗硬
15、件 和共同修改軟件程序最終實現(xiàn)了器件的仿真。接下來就是焊接電路的工作了, 由另外的組員來實現(xiàn)大部分的硬件電路的焊接, 從中我 也學(xué)習(xí)幫忙, 盡快完成我們的全部的設(shè)計容。 在完成了所有的焊接的時候, 把程序下載到單 片機(jī)中后, 發(fā)現(xiàn)了數(shù)碼管顯示的和預(yù)期設(shè)置的有些不同, 在經(jīng)過簡單的修改之后, 我們成功 的完成了我們的實驗作品。 在此次課程設(shè)計中我學(xué)習(xí)到了好多新的知識以及通過了團(tuán)隊小組 的合作受益匪淺。與羅軍昌同學(xué)一起進(jìn)行程序設(shè)計的思路整合與優(yōu)化,并采集實驗結(jié)果,編寫報告。這次課程設(shè)計的題目比較簡單, 我們感覺自己完成的也比較好, 至少所用到的知識都是 在自己理解的基礎(chǔ)之上, 我們采用了一位動態(tài)顯
16、示的數(shù)碼管, 數(shù)碼管的工作原理; 我們在硬 件連接完成好以后進(jìn)行檢測, 當(dāng)我們檢測所有的焊點都沒有問題后, 讓單片機(jī)發(fā)送數(shù)據(jù)。 我 們用了 C 語言程序,實現(xiàn)了實驗的要求。通過兩個星期的學(xué)習(xí),我們在鞏固和學(xué)習(xí)硬件知 識的同時,用軟件控制協(xié)調(diào)硬件實現(xiàn)現(xiàn)實功能, 通過硬件完成軟件的功能等方面的融會貫通, 取得了一定的效果。 軟件編寫時, 對于某些指令的功能, 功能模塊的連接, 等都到了小問題, 不過我們查閱資料得到了解決,與此同時,了解了不少的問題。 在這次設(shè)計中,我收獲不 少東西,也遇到了不少的問題。首先,在完成單片機(jī)課程學(xué)習(xí)任務(wù)后,對容的掌握不夠,缺 乏靈活運用的能力, 對于知識的擴(kuò)展也存在一
17、定的問題, 因此,初面對設(shè)計課題, 無法系統(tǒng) 地進(jìn)行設(shè)計思路的擬定。 通過本次課程設(shè)計, 不僅使理論知識得到了實踐, 有效鞏固了知識。 同時對于單片機(jī)發(fā)展歷史、 強(qiáng)大功能、 應(yīng)用領(lǐng)域以及系列知識得到了大概的系統(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ī)串行
18、通信的基本知識,對于以 后的學(xué)習(xí)和工作都有很大的益處。在學(xué)習(xí)的過程中,也遇到了一些困難,比如開始的時候, 由于發(fā)送端和接收端的通信協(xié)議沒有做好, 導(dǎo)致數(shù)據(jù)不能正確的傳輸, 在解決問題的過程中, 對于通信協(xié)議的實現(xiàn)有了深刻的認(rèn)識。通過這次課程設(shè)計,我想真的是鍛煉了自己獨立思考的能力。查閱并收集課設(shè)中用到的相關(guān)的知識和資料,并參與硬件電路的焊接。我很清楚這個實驗的目的, 表面上我們最終僅僅只是實現(xiàn)了設(shè)計要求的基本功能, 但我 覺得,這次課程設(shè)計更加深刻的意義是從這樣一個最基本,簡單的實驗中,從這樣一個完整的過程中我了解一種系統(tǒng)設(shè)計的流程,甚至說是一種思路,思維。從最初拿到題目, 分析設(shè)計要求以及實
19、現(xiàn)的初步思路, 然后去查閱資料進(jìn)行更加具體的 設(shè)計這次實驗無疑要求我們團(tuán)隊協(xié)作, 互相配合并且整體上比較全面的統(tǒng)籌設(shè)計。 于是, 初 步規(guī)劃后, 我們開始將系統(tǒng)要實現(xiàn)功能的各個模塊單獨開來用 PROTEUS 仿真, 并最終將各 個模塊組合后整體調(diào)試。 整個過程中我們在仿真上花費了較長時間, 因為知道仿真成功是實 現(xiàn)真正硬件電路的基礎(chǔ), 仿真是從根本上檢驗設(shè)計者的設(shè)計邏輯以及思路的, 很好的仿真才 能使得設(shè)計系統(tǒng)在實現(xiàn)要求功能的基礎(chǔ)上更加穩(wěn)定、 簡單,仿真中, 我們仔細(xì)斟酌了電路布 線的合理性。在焊接過程中,由于之前的統(tǒng)籌布局使得我們的電路布線簡潔、明了,需要注 意的是, 由于焊接的粗心, 有些
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療大數(shù)據(jù)與個性化醫(yī)療考核試卷
- 加油站現(xiàn)場安全管理考核試卷
- 工業(yè)控制計算機(jī)在智能建筑管理系統(tǒng)中的作用考核試卷
- D城市模型構(gòu)建與應(yīng)用考核試卷
- 機(jī)床功能部件在深海探測設(shè)備中的抗壓性能考核試卷
- 數(shù)字出版物的市場趨勢與用戶需求分析考核試卷
- 招標(biāo)投標(biāo)居間合同范本
- 業(yè)務(wù)提成附加合同范本
- 養(yǎng)殖合同魚塘養(yǎng)殖合同范本
- 《空中領(lǐng)航學(xué)》5.2 無線電方位
- (日文文書模板范例)請求書-請求書
- 二副工作心得體會實習(xí)感觸
- 土壤肥料全套課件
- 旅游消費者行為學(xué)整套課件完整版電子教案課件匯總(最新)
- 學(xué)前兒童發(fā)展心理學(xué)(第3版-張永紅)教學(xué)課件1754
- 特氣供應(yīng)系統(tǒng)的規(guī)劃與設(shè)計
- 中職《機(jī)械基礎(chǔ)》全套課件(完整版)
- 勞技-中國結(jié)PPT通用課件
- 溫庭筠《望江南》ppt課件
- 口腔正畸學(xué)單詞
評論
0/150
提交評論