版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
任務(wù)一測(cè)試串行口的通信狀態(tài)四、任務(wù)實(shí)施(一)任務(wù)描述由例5-3可知,將單片機(jī)的發(fā)送端與接收端接在一起,可以測(cè)試單片機(jī)的串口通信功能。現(xiàn)要求設(shè)計(jì)一個(gè)串口測(cè)試系統(tǒng),測(cè)試串口工作正常,則發(fā)光二極管閃爍。設(shè)單片機(jī)主頻為6MHz,測(cè)試波特率為2400b/s。(二)硬件設(shè)計(jì)可采用圖5-14中的電路,將數(shù)碼管看成7個(gè)發(fā)光二極管即可。任務(wù)一測(cè)試串行口的通信狀態(tài)(三)軟件設(shè)計(jì)程序控制代碼如下:#include<reg51h>/************************************************************串口初始化子程序************************************************************/voidInitUART(void){TMOD=0x20;//定時(shí)器T1方式2SCON=0x50;//串口工作方式1,允許接收TH1=0xF3;//波特率2400b/sTL1=TH1;PCON=0x80;TR1=1;//啟動(dòng)定時(shí)器}/************************************************************延時(shí)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ù)一測(cè)試串行口的通信狀態(tài)/************************************************************主程序功能:串口通信功能測(cè)試************************************************************/voidmain(){ InitUART();while(1){TI=0;//清發(fā)送標(biāo)志P0=0xFF;//初始狀態(tài):亮燈delay(); SBUF=0x0;//發(fā)送滅燈信號(hào)while(!TI);//等待發(fā)送while(!RI);//等待接收RI=0;//清接收標(biāo)志P0=SBUF; //將滅燈信號(hào)送P0口delay();}}任務(wù)一測(cè)試串行口的通信狀態(tài)(四)程序調(diào)試(1)在Keil中編輯、匯編程序,并保存為后綴為HEX的文件;(2)在PROTEUS仿真軟件中設(shè)置相關(guān)參數(shù),打開(kāi)保存的后綴為.HEX的文件下載到軟件單片機(jī)中;(3)按“Play”按鈕仿真運(yùn)行,觀察運(yùn)行效果,按“Stop”按鈕停止運(yùn)行;(4)用下載電路把程序燒錄到硬件單片機(jī)中;(5)把單片機(jī)插到項(xiàng)目一流水燈電路中,接常用電源,即可看到LED燈的亮滅情況。任務(wù)一測(cè)試串行口的通信狀態(tài)三、串行通信技術(shù)的應(yīng)用【例5-1】使用74LS164的并行輸出端接8只發(fā)光二極管,利用它的串入并出功能,編寫(xiě)程序把發(fā)光二極管從左到右依次點(diǎn)亮,并反復(fù)循環(huán),如圖5-13所示。任務(wù)一測(cè)試串行口的通信狀態(tài)實(shí)現(xiàn)發(fā)光二極管從下到上輪流實(shí)現(xiàn)的控制代碼如下:/************74LS164擴(kuò)展并行口,控制8LED流水燈顯示***************/#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar/***********************************************************//*延時(shí)子函數(shù)/*功能:延時(shí)1*xms/***********************************************************/voidDelay(uintx) {uchari;while(x--){for(i=0;i<120;i++);}}任務(wù)一測(cè)試串行口的通信狀態(tài)/***********************************************************//*主函數(shù)/***********************************************************/voidmain(){ucharc=0x80;//顯示信號(hào)初始化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);//延時(shí)400ms}}任務(wù)一測(cè)試串行口的通信狀態(tài)【例5-2】要求串行通信波特率為2400b/s,假設(shè)fosc=6MHz,SMOD=1,編寫(xiě)串行口的初始化程序。定時(shí)器T/C1和串行口的初始化代碼如下:TMOD=0x20;//設(shè)置T1工作于定時(shí)模式方式2TH1=TL1=0xf3;//置定時(shí)初始值TR1=1;//啟動(dòng)T1SCON=0x50;//串口工作方式1PCON|=0x80;//SMOD=1任務(wù)一測(cè)試串行口的通信狀態(tài)【例53】使用MCS-51單片機(jī)串行口按字節(jié)字符自我收發(fā)數(shù)據(jù),并要求偶校驗(yàn),傳送波特率為1200b/s。任務(wù)一測(cè)試串行口的通信狀態(tài)/************************************************************功能:?jiǎn)纹瑱C(jī)發(fā)送數(shù)據(jù),自接收并顯示時(shí)鐘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;//定時(shí)器T1方式2TL1=TH1=0xE8; //波特率1200bpsTR1=1; //啟動(dòng)定時(shí)器EA=1; //開(kāi)串口中斷ES=1;while(1){if(K0==0) //判斷按鍵{while(K0==0); //等待按鍵彈出ACC=dat[i];if(P)TB8=1;//設(shè)置校驗(yàn)位elseTB8=0;SBUF=ACC;//發(fā)送數(shù)據(jù)i++;i%=10;} }}任務(wù)一測(cè)試串行口的通信狀態(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];//校驗(yàn)正確,顯示接收數(shù)據(jù)elseP0=0x71;//校驗(yàn)不正確,顯示“F”}任務(wù)一測(cè)試串行口的通信狀態(tài)二、串行通信接口1.串行口的結(jié)構(gòu)與工作原理串行接口電路的種類(lèi)和型號(hào)很多。能夠完成異步通信的硬件電路稱(chēng)為UART,即通用異步接收/發(fā)送器UniversalAsychronousReceiver/Transmitter);能夠完成同步通信的硬件電路稱(chēng)為USRTUniversalSychronouseceiver/Transmitter);既能完成異步通信又能完成同步通信的硬件電路稱(chēng)為USART(UniversalSychronousAsychronousReceiver/Transmitter)。1)串行口的結(jié)構(gòu)MCS-51單片機(jī)的串行口主要由兩個(gè)數(shù)據(jù)緩沖器SBUF、一個(gè)輸入移位寄存器、一個(gè)串行控制寄存器SCON和一個(gè)波特率發(fā)生器T1組成,其結(jié)構(gòu)如圖5-8所示。任務(wù)一測(cè)試串行口的通信狀態(tài)2)串行通信過(guò)程串行通信過(guò)程分為接收數(shù)據(jù)和發(fā)送數(shù)據(jù),具體過(guò)程如下。(1)接收數(shù)據(jù)的過(guò)程。在進(jìn)行通信時(shí),當(dāng)CPU允許接收時(shí)(即SCON的REN位置1時(shí)),外界數(shù)據(jù)通過(guò)引腳RXD(P3.0)串行輸入,數(shù)據(jù)的最低位首先進(jìn)入輸入移位器,一幀接收完畢再并行送入緩沖器SBUF中,同時(shí)將接收中斷標(biāo)志位RI置位,向CPU發(fā)出中斷請(qǐng)求。CPU響應(yīng)中斷后,用軟件將RI位清除,同時(shí)讀走輸入的數(shù)據(jù),接著又開(kāi)始下一幀的輸入過(guò)程。重復(fù)上述過(guò)程直至所有數(shù)據(jù)接收完畢。(2)發(fā)送數(shù)據(jù)的過(guò)程。CPU要發(fā)送數(shù)據(jù)時(shí),即將數(shù)據(jù)并行寫(xiě)入發(fā)送緩沖器SBUF中,同時(shí)啟動(dòng)數(shù)據(jù)由TXD(P3.1)引腳串行發(fā)送,當(dāng)一幀數(shù)據(jù)發(fā)送完即發(fā)送緩沖器空時(shí),由硬件自動(dòng)將發(fā)送中斷標(biāo)志位TI置位,向CPU發(fā)出中斷請(qǐng)求。CPU響應(yīng)中斷后,用軟件將TI位清除,同時(shí)又將下一幀數(shù)據(jù)寫(xiě)入SBUF中。重復(fù)上述過(guò)程直到所有數(shù)據(jù)發(fā)送完畢。任務(wù)一測(cè)試串行口的通信狀態(tài)2.串行口的控制MCS-51串行口的工作方式選擇、中斷標(biāo)志、可編程位的設(shè)置、波特率的增倍均是通過(guò)兩個(gè)特殊功能寄存器SCON和PCON來(lái)控制的。1)電源和波特率控制寄存器PCON串行通信只用該位,為1時(shí),波特率×2;為0時(shí)不變。SMOD×××GF1GF0PDIDL87H任務(wù)一測(cè)試串行口的通信狀態(tài)2)串行口控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式選擇多機(jī)通信控制位允許串行接收位接收數(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ù)一測(cè)試串行口的通信狀態(tài)方式的選擇由SM1、SM0實(shí)現(xiàn)。工作方式功能說(shuō)明波特率方式08位同步移位寄存器常用于擴(kuò)展I/O口fosc/12方式110位UART8位數(shù)據(jù)、起始位、結(jié)束位可變(取決于定時(shí)器1溢出率)方式211位UART8位數(shù)據(jù)、起始位0、結(jié)束位1和奇偶校驗(yàn)位fosc/64或fosc/32方式311位UART數(shù)據(jù)、起始、校驗(yàn)、結(jié)束位可變(取決于定時(shí)器1溢出率)串行口四種工作方式應(yīng)用比較任務(wù)一測(cè)試串行口的通信狀態(tài)一、了解串行通信1.串行通信與并行通信計(jì)算機(jī)與外界的信息交換(數(shù)據(jù)傳輸)稱(chēng)為通信。通信方式有兩種:并行通信與串行通信。
圖5-1并行通信與串行通信。MCS51單片機(jī)的并行通信是由其并行接口實(shí)現(xiàn)的,同一時(shí)刻可以輸入或輸出8位數(shù)據(jù);MCS51串行通信是由其串行接口實(shí)現(xiàn)的。串行通信中,數(shù)據(jù)在通信線上的傳送方式有3種:?jiǎn)喂し绞?、半雙工方式和全雙工方式。串行通信有兩種基本方式:同步通信和異步通信。1)同步通信(SynchronousCommunication)所謂同步通信就是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳輸一幀信息。任務(wù)一測(cè)試串行口的通信狀態(tài)2)異步通信(AsynchronousCommunication)在異步通信中,數(shù)據(jù)通常是以字符為單位組成字符幀傳送的。字符幀由發(fā)送端一幀一幀地發(fā)送,每一幀數(shù)據(jù)均是低位在前,高位在后,通過(guò)傳輸線被接收端一幀一幀地接收。發(fā)送端和接收端可以由各自獨(dú)立的時(shí)鐘來(lái)控制數(shù)據(jù)的發(fā)送和接收,這兩個(gè)時(shí)鐘彼此獨(dú)立,互不同步。2.串行通信的傳送速率在串行通信中,數(shù)據(jù)是按位進(jìn)行傳送的,因此傳送速率用每秒傳送格式位的數(shù)目表
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)-山東省淄博市2024-2025學(xué)年第一學(xué)期高三期末摸底質(zhì)量檢測(cè)試題和答案
- 《文學(xué)概論》課程期末試題B卷及答案
- 小學(xué)一年級(jí)20以?xún)?nèi)數(shù)學(xué)口算練習(xí)題
- 合伙經(jīng)營(yíng)協(xié)議書(shū)(3篇)
- 小學(xué)數(shù)學(xué)六年級(jí)上冊(cè)《分?jǐn)?shù)四則混合運(yùn)算》教學(xué)設(shè)計(jì)
- 秋季腹瀉防治彩
- 《心內(nèi)科常見(jiàn)疾病》課件
- 企業(yè)社會(huì)責(zé)任與品牌價(jià)值計(jì)劃
- 游戲產(chǎn)業(yè)行業(yè)設(shè)計(jì)師培訓(xùn)總結(jié)
- 教學(xué)策略調(diào)整與靈活應(yīng)對(duì)計(jì)劃
- 大概念視域下高中歷史融通教學(xué)淺思+課件
- 中學(xué)生使用手機(jī)的利與弊
- 一氧化鉛安全技術(shù)說(shuō)明書(shū)MSDS
- kv桿塔防腐施工組織設(shè)計(jì)
- 家裝工地形象及成品保護(hù)驗(yàn)收標(biāo)準(zhǔn)
- 2018年海南公務(wù)員考試申論真題
- GB/T 28799.2-2020冷熱水用耐熱聚乙烯(PE-RT)管道系統(tǒng)第2部分:管材
- 《毛澤東思想概論》題庫(kù)
- 勞務(wù)派遣人員考核方案
- 意志力講解學(xué)習(xí)課件
- 生產(chǎn)作業(yè)員質(zhì)量意識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論