版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、探2012 級單片機(jī)接口課程設(shè)計探石家莊鐵道大學(xué)四方學(xué)院集中實踐報告書課題名稱雙機(jī)串行通信設(shè)計姓名邢志杰學(xué)號系、部電氣工程系專業(yè)班級方1210-4指導(dǎo)教師馬麗2015年7月3日一、設(shè)計任務(wù)及要求:設(shè)計任務(wù):雙機(jī)串行通信設(shè)計設(shè)計要求:1、 兩片單片機(jī)利用串行口進(jìn)行串行通信:串行通信的波特率可從鍵盤進(jìn)行設(shè)定, 可選的波特率為1200、2400、4800和9600bit/s。串行口工作方式為方式 1的全雙工 串行通信。2、 兩個單片機(jī)之間進(jìn)行通訊波特率的設(shè)定,最終歸結(jié)到對定時計數(shù)器T1計數(shù) 初值TH1、TL1進(jìn)行設(shè)定。故本題目本質(zhì)上是通過鍵盤掃描得到設(shè)定的波特率,從 而載入相應(yīng)的T1計數(shù)初值TH1、
2、TL1實現(xiàn)的。3、要求發(fā)送方讀入按鍵值,發(fā)送到接收方,接收方接受數(shù)據(jù)并顯示在數(shù)碼管上。4、要求做出實物。、指導(dǎo)教師評語:二、成績指導(dǎo)教師簽名:年月 日目錄第1章 設(shè)計目的 錯誤!未定義書簽。第2章 設(shè)計要求 錯誤!未定義書簽。第3章 硬件電路設(shè)計 錯誤!未定義書簽。3.1系統(tǒng)框圖 13.2STC89C52單片機(jī)最小系統(tǒng) 23.3按鍵電路 33.4主電路設(shè)計 錯誤!未定義書簽。第4章軟件程序設(shè)計 44.1主程序流程圖 44.2鍵盤掃描子程序流程圖 54.3從機(jī)主程序流程圖 64.4從機(jī)中斷子程序流程圖 74.5程序調(diào)試 84.6雙機(jī)串行通信源程序 9第5章結(jié)論 13參考文獻(xiàn)13第 1 章 設(shè)計目
3、的1.1 設(shè)計目的(1)掌握單片機(jī)實際系統(tǒng)的開發(fā)步驟。(2)了解串行通信的原理;了解數(shù)碼管顯示的工作原理;了解鍵盤掃描的 工作原理; 對雙機(jī)串行通信軟件編程、 調(diào)試、相關(guān)硬件設(shè)備的使用技能等方面得 到真正的實踐機(jī)會,把軟硬件結(jié)合,克服其中的種種問題,提高編程能力。第 2 章 設(shè)計要求2.1 設(shè)計要求(1)兩片單片機(jī)利用串行口進(jìn)行串行通信:串行通信的波特率可從鍵盤進(jìn)行設(shè)定,可選的波特率為 1200、2400、4800和9600bit/s。串行口工作方式為方 式 1 的全雙工串行通信。(2) 兩個單片機(jī)之間進(jìn)行通訊波特率的設(shè)定,最終歸結(jié)到對定時計數(shù)器 T1 計數(shù)初值 TH1 、 TL1 進(jìn)行設(shè)定。
4、 故本題目本質(zhì)上是通過鍵盤掃描得到設(shè)定的波特 率,從而載入相應(yīng)的 T1 計數(shù)初值 TH1 、 TL1 實現(xiàn)的。(3)要求發(fā)送方讀入按鍵值,發(fā)送到接收方,接收方接受數(shù)據(jù)并顯示在數(shù) 碼管上。(4)要求做出實物。第 3 章 硬件電路設(shè)計3.1 系統(tǒng)框圖圖3-1系統(tǒng)框圖3.2 STC89C5單片機(jī)最小系統(tǒng)89C52共有四個八位的并行雙向口,即有 32根輸入輸出口線。各口的每 位均由鎖存器、輸出驅(qū)動器和輸入緩沖器組成。VCC(40引腳):電源電壓VSS( 20引腳):接地LSSTALLPC O. ADO m i Am3918PTTAL3PQ 2 AZ>Z37J JLD53 B3 2PS 5 ADS
5、J* _EtZTu - - I '-HSTC9C52M_ L. ADO21q2 sAJJ1Oj *P 2 3 AI>1124-LLE肥 4 9172 5F2 5 AD13丄芒列!UFZ - ADI ?LP LQ T2P3 Q&W77Pl IPJ l. TXD P3 2.-TKTD4Fl J. INTI-4- 1 44 THidPLJ5MJ5.T113OL.SltfaL 7PJ KRD17圖3-2 STC89C52引腳圖P0端口(P0.0P0.7, 3932引腳):P0 口是一個漏極開路的8位雙向I/O 口。 作為輸出端口,每個引腳能驅(qū)動 8個TTL負(fù)載,對端口 P0寫入“
6、 1時,可以作 為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲器時,P0 口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線。此時,P0 口內(nèi)部上拉電阻有效。在Flash ROM編程時, P0端口接收指令字節(jié);而在校驗程序時,則輸出指令字節(jié)。驗證時,要求外接 上拉電阻。P1 端口( P1.0P1.7,18 引腳): P1 口是一個帶內(nèi)部上拉電阻的 8 位雙向I/O 口。P1的輸出緩沖器可驅(qū)動(吸收或者輸出電流方式)4個TTL輸入。對端口寫入 1 時,通過內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。 P1 口作輸入口使用時, 因為有內(nèi)部上拉電阻, 那些被外部拉低的引腳會輸出一個電 流。 P1 口特點是輸出
7、鎖存器,輸出時沒有條件。輸入緩沖,輸入時有條件,即 需要先將該口設(shè)為輸入狀態(tài),先輸出 1 。此外, P1.0 和 P1.1 還可以作為定時器 /計數(shù)器 2 的外部技術(shù)輸入( P1.0/T2) 和定時器 /計數(shù)器 2 的觸發(fā)輸入( P1.1/T2EX)。P3 口為準(zhǔn)雙向口。可以字節(jié)訪問,也可以位訪問。P3.0-RXD,串行輸入口。P3.1-TXD, 串行輸出口。P3.2-INT0,外部中斷0的請求。P3.3-INT1 ,外部中斷 1 的請求。P3.4-T0,定時器/計數(shù)器0外部計數(shù)脈沖。P3.5-T1 ,定時器 /計數(shù)器 ,1 外部計數(shù)脈沖。P3.6-WR,外部數(shù)據(jù)存儲器寫選通。P3.7-RD,
8、外部數(shù)據(jù)存儲器讀選通。RST( 9 引腳):復(fù)位輸入。當(dāng)輸入連續(xù)兩個機(jī)器周期以上高電平時為有效, 用來完成單片機(jī)單片機(jī)的復(fù)位初始化操作。ALE ( 30 引腳):地址鎖存控制信號( ALE )是訪問外部程序存儲器時,鎖 存低 8 位地址的輸出脈沖。XTAL1 ( 19 引腳):振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2( 18 引腳):振蕩器反相放大器的輸入端。 STC89C52 引腳圖如圖 3-2 所示。3.3 按鍵電路II II ¥>JOO圖3-3按鍵電路圖本設(shè)計按鍵采用矩陣鍵盤,鍵盤連接主機(jī)的P2 口,主機(jī)從矩陣鍵盤接收信息,通過串行輸出口輸出到從機(jī),從機(jī)從串
9、行輸入口接收信息并把信息顯示在數(shù) 碼管上。3.4 主電路設(shè)計TAL1XTAL2RSTALEEAP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD-S3嚴(yán)-.a.*r* *nL L ->=-
10、*L iL i嚴(yán)u.寸L rii *it. * L * L 1R210k312XTAL1P0.0/AD0XTAL2P0.1/AD1P0.2/AD2P0.3/AD3RSTP0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7ALEP2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12EAP2.5/A13P1 0/T2P2.6/A14P2.7/A15P3 0/RXDP1.1/T2EXP1.2P3.1/TXDP3.2/INT0P1.3P3.3/INT1P1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WRP1.7P3.7/RD二3776 r F2123d:
11、dd5-4;e27SFS* 一107-91119187615FO!74HC5 7 3DOD1D2D3D4D5D6D7QOQ1Q2Q3Q4Q5Q6Q774HC573圖3-4主電路圖第4章軟件程序設(shè)計設(shè)計思路為:主機(jī)通過鍵盤掃描程序確認(rèn)是否有鍵按下, 若有鍵按下則將按 鍵號對應(yīng)的顯示代碼發(fā)送給從機(jī),并判斷是否是波特率按鍵,若是則進(jìn)行波特率 調(diào)整,若無鍵按下,則繼續(xù)進(jìn)行鍵盤掃描。從機(jī)主程序動態(tài)顯示緩沖區(qū)內(nèi)的數(shù)據(jù)。 中斷子程序接收數(shù)據(jù)并判斷是否是波特率按鍵所對應(yīng)的顯示代碼,若是則進(jìn)行波特率調(diào)整,然后將數(shù)據(jù)保存到緩沖區(qū)。初始波特率都為 9600。4.1 主程序流程圖鍵盤連接到甲機(jī)的P2 口,通過按鍵掃描
12、確定鍵值,從機(jī)與主機(jī)通過串行輸 入口 P3.0和串行輸出口 P3.1相連接,實現(xiàn)兩機(jī)之間的串行通信。4.2 鍵盤掃描子程序流程圖矩陣式鍵盤掃描的方法常用的有兩種,一種是逐列送 0,依次讀回行;另一種為反轉(zhuǎn)法。本程序采用前者,程序流程圖如下:4.3 從機(jī)主程序流程圖從機(jī)主程序動態(tài)顯示緩沖區(qū)的4個數(shù)據(jù)。從機(jī)的P1 口經(jīng)鎖存器74HC573連接 數(shù)碼管位碼,P2口經(jīng)鎖存器74HC573連接數(shù)碼管的段碼。從機(jī)與主機(jī)通過串行輸 入口 P3.0和串行輸出口 P3.1相連接,利用中斷來接收主機(jī)發(fā)來的數(shù)據(jù),并根據(jù) 接收的數(shù)據(jù)來判斷是否需要進(jìn)行波特率調(diào)整。從機(jī)主程序流程圖如下:圖4-3從機(jī)主程序流程圖4.4從機(jī)
13、中斷子程序流程圖圖4-3從機(jī)中斷子程序流程圖4.5程序調(diào)試圖4-5程序調(diào)試4.6 雙機(jī)串行通信源程序/*程序調(diào)試軟件: Keil uVision4程序仿真軟件: ISIS 即 Proteus-7.8sp2 /* 雙機(jī)串行通信主機(jī)程序源代碼:/*程序名稱:雙機(jī)串行通信波特率可調(diào)主機(jī)程序(C語言)主機(jī)功能: 通過鍵盤掃描得到鍵號并發(fā)送, 同時判斷是否是波特率按鍵, 若是則 調(diào)整波特率。簡要說明:主機(jī)P2口接4*4矩陣式鍵盤,高4位行,低4位列。 其中04號按鍵分別代表 4種不同波特率( 1200、2400、4800、9600)。 初始波特率 9600。編 寫:邢志杰 (QQ824997141)時
14、間: 2015年07月02日最后修改: 2015年07月03日*/#include <AT89x52.h>#define uint unsigned int#define uchar unsigned charint log=0,bot=0; /log,bot 分別是按鍵標(biāo)志位和波特率調(diào)整標(biāo)志位uchar temp, num;void delay(uint z) / 延時函數(shù)uint x,y;for(x=z;x>0;x-) for(y=110;y>0;y-);/* 按鍵掃描子函數(shù) */void keyscan()P2=0xf0;temp=P2; temp&=0x
15、f0;if(temp!=0xf0)delay(5); / 延時消抖P2=0xf0;/ 二次讀回temp=P2;temp&=0xf0; if(temp!=0xf0)log=1; / 有按鍵P2=0xfe;temp=P2;if(temp!=0xfe)switch(temp)case 0xee: num=0;bot=1;break;/bot=1 表示是波特率按鍵 case 0xde: num=4;break;case 0xbe: num=8;break;case 0x7e: num=12;break;P2=0xfd;temp=P2;if(temp!=0xfd)switch(temp)case
16、 0xed: num=1;bot=1;break; /bot=1 表示是波特率按鍵 case 0xdd: num=5;break;case 0xbd: num=9;break;case 0x7d: num=13;break;P2=0xfb;temp=P2;if(temp!=0xfb)switch(temp)case 0xeb: num=2;bot=1;break;/bot=1 表示是波特率按鍵 case 0xdb: num=6;break;case 0xbb: num=10;break;case 0x7b: num=14;break;P2=0xf7;temp=P2;if(temp!=0xf7)
17、switch(temp)case 0xe7: num=3;bot=1;break; /bot=1 表示是波特率按鍵 case 0xd7: num=7;break;case 0xb7: num=11;break;case 0x77: num=15;break;等待按鍵松開P2=0xf0; temp=P2;temp&=0xf0;while(temp!=0xf0) temp=P2; temp&=0xf0;/*主函數(shù) */void main()TMOD=0x20; / 設(shè)置定時器 1 為工作方式 2TH1=0xfd;/ 裝初值設(shè)置波特率TL1=0xfd;TR1=1;/ 打開定時器 1S
18、CON=0x40; /8 位異步while(1)keyscan();if(log=1) / 有鍵按下發(fā)送鍵號SBUF=num; / 發(fā)送按鍵號while(!TI);TI=0; / 清發(fā)送標(biāo)志位log=0; / 清按鍵標(biāo)志位 if(bot=1) / 是波特率按鍵進(jìn)行波特率調(diào)整 switch(num)case 0: TH1=TL1=0xe8;break;case 1: TH1=TL1=0xf4;break;case 2: TH1=TL1=0xfa;break;case 3: TH1=TL1=0xfd;break;bot=0; / 清波特率標(biāo)志位雙機(jī)串行通信從機(jī)程序源代碼:程序名稱:雙機(jī)串行通信波特
19、率可調(diào)從機(jī) C語言程序從機(jī)功能:主函數(shù)顯示緩沖區(qū)數(shù)據(jù)。中斷子函數(shù)接收主機(jī)發(fā)送的顯示代碼,同時 判斷是否是波特率按鍵代碼,若是則進(jìn)行調(diào)整。簡要說明:P1 口接4個數(shù)碼管位選端,P2 口接段選端,數(shù)碼管采用共陰極接法。編寫:邢志杰時間: 2015年07月02日最后修改: 2015年07月03日*/#include <AT89x52.h>#define uint unsigned int#define uchar unsigned charint i=1;uchar val=3,16,16,16,va;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0
20、x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39, 0x5e,0x79,0x71,0; /0F 共陰極數(shù)碼管顯示段碼, 0為全部熄滅段 碼void delay(uint x) / 延時uchar t;while(x-)for(t=0;t<110;t+);void ser() interrupt 4 / 無返回值,函數(shù)名 ser ,關(guān)鍵字,中斷號 4RI=0;va=SBUF;vali=va;switch(va) / 判斷是否需進(jìn)行波特率調(diào)整case 0: TH1=TL1=0xe8;val0=va;val1=val2=val3=16;i=3;break;case 1: TH1=TL1=0xf4;val0=va;val1=val2=val3=16;i=3;break;case 2: TH1=TL1=0xfa;val0=va;val1=val2=val3=16;i=3;break;case 3: TH1=TL1=0xfd;val0=va;val1=val2=val3=16;i=3;break;default:break;i+;if(i=4)i=1;void main()TMOD=0x23; / 設(shè)置定時器 1為工作方式 2TH1=0xfd;/ 裝初值設(shè)置波特率TL1=0xfd;TR1=1;/ 打開定時器
溫馨提示
- 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è)風(fēng)險管理與防范制度
- 交通肇事逃逸處理制度
- 2026甘肅電投常樂發(fā)電有限責(zé)任公司招聘30人參考題庫附答案
- 2026福建省面向中國科學(xué)院大學(xué)選調(diào)生選拔工作考試備考題庫附答案
- 2026貴州遵義市湄潭縣消防救援大隊政府專職消防隊員招聘20人參考題庫附答案
- 2026重慶醫(yī)科大學(xué)附屬第一醫(yī)院工作人員招聘參考題庫附答案
- 2026青海省海西州德令哈市司法局招聘1人備考題庫附答案
- 中共玉環(huán)市委宣傳部關(guān)于下屬事業(yè)單位 市互聯(lián)網(wǎng)宣傳指導(dǎo)中心公開選聘1名工作人員的考試備考題庫附答案
- 會昌縣2025年縣直事業(yè)單位公開選調(diào)一般工作人員考試備考題庫附答案
- 德令哈市公安局2025年面向社會公開招聘警務(wù)輔助人員參考題庫附答案
- 醫(yī)保主任述職報告
- 掛名法人免責(zé)協(xié)議書
- 一件代發(fā)采購合同協(xié)議書范本
- 《機(jī)械密封知識》課件
- 2023-2024學(xué)年浙江省杭州外國語學(xué)校七年級(上)期末英語試卷
- 足療店消防安全制度
- 房屋自愿放棄繼承協(xié)議
- 智能安全帽解決方案-智能安全帽
- 2024年版煙霧病和煙霧綜合征診斷與治療專家共識(完整版)
- 2023年-2025年國企改革深化提升方案
- 研學(xué)旅行指導(dǎo)手冊
評論
0/150
提交評論