版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
任務(wù)一測試串行口的通信狀態(tài)四、任務(wù)實施(一)任務(wù)描述由例5-3可知,將單片機的發(fā)送端與接收端接在一起,可以測試單片機的串口通信功能?,F(xiàn)要求設(shè)計一個串口測試系統(tǒng),測試串口工作正常,則發(fā)光二極管閃爍。設(shè)單片機主頻為6MHz,測試波特率為2400b/s。(二)硬件設(shè)計可采用圖5-14中的電路,將數(shù)碼管看成7個發(fā)光二極管即可。任務(wù)一測試串行口的通信狀態(tài)(三)軟件設(shè)計程序控制代碼如下:#include<reg51h>/************************************************************串口初始化子程序************************************************************/voidInitUART(void){TMOD=0x20;//定時器T1方式2SCON=0x50;//串口工作方式1,允許接收TH1=0xF3;//波特率2400b/sTL1=TH1;PCON=0x80;TR1=1;//啟動定時器}/************************************************************延時200ms子程序************************************************************/voiddelay(void){unsignedchara,b,c;for(c=19;c>0;c--)for(b=20;b>0;b--)for(a=130;a>0;a--);}任務(wù)一測試串行口的通信狀態(tài)/************************************************************主程序功能:串口通信功能測試************************************************************/voidmain(){ InitUART();while(1){TI=0;//清發(fā)送標(biāo)志P0=0xFF;//初始狀態(tài):亮燈delay(); SBUF=0x0;//發(fā)送滅燈信號while(!TI);//等待發(fā)送while(!RI);//等待接收RI=0;//清接收標(biāo)志P0=SBUF; //將滅燈信號送P0口delay();}}任務(wù)一測試串行口的通信狀態(tài)(四)程序調(diào)試(1)在Keil中編輯、匯編程序,并保存為后綴為HEX的文件;(2)在PROTEUS仿真軟件中設(shè)置相關(guān)參數(shù),打開保存的后綴為.HEX的文件下載到軟件單片機中;(3)按“Play”按鈕仿真運行,觀察運行效果,按“Stop”按鈕停止運行;(4)用下載電路把程序燒錄到硬件單片機中;(5)把單片機插到項目一流水燈電路中,接常用電源,即可看到LED燈的亮滅情況。任務(wù)一測試串行口的通信狀態(tài)三、串行通信技術(shù)的應(yīng)用【例5-1】使用74LS164的并行輸出端接8只發(fā)光二極管,利用它的串入并出功能,編寫程序把發(fā)光二極管從左到右依次點亮,并反復(fù)循環(huán),如圖5-13所示。任務(wù)一測試串行口的通信狀態(tài)實現(xiàn)發(fā)光二極管從下到上輪流實現(xiàn)的控制代碼如下:/************74LS164擴展并行口,控制8LED流水燈顯示***************/#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar/***********************************************************//*延時子函數(shù)/*功能:延時1*xms/***********************************************************/voidDelay(uintx) {uchari;while(x--){for(i=0;i<120;i++);}}任務(wù)一測試串行口的通信狀態(tài)/***********************************************************//*主函數(shù)/***********************************************************/voidmain(){ucharc=0x80;//顯示信號初始化SCON=0x00;//串口方式0ES=0;//關(guān)閉串口中斷TI=1;P1=0x80;//P1.7置高,關(guān)閉并行異步清零端while(1){c=_crol_(c,1);//循環(huán)左移1位SBUF=c; //串口發(fā)送while(TI==0);//等待串口發(fā)送完畢TI=0;Delay(400);//延時400ms}}任務(wù)一測試串行口的通信狀態(tài)【例5-2】要求串行通信波特率為2400b/s,假設(shè)fosc=6MHz,SMOD=1,編寫串行口的初始化程序。定時器T/C1和串行口的初始化代碼如下:TMOD=0x20;//設(shè)置T1工作于定時模式方式2TH1=TL1=0xf3;//置定時初始值TR1=1;//啟動T1SCON=0x50;//串口工作方式1PCON|=0x80;//SMOD=1任務(wù)一測試串行口的通信狀態(tài)【例53】使用MCS-51單片機串行口按字節(jié)字符自我收發(fā)數(shù)據(jù),并要求偶校驗,傳送波特率為1200b/s。任務(wù)一測試串行口的通信狀態(tài)/************************************************************功能:單片機發(fā)送數(shù)據(jù),自接收并顯示時鐘11.0592MHz,波特率1200bps************************************************************/#include<reg51.h>#defineucharunsignedchar;codeuchartab_cc[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};sbitK0=P1^0;//定義發(fā)送按鍵uchardat[10]={0,1,2,3,4,5,6,7,8,9};//待發(fā)送數(shù)據(jù)uchari;voidmain(){ SCON=0xD0;//串口工作方式3,允許接收TMOD=0x20;//定時器T1方式2TL1=TH1=0xE8; //波特率1200bpsTR1=1; //啟動定時器EA=1; //開串口中斷ES=1;while(1){if(K0==0) //判斷按鍵{while(K0==0); //等待按鍵彈出ACC=dat[i];if(P)TB8=1;//設(shè)置校驗位elseTB8=0;SBUF=ACC;//發(fā)送數(shù)據(jù)i++;i%=10;} }}任務(wù)一測試串行口的通信狀態(tài)/************************************************************中斷服務(wù)程序************************************************************/voidint_s(void)interrupt4{if(TI)//發(fā)送中斷處理{TI=0;}if(RI)//接收中斷處理{RI=0;ACC=SBUF;if(P==RB8)P0=tab_cc[ACC];//校驗正確,顯示接收數(shù)據(jù)elseP0=0x71;//校驗不正確,顯示“F”}任務(wù)一測試串行口的通信狀態(tài)二、串行通信接口1.串行口的結(jié)構(gòu)與工作原理串行接口電路的種類和型號很多。能夠完成異步通信的硬件電路稱為UART,即通用異步接收/發(fā)送器UniversalAsychronousReceiver/Transmitter);能夠完成同步通信的硬件電路稱為USRTUniversalSychronouseceiver/Transmitter);既能完成異步通信又能完成同步通信的硬件電路稱為USART(UniversalSychronousAsychronousReceiver/Transmitter)。1)串行口的結(jié)構(gòu)MCS-51單片機的串行口主要由兩個數(shù)據(jù)緩沖器SBUF、一個輸入移位寄存器、一個串行控制寄存器SCON和一個波特率發(fā)生器T1組成,其結(jié)構(gòu)如圖5-8所示。任務(wù)一測試串行口的通信狀態(tài)2)串行通信過程串行通信過程分為接收數(shù)據(jù)和發(fā)送數(shù)據(jù),具體過程如下。(1)接收數(shù)據(jù)的過程。在進行通信時,當(dāng)CPU允許接收時(即SCON的REN位置1時),外界數(shù)據(jù)通過引腳RXD(P3.0)串行輸入,數(shù)據(jù)的最低位首先進入輸入移位器,一幀接收完畢再并行送入緩沖器SBUF中,同時將接收中斷標(biāo)志位RI置位,向CPU發(fā)出中斷請求。CPU響應(yīng)中斷后,用軟件將RI位清除,同時讀走輸入的數(shù)據(jù),接著又開始下一幀的輸入過程。重復(fù)上述過程直至所有數(shù)據(jù)接收完畢。(2)發(fā)送數(shù)據(jù)的過程。CPU要發(fā)送數(shù)據(jù)時,即將數(shù)據(jù)并行寫入發(fā)送緩沖器SBUF中,同時啟動數(shù)據(jù)由TXD(P3.1)引腳串行發(fā)送,當(dāng)一幀數(shù)據(jù)發(fā)送完即發(fā)送緩沖器空時,由硬件自動將發(fā)送中斷標(biāo)志位TI置位,向CPU發(fā)出中斷請求。CPU響應(yīng)中斷后,用軟件將TI位清除,同時又將下一幀數(shù)據(jù)寫入SBUF中。重復(fù)上述過程直到所有數(shù)據(jù)發(fā)送完畢。任務(wù)一測試串行口的通信狀態(tài)2.串行口的控制MCS-51串行口的工作方式選擇、中斷標(biāo)志、可編程位的設(shè)置、波特率的增倍均是通過兩個特殊功能寄存器SCON和PCON來控制的。1)電源和波特率控制寄存器PCON串行通信只用該位,為1時,波特率×2;為0時不變。SMOD×××GF1GF0PDIDL87H任務(wù)一測試串行口的通信狀態(tài)2)串行口控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式選擇多機通信控制位允許串行接收位接收數(shù)據(jù)的第9位發(fā)送數(shù)據(jù)的第9位接收中斷標(biāo)志發(fā)送中斷標(biāo)志9FH9EH9DH9CH9BH9AH99H98HSM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式110位UART可變10方式211位UARTfosc/64或fosc/3211方式311位UART可變?nèi)蝿?wù)一測試串行口的通信狀態(tài)方式的選擇由SM1、SM0實現(xiàn)。工作方式功能說明波特率方式08位同步移位寄存器常用于擴展I/O口fosc/12方式110位UART8位數(shù)據(jù)、起始位、結(jié)束位可變(取決于定時器1溢出率)方式211位UART8位數(shù)據(jù)、起始位0、結(jié)束位1和奇偶校驗位fosc/64或fosc/32方式311位UART數(shù)據(jù)、起始、校驗、結(jié)束位可變(取決于定時器1溢出率)串行口四種工作方式應(yīng)用比較任務(wù)一測試串行口的通信狀態(tài)一、了解串行通信1.串行通信與并行通信計算機與外界的信息交換(數(shù)據(jù)傳輸)稱為通信。通信方式有兩種:并行通信與串行通信。
圖5-1并行通信與串行通信。MCS51單片機的并行通信是由其并行接口實現(xiàn)的,同一時刻可以輸入或輸出8位數(shù)據(jù);MCS51串行通信是由其串行接口實現(xiàn)的。串行通信中,數(shù)據(jù)在通信線上的傳送方式有3種:單工方式、半雙工方式和全雙工方式。串行通信有兩種基本方式:同步通信和異步通信。1)同步通信(SynchronousCommunication)所謂同步通信就是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳輸一幀信息。任務(wù)一測試串行口的通信狀態(tài)2)異步通信(AsynchronousCommunication)在異步通信中,數(shù)據(jù)通常是以字符為單位組成字符幀傳送的。字符幀由發(fā)送端一幀一幀地發(fā)送,每一幀數(shù)據(jù)均是低位在前,高位在后,通過傳輸線被接收端一幀一幀地接收。發(fā)送端和接收端可以由各自獨立的時鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個時鐘彼此獨立,互不同步。2.串行通信的傳送速率在串行通信中,數(shù)據(jù)是按位進行傳送的,因此傳送速率用每秒傳送格式位的數(shù)目表
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年免租金科研機構(gòu)租賃合同規(guī)范文本3篇
- 2025年管道檢測與修復(fù)水管安裝合同樣本3篇
- 2025年酒店布草租賃與智能化管理服務(wù)合同2篇
- 二零二五年度草料種植基地土壤治理合同3篇
- 二零二五年度租賃房屋租賃保證金監(jiān)管服務(wù)合同范本3篇
- 2025年校園體育設(shè)施平整施工合同6篇
- 二零二五年度數(shù)據(jù)中心場地租賃合同及數(shù)據(jù)安全保障與服務(wù)標(biāo)準(zhǔn)3篇
- 二零二五惠州法務(wù)專員招聘與法律知識普及培訓(xùn)合同3篇
- 2024金融機構(gòu)貸款擔(dān)保合同
- 二零二四年農(nóng)場自建房產(chǎn)權(quán)交易合同范本3篇
- 危險性較大分部分項工程及施工現(xiàn)場易發(fā)生重大事故的部位、環(huán)節(jié)的預(yù)防監(jiān)控措施
- 繼電保護試題庫(含參考答案)
- 《榜樣9》觀后感心得體會四
- 2023事業(yè)單位筆試《公共基礎(chǔ)知識》備考題庫(含答案)
- 《住院患者身體約束的護理》團體標(biāo)準(zhǔn)解讀課件
- 酒店一線員工績效考核指標(biāo)體系優(yōu)化研究
- 成都市優(yōu)質(zhì)結(jié)構(gòu)工程申報指南
- 小學(xué)四年級上冊-數(shù)學(xué)口算題精選(分頁打印)
- 【納棺夫日記】
- 《鐵路貨車運用維修規(guī)程》2018年10月
- 水利工程竣工驗收報告表格(共5頁)
評論
0/150
提交評論