「串行口通信」.doc_第1頁
「串行口通信」.doc_第2頁
「串行口通信」.doc_第3頁
「串行口通信」.doc_第4頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學(xué)號序號 28單片機原理與接口技術(shù)實驗報告實驗項目序號 三 實驗項目名稱 串行口通信實驗姓名彭任遠 專業(yè) 電子信息工程 完成時間06年5月20日 班級電信141BF實驗三串行口通信實驗一、實驗?zāi)康?、 掌握單片機串行口通信的應(yīng)用和編寫方法;2、 進一步掌握單片機中斷的應(yīng)用和中斷處理程序的編寫方法;3、 進一步掌握單片機內(nèi)部定時/計數(shù)器的使用及編程方法。二、實驗前準(zhǔn)備1、 完成作業(yè)5;2、 根據(jù)實驗內(nèi)容編寫好相關(guān)程序,并進行Proteus仿真。三、實驗內(nèi)容實驗內(nèi)容為3項,其中第1、2項必做。據(jù)圖3.3電路,兩個同學(xué)為一組分為甲方、乙方,所有實驗都采用方式3,偶校驗,波特率為2400bit/s,采用T1作波特率發(fā)生器,均采用中斷發(fā)送和接收。按鍵值a:按K1,a=0x01;按K2,a=0x02;按K3,a=0x04;按K4,a=0x08。1、單向通信向甲方連續(xù)不斷地發(fā)送變量a的值,未按鍵,a=0x0f,按鍵后根據(jù)按鍵確定a值;并將a的值取反從P0口輸出,控制D0、D1、D2、D3相應(yīng)點亮。乙方接收到數(shù)據(jù)并偶校驗正確后,將接收數(shù)據(jù)取反從P0口輸出,控制D0、D1、D2、D3相應(yīng)點亮。2、雙向通信甲方連續(xù)不斷地發(fā)送變量a的值,未按鍵,a=0x0f,按鍵后根據(jù)按鍵確定a值;乙方未按鍵不發(fā)送,按鍵后將a*16發(fā)送;甲乙雙方都將發(fā)送數(shù)據(jù)與接收數(shù)據(jù)相或后再取反,從P0口輸出控制D0D7相應(yīng)點亮。3、間隔發(fā)送未按鍵,甲方不發(fā)送數(shù)據(jù),按鍵后甲方每隔50ms連續(xù)發(fā)送4個字節(jié):0xff、a、a、a。乙方只在收到甲方數(shù)據(jù)0xff后的3個數(shù)據(jù)并驗證相同時,才將接收數(shù)據(jù)*16發(fā)送。甲乙雙方都將發(fā)送數(shù)據(jù)與接收數(shù)據(jù)相或后,從P0口輸出控制D0D7相應(yīng)點亮。四、實驗原理圖實驗原理圖如圖3.3所示:圖3.3 串行口通信實驗電路原理圖在HNIST-2型實驗裝置中,通過通信接口排插將甲機的TXD、RXD連接到乙機的RXD、TXD,注意:下載程序時,要將RXD引腳線斷開,有接收時,HNIST-2型實驗裝置上的D25會閃爍。五、軟件設(shè)計思想1、 按鍵處理采用中斷處理按鍵,甲方在外部中斷0服務(wù)程序中:判斷按鍵確定發(fā)送數(shù)據(jù),并判斷是否開始發(fā)送,若未開始發(fā)送,設(shè)置TI=1。2、 雙向通信串行口中斷后要注意判斷是發(fā)送中斷 ( TI=1 ) 還是接收中斷( RI=1 ),判斷完后要清除標(biāo)志。六程序:1 單向通信甲方程序:#include #define uchar unsigned chardatauchar a=0x0f,i;sbitP3_4=P34;void main() TMOD=0x20;/ 設(shè)置定時器T1為方式2,T0為方式1 TH1=0xf4;/ 波特率2400 TL1=0xf4; PCON=0x00; / 波特率不加倍 TR1=1;/ 啟動T1 SCON=0xc0; / 方式3只發(fā)送,不接收 IE=0x91;/ 開中斷, 允許外部中斷0和串行口中斷 IT0=1; TI=1; P0=0xf0;while(1);void comint_isr(void) interrupt 4 / 串行口的中斷服務(wù)函數(shù) TI=0;/發(fā)送中斷標(biāo)志位TI清0 ACC=a; TB8=P; / A中“1”和P中“1”一定是偶數(shù) SBUF=ACC;/ 數(shù)據(jù)送串行口發(fā)送 void EX0_int(void) interrupt 0 /外部中斷1中斷服務(wù)函數(shù) a=P2; P0=a; a=a;單向通信乙方程序:#include #define uchar unsigned chardatauchar a;void main() TMOD=0x20;/ 設(shè)置定時器T1為方式2,T0為方式1 TH1=0xf4;/ 波特率2400 TL1=0xf4; PCON=0x00; / 波特率不加倍 TR1=1;/ 啟動T1 SCON=0xd0; / 方式3允許接收 IE=0x90;/ 開中斷, 允許串行口中斷while(1); void comint_isr(void) interrupt 4 / 串行口的中斷服務(wù)函數(shù) RI=0;/接收中斷標(biāo)志位RI清0ACC=SBUF;if(RB8=P)a=SBUF;a=a;P0=a; 實驗3第2題甲方程序#include #define uchar unsigned chardatauchar a=0x0f,b,c;void main() datauchar d; TMOD=0x20;/ 設(shè)置定時器T1為方式2,T0為方式1 TH1=0xf4;/ 波特率2400 TL1=0xf4; PCON=0x00; / 波特率不加倍 TR1=1;/ 啟動T1 SCON=0xd0; / 方式3允許接收 IE=0x91;/ 開中斷, 允許外部中斷0和串行口中斷 IT0=1; TI=1; P0=0xf0;while(1) d=a|b; P0=d; void comint_isr(void) interrupt 4 / 串行口的中斷服務(wù)函數(shù) if(RI=1)RI=0;/接收中斷標(biāo)志位RI清0ACC=SBUF;if(RB8=P)b=SBUF;elseTI=0;ACC=a;TB8=P; / A中“1”和P中“1”一定是偶數(shù)SBUF=ACC;/ 數(shù)據(jù)送串行口發(fā)送 void EX0_int(void) interrupt 0 /外部中斷0中斷服務(wù)函數(shù) a=P2; a=a;實驗3第2題乙方程序#include #define uchar unsigned chardatauchara,b,c=0;void main() datauchar d; TMOD=0x20;/ 設(shè)置定時器T1為方式2,T0為方式1 TH1=0xf4;/ 波特率2400 TL1=0xf4; PCON=0x00; / 波特率不加倍 TR1=1;/ 啟動T1 SCON=0xd0; / 方式3允許接收 IE=0x91;/ 開中斷, 允許串行口中斷 IT0=1;while(1) d=a|b; P0=d; void comint_isr(void) interrupt 4 / 串行口的中斷服務(wù)函數(shù) if(RI=1)RI=0;/接收中斷標(biāo)志位RI清0ACC=SBUF;if(RB8=P)b=SBUF;elseTI=0;ACC=a;TB8=P; / A中“1”和P中“1”一定是偶數(shù)SBUF=ACC;/ 數(shù)據(jù)送串行口發(fā)送 void EX0_int(void) interrupt 0 /外部中斷0中斷服務(wù)函數(shù) a=P2; a=a; a=a*16;if(c=0)TI=1;c=0xff;七、實驗思考題1、 為什么串行口中斷后要注意判斷是發(fā)送中斷 ( TI=1 ) 還是接收中斷( RI=1 ),判斷完后要清除標(biāo)志。為什么不能象其它中斷一樣,中斷后自動清除中斷標(biāo)志?答:因為如果把發(fā)送中斷和接收中斷都打開,那么再發(fā)送完成或者接收完成時MCU都會觸發(fā)中斷,而我們

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論