單片機(jī)定時(shí)器的使用_第1頁(yè)
單片機(jī)定時(shí)器的使用_第2頁(yè)
單片機(jī)定時(shí)器的使用_第3頁(yè)
單片機(jī)定時(shí)器的使用_第4頁(yè)
單片機(jī)定時(shí)器的使用_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)定時(shí)器的使用第1頁(yè),共65頁(yè),2023年,2月20日,星期一在工業(yè)檢測(cè)、控制中,很多場(chǎng)合都要用到計(jì)數(shù)或者定時(shí)功能。例如對(duì)外部脈沖進(jìn)行計(jì)數(shù)、產(chǎn)生精確的定時(shí)時(shí)間、作串行口的波特率發(fā)聲器等。MCS-51單片機(jī)內(nèi)部有兩個(gè)可編程的定時(shí)器/計(jì)數(shù)器,以滿足這方面的需要。它們具有兩種工作模數(shù)(計(jì)數(shù)器模式、定時(shí)器模式)和四種工作方式(方式0、方式1、方式2、方式3),其控制字均在相應(yīng)的特殊功能寄存器(SFR)中,通過(guò)對(duì)它的SFR的編程,可以方便的選擇工作模數(shù)和工作方式。第2頁(yè),共65頁(yè),2023年,2月20日,星期一定時(shí)器/計(jì)數(shù)器:Timer/Counter本質(zhì)上都是加法計(jì)數(shù)器,當(dāng)對(duì)固定周期的脈沖信號(hào)計(jì)數(shù)時(shí)是定時(shí)器,對(duì)脈沖長(zhǎng)度不確定的信號(hào)計(jì)數(shù)時(shí)是計(jì)數(shù)器。每接收到一個(gè)計(jì)數(shù)脈沖,加法計(jì)數(shù)器的值就加一,當(dāng)計(jì)滿時(shí)發(fā)生溢出,并從0開(kāi)始繼續(xù)計(jì)數(shù)。加法計(jì)數(shù)器的計(jì)滿溢出信號(hào)就是定時(shí)/計(jì)數(shù)器的輸出,該信號(hào)使TCON的某位(TF0或TF1位)置一,作為定時(shí)器/計(jì)數(shù)器的溢出中斷標(biāo)志。6.1定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)及工作原理第3頁(yè),共65頁(yè),2023年,2月20日,星期一圖6.1定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)框圖

第4頁(yè),共65頁(yè),2023年,2月20日,星期一6.2方式和控制寄存器一、定時(shí)器/計(jì)數(shù)器的方式寄存器TMOD圖6.2TMOD各位定義8位分為兩組,高四位控制T1,低4位控制T0。第5頁(yè),共65頁(yè),2023年,2月20日,星期一對(duì)TMOD的各個(gè)位的說(shuō)明:GATE位:門(mén)控位。GATE=1時(shí),T0、T1是否計(jì)數(shù)要受到外部引腳輸入電平的控制,INT0引腳控制T0,INT1引腳控制T1??捎糜跍y(cè)量在INT0和INT1引腳出現(xiàn)的正脈沖的寬度。若GATE=0,即不使能門(mén)控功能,定時(shí)計(jì)數(shù)器的運(yùn)行不受外部輸入引腳INT0、INT1的控制。第6頁(yè),共65頁(yè),2023年,2月20日,星期一C/T位:計(jì)數(shù)器模式和定時(shí)器模式的選擇位。C/T=0,為定時(shí)器模式,內(nèi)部計(jì)數(shù)器對(duì)晶振脈沖12分頻后的脈沖計(jì)數(shù),該脈沖周期等于機(jī)器周期,所以可以理解為對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)。從計(jì)數(shù)值可以求得計(jì)數(shù)的時(shí)間,所以稱為定時(shí)器模式。C/T=1,為計(jì)數(shù)器模式,計(jì)數(shù)器對(duì)外部輸入引腳T0(P3.4)或T1(P3.5)的外部脈沖(負(fù)跳變)計(jì)數(shù),允許的最高計(jì)數(shù)頻率為晶振頻率的1/24。第7頁(yè),共65頁(yè),2023年,2月20日,星期一M1M0:四種工作方式的選擇位表6.1工作方式選擇表M1M0方式說(shuō)明00013位定時(shí)器(TH的8位和TL的低5位)01116位定時(shí)器/計(jì)數(shù)器102自動(dòng)重裝入初值的8位計(jì)數(shù)器113T0分成兩個(gè)獨(dú)立的8位計(jì)數(shù)器,T1在方式3時(shí)停止工作第8頁(yè),共65頁(yè),2023年,2月20日,星期一定時(shí)器初值的確定:加法計(jì)數(shù)器是計(jì)滿溢出時(shí)才申請(qǐng)中斷,所以在給定時(shí)器/計(jì)數(shù)器賦初值時(shí),不能直接輸入所需的計(jì)數(shù)值,而應(yīng)輸入的是計(jì)數(shù)器計(jì)數(shù)的最大值與這一計(jì)數(shù)值的差值,設(shè)最大值為M,計(jì)數(shù)值為N,初值為X,則X的計(jì)算方法如下:計(jì)數(shù)狀態(tài):X=M-N定時(shí)狀態(tài):X=M-定時(shí)時(shí)間/T而T=12÷晶振頻率第9頁(yè),共65頁(yè),2023年,2月20日,星期一二、定時(shí)器/計(jì)數(shù)器控制寄存器TCONTF0、TF1分別是定時(shí)器/計(jì)數(shù)器T0、T1的溢出標(biāo)志位,加法計(jì)數(shù)器計(jì)滿溢出時(shí)置1,申請(qǐng)中斷,在中斷響應(yīng)后自動(dòng)復(fù)0。TF產(chǎn)生的中斷申請(qǐng)是否被接受,還需要由中斷是否開(kāi)放來(lái)決定。TR1、TR0分別是定時(shí)器/計(jì)數(shù)器T1、T0的運(yùn)行控制位,通過(guò)軟件置1后,定時(shí)器/計(jì)數(shù)器才開(kāi)始工作,在系統(tǒng)復(fù)位時(shí)被清0。TF1TR1TF0TR0IE1IT1IE0IT0第10頁(yè),共65頁(yè),2023年,2月20日,星期一6.3工作方式一、方式0圖6.3方式0(13位計(jì)數(shù)器)第11頁(yè),共65頁(yè),2023年,2月20日,星期一在方式0下,T0和T1工作在13位的定時(shí)/計(jì)數(shù)器方式,由TH的高8位和TL的低5位組成。當(dāng)T0的13位計(jì)數(shù)器加到全部為1以后,再加1就產(chǎn)生溢出,這時(shí)置TCON的TF0為1,同時(shí)把計(jì)數(shù)器全部變0,然后從0開(kāi)始繼續(xù)計(jì)數(shù)。

第12頁(yè),共65頁(yè),2023年,2月20日,星期一方式0的計(jì)數(shù)長(zhǎng)度M為2的13次方。初值也是13位二進(jìn)制數(shù),但要注意是高8位賦值給TH0,低5位前面補(bǔ)足3個(gè)0湊成8位賦給TL0。例如,如要求計(jì)數(shù)值為1000,則初值為x=M-1000=8192-1000=1C18H=1110000011000B則賦初值時(shí),TH0=0E0H,TL0=18H。第13頁(yè),共65頁(yè),2023年,2月20日,星期一二、方式1圖6.4方式1(16位計(jì)數(shù)器)第14頁(yè),共65頁(yè),2023年,2月20日,星期一方式1和方式0的工作原理基本相同,唯一不同是T0和T1工作在方式1時(shí)是16位的計(jì)數(shù)/定時(shí)器。方式1時(shí)的計(jì)數(shù)長(zhǎng)度M是2的16次方。16位的初值直接拆成高低字節(jié),分別送入TH和TL即可。第15頁(yè),共65頁(yè),2023年,2月20日,星期一三、方式2圖6.5方式2(初始常數(shù)自動(dòng)重裝載)第16頁(yè),共65頁(yè),2023年,2月20日,星期一工作方式0和工作方式1的最大特點(diǎn)就是計(jì)數(shù)溢出后,計(jì)數(shù)器為全0,因而循環(huán)定時(shí)或循環(huán)計(jì)數(shù)應(yīng)用時(shí)就存在反復(fù)設(shè)置初值的問(wèn)題,這給程序設(shè)計(jì)帶來(lái)許多不便,同時(shí)也會(huì)影響計(jì)時(shí)精度。工作方式2就針對(duì)這個(gè)問(wèn)題而設(shè)置,它具有自動(dòng)重裝載功能,即自動(dòng)加載計(jì)數(shù)初值,所以也稱為自動(dòng)重加載工作方式。第17頁(yè),共65頁(yè),2023年,2月20日,星期一在這種工作方式中,16位計(jì)數(shù)器分為兩部分,即以TL0為計(jì)數(shù)器,以TH0作為預(yù)置寄存器,初始化時(shí)把計(jì)數(shù)初值分別加載至TL0和TH0中,當(dāng)計(jì)數(shù)溢出時(shí),不再象方式0和方式1那樣需要“人工干預(yù)”,由軟件重新賦值,而是由預(yù)置寄存器TH以硬件方法自動(dòng)給計(jì)數(shù)器TL0重新加載。第18頁(yè),共65頁(yè),2023年,2月20日,星期一四、方式3圖6.6方式3(兩個(gè)8位獨(dú)立計(jì)數(shù)器)第19頁(yè),共65頁(yè),2023年,2月20日,星期一在工作方式3模式下,定時(shí)/計(jì)數(shù)器0被拆成兩個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0。其中TL0既可以作計(jì)數(shù)器使用,也可以作為定時(shí)器使用,定時(shí)/計(jì)數(shù)器0的各控制位和引腳信號(hào)全歸它使用。其功能和操作與方式0或方式1完全相同。TH0就沒(méi)有那么多“資源”可利用了,只能作為簡(jiǎn)單的定時(shí)器使用,而且由于定時(shí)/計(jì)數(shù)器0的控制位已被TL0占用,因此只能借用定時(shí)/計(jì)數(shù)器1的控制位TR1和TF1,也就是以計(jì)數(shù)溢出去置位TF1,TR1則負(fù)責(zé)控制TH0定時(shí)的啟動(dòng)和停止。第20頁(yè),共65頁(yè),2023年,2月20日,星期一由于TL0既能作定時(shí)器也能作計(jì)數(shù)器使用,而TH0只能作定時(shí)器使用而不能作計(jì)數(shù)器使用,因此在方式3模式下,定時(shí)/計(jì)數(shù)器0可以構(gòu)成二個(gè)定時(shí)器或者一個(gè)定時(shí)器和一個(gè)計(jì)數(shù)器。

如果定時(shí)/計(jì)數(shù)器0工作于工作方式3,那么定時(shí)/計(jì)數(shù)器1的工作方式就不可避免受到一定的限制,因?yàn)樽约旱囊恍┛刂莆灰驯欢〞r(shí)/計(jì)數(shù)器借用,只能工作在方式0、方式1或方式2下,如果設(shè)置T1工作在方式3,則T1停止工作,相當(dāng)于其他方式時(shí)令TR1=0。第21頁(yè),共65頁(yè),2023年,2月20日,星期一6.4定時(shí)器/計(jì)數(shù)器應(yīng)用舉例一、方式0的應(yīng)用例1利用定時(shí)器輸出周期為2ms的方波,設(shè)單片機(jī)晶振頻率為6MHz。選用定時(shí)器/計(jì)數(shù)器T0作定時(shí)器,輸出為P1.0引腳,2ms的方波可由間隔1ms的高低電平相間而成,因而只要每隔1ms對(duì)P1.0取反一次即可得到這個(gè)方波。定時(shí)1ms的初值:因?yàn)闄C(jī)器周期=12÷6MHz=2μs所以1ms內(nèi)T0需要計(jì)數(shù)N次: N=1ms÷2μs=500第22頁(yè),共65頁(yè),2023年,2月20日,星期一由此可知:使用方式0的13位計(jì)數(shù)器即可,T0的初值X為X=M-N=8192-500=7692=1E0CH但是,因?yàn)?3位計(jì)數(shù)器中,低8位TL0只使用了5位,其余碼均計(jì)入高8位TH0的初值,則T0的初值調(diào)整為 TH0=0F0H,TL0=0CH TMOD初始化:TMOD=00000000B=00H (GATE=0,C/T=0,M1=0,M0=0) TCON初始化:啟動(dòng)TR0=1IE初始化:開(kāi)放中斷EA=1,定時(shí)器T0中斷允許ET0=1第23頁(yè),共65頁(yè),2023年,2月20日,星期一程序清單如下:ORG0000HAJMPSTART;復(fù)位入口ORG000BHAJMPTOINT;T0中斷入口ORG0030HSTART:MOVSP,#60H;初始化程序MOVTH0,#0F0H;T0賦初值MOVTL0,#0CHMOVTMOD,#00HSETBTR0;啟動(dòng)T0第24頁(yè),共65頁(yè),2023年,2月20日,星期一SETBET0;開(kāi)T0中斷SETBEA;開(kāi)總允許中斷MAIN:AJMPMAIN;主程序T0INT:CPLP1.0MOVTL0,#0CHMOVTH0,#0F0HRETI第25頁(yè),共65頁(yè),2023年,2月20日,星期一二、方式1應(yīng)用方式1與方式0基本相同,只是方式1改用了16位計(jì)數(shù)器。要求定時(shí)周期較長(zhǎng)時(shí),13位計(jì)數(shù)器不夠用,可改用16位計(jì)數(shù)器。例2已知某生產(chǎn)線的傳送帶上不斷地有產(chǎn)品單向傳送,產(chǎn)品之間有較大間隔。使用光電開(kāi)關(guān)統(tǒng)計(jì)一定時(shí)間內(nèi)的產(chǎn)品個(gè)數(shù)。假定紅燈亮?xí)r停止統(tǒng)計(jì),紅燈滅時(shí)才在上次統(tǒng)計(jì)結(jié)果的基礎(chǔ)上繼續(xù)統(tǒng)計(jì),試用單片機(jī)定時(shí)器/計(jì)數(shù)器T1的方式1完成該項(xiàng)產(chǎn)品的計(jì)數(shù)任務(wù)。第26頁(yè),共65頁(yè),2023年,2月20日,星期一圖6.7硬件原理圖第27頁(yè),共65頁(yè),2023年,2月20日,星期一(1)初始化:TMOD=11010000B=0D0H(GATE=1,C/T=1,M0M1=01)TCON=00H(2)T1在方式1時(shí),溢出產(chǎn)生中斷,且計(jì)數(shù)器回零,故在中斷服務(wù)程序中,需用R0計(jì)數(shù)中斷次數(shù),以保護(hù)累積計(jì)數(shù)結(jié)果。第28頁(yè),共65頁(yè),2023年,2月20日,星期一(3)啟動(dòng)T1計(jì)數(shù),開(kāi)T1中斷。程序清單如下:ORG0000HAJMPSTART;復(fù)位入口ORG001BHAJMPT1INT;T1中斷入口ORG0100HSTART:MOVSP,#60H;初始化程序MOVTCON,#00HMOVTMOD,#0D0HMOVTH1,#00H第29頁(yè),共65頁(yè),2023年,2月20日,星期一MOVTL1,#00HMOVR0,#00H;清中斷次數(shù)計(jì)數(shù)單元MOVP3,#28H;設(shè)置P3.5第二功能SETBTR1;啟動(dòng)T1SETBET1;開(kāi)T1中斷SETBEA;開(kāi)總中斷MAIN:ACALLDISP;主程序,調(diào)顯示子程序

…ORG0A00HT1INT:INCR0;中斷服務(wù)子程序RETIDISP:… ;顯示子程序RET第30頁(yè),共65頁(yè),2023年,2月20日,星期一三、方式2應(yīng)用

方式2是定時(shí)器自動(dòng)重裝載的操作方式,在這種方式下,定時(shí)器0和1的工作是相同的,它的工作過(guò)程與方式0、方式1基本相同,只不過(guò)在溢出的同時(shí),將8位二進(jìn)制初值自動(dòng)重裝載,即在中斷服務(wù)子程序中,不需要編程送初值,這里不再舉例。定時(shí)器T1工作在方式2時(shí),可直接用作串行口波特率發(fā)生器,第31頁(yè),共65頁(yè),2023年,2月20日,星期一四、方式3的應(yīng)用定時(shí)器T0工作在方式3時(shí)是2個(gè)8位定時(shí)器/計(jì)數(shù)器。且TH0借用了定時(shí)器T1的溢出中斷標(biāo)志TF1和運(yùn)行控制位TR1。例3假設(shè)有一個(gè)用戶系統(tǒng)中已使用了兩個(gè)外部中斷源,并置定時(shí)器T1于方式2,作串行口波特率發(fā)生器用,現(xiàn)要求再增加一個(gè)外部中斷源,并由P1.0口輸出一個(gè)5KHz的方波(假設(shè)晶振頻率為6MHz)。第32頁(yè),共65頁(yè),2023年,2月20日,星期一在不增加其它硬件開(kāi)銷時(shí),可把定時(shí)器/計(jì)數(shù)器T0置于工作方式3,利用外部引腳T0端作附加的外部中斷輸入端,把TL0預(yù)置為0FFH,這樣在T0端出現(xiàn)由1至0的負(fù)跳變時(shí),TL0立即溢出,申請(qǐng)中斷,相當(dāng)于邊沿激活的外部中斷源。在方式3下,TH0總是作8位定時(shí)器用,可以靠它來(lái)控制由P1.0輸出的5kHz方波。由P1.0輸出5kHz的方波,即每隔100μs使P1.0的電平發(fā)生一次變化。則TH0中的初始值X=M-N=256-100/2=206。下面是有關(guān)的程序。第33頁(yè),共65頁(yè),2023年,2月20日,星期一MOVTL0,#0FFHMOVTH0,#206MOVTL1,#BAUD;BAUD根據(jù)波特率要求設(shè)置常數(shù)MOVTH1,#BAUDMOVMOD,#27H;置T0工作方式3 ;TL0工作于計(jì)數(shù)器方式MOVTCON,#55H;啟動(dòng)定時(shí)器T0、T1,置外部中斷0和1 ;為邊沿激活方式MOVIE,#9FH;開(kāi)放全部中斷第34頁(yè),共65頁(yè),2023年,2月20日,星期一TL0溢出中斷服務(wù)程序(由000BH單元轉(zhuǎn)來(lái)):TL0INT:MOVTL0,#0FFH

…;外部引腳T0引起中斷處理程序RETITH0溢出中斷服務(wù)程序(由001BH轉(zhuǎn)來(lái)):TH0INT:MOVTH0,#206CPLP1.0RETI此處串行口中斷服務(wù)程序、外中斷0和外中斷1的中斷服務(wù)程序沒(méi)有列出。第35頁(yè),共65頁(yè),2023年,2月20日,星期一6.5MCS-51單片機(jī)的串行接口6.5.1串行通信的基本概念并行和串行并行通信的優(yōu)點(diǎn)是速度快,效率高,確點(diǎn)是不適合遠(yuǎn)距離通信。串行通信剛好相反。單工、半雙工和全雙工單工:信息只能沿著一個(gè)方向傳播半雙工:信息可以沿一條線雙向傳播,但不能同時(shí)實(shí)現(xiàn)雙向傳播。全雙工:使用兩條獨(dú)立的數(shù)據(jù)通道,收發(fā)可同時(shí)進(jìn)行。第36頁(yè),共65頁(yè),2023年,2月20日,星期一同步方式和異步方式(1)同步方式是將一大批數(shù)據(jù)分成幾個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊之間用同步字符予以隔開(kāi),而傳輸?shù)母魑欢M(jìn)制碼之間都沒(méi)有間隔。其基本特征是發(fā)送與接收時(shí)鐘始終保持嚴(yán)格同步。(2)異步通信是按幀傳送數(shù)據(jù),它利用每一幀的起、止信號(hào)來(lái)建立發(fā)送與接收之間的同步,每幀內(nèi)部各位均采用固定的時(shí)間間隔,但幀與幀之間的時(shí)間間隔是隨機(jī)的。其基本特征是每個(gè)字符必須用起始位和停止位作為字符開(kāi)始和結(jié)束的標(biāo)志,它是以字符為單位一個(gè)個(gè)地發(fā)送和接收的。第37頁(yè),共65頁(yè),2023年,2月20日,星期一6.5.2與串行口有關(guān)的特殊功能寄存器1.數(shù)據(jù)緩沖器SBUF串行口緩沖器SBUF是可直接尋址的特殊功能寄存器,其內(nèi)部RAM字節(jié)地址是99H。在物理上,它對(duì)應(yīng)著兩個(gè)獨(dú)立的寄存器,一個(gè)發(fā)送寄存器,一個(gè)接收寄存器。發(fā)送時(shí),就是CPU寫(xiě)SBUF的時(shí)候(51系列單片機(jī)沒(méi)有專門(mén)的啟動(dòng)發(fā)送狀態(tài)的指令);接收時(shí),就是讀取SBUF的過(guò)程,接收寄存器是雙緩沖的,以避免在接收下一幀數(shù)據(jù)之前,CPU未能及時(shí)響應(yīng)接收器的中斷,沒(méi)有把上一幀數(shù)據(jù)讀走,而產(chǎn)生兩幀數(shù)據(jù)重疊的問(wèn)題。第38頁(yè),共65頁(yè),2023年,2月20日,星期一2.串行口控制寄存器SCONSCON用于控制和監(jiān)視串行口的工作狀態(tài),其各位定義如圖5.3所示。相應(yīng)的各位功能介紹如下:SM0、SM1:用于定義串行口的操作模式,兩個(gè)選擇位對(duì)應(yīng)4種模式,見(jiàn)表6.2。其中fOSC是振蕩器頻率,UART為通用異步接收和發(fā)送器的英文縮寫(xiě)。SM2:多機(jī)通信時(shí)的接收允許標(biāo)志位。在模式2和3中,若SM2=1,且接收到的第9位數(shù)據(jù)(RB8)是0,則接收中斷標(biāo)志(RI)不會(huì)被激活。在模式1中,若SM2=1且沒(méi)有接收到有效的停止位,則RI不會(huì)被激活。在模式0中,SM2必須是0。第39頁(yè),共65頁(yè),2023年,2月20日,星期一表6.2串行口操作模式選擇SM0SM1模式功能波特率000110110101同步移位寄存器8位UART9位UART9位UARTfOSC/12可變(T1溢出率)fOSC/64或fOSC/32可變(T1溢出率)第40頁(yè),共65頁(yè),2023年,2月20日,星期一

3.電源控制寄存器PCON特殊功能寄存器PCON中,只有一位(最高位)SMOD與串行口的工作有關(guān),該位是串行口波特率系數(shù)的控制位:SMOD=1時(shí),波特率加倍,否則不加倍。PCON的地址為87H,不可位尋址,因此初始化時(shí)需要字節(jié)傳送。第41頁(yè),共65頁(yè),2023年,2月20日,星期一6.5.3串行口的4種工作模式模式0同步移位寄存器輸入輸出模式,可外接移位寄存器,以擴(kuò)展I/O口。(1)模式0輸出狀態(tài)。圖6.8外接移位寄存器輸出第42頁(yè),共65頁(yè),2023年,2月20日,星期一(2)模式0輸入狀態(tài)。當(dāng)滿足RI=0且REN=0時(shí),就啟動(dòng)一次接收過(guò)程。圖6.9外接移位寄存器輸入第43頁(yè),共65頁(yè),2023年,2月20日,星期一

2.模式1串行口工作于模式1時(shí),為波特率可變的8位異步通信接口。數(shù)據(jù)位由P3.0(RXD)端接收,由P3.1(TXD)端發(fā)送。傳送一幀信息為10位:一位起始位(0),8位數(shù)據(jù)位(低位在前)和一位停止位(1)。波特率是可變的,它取決于定時(shí)器T1的溢出速率及SMOD的狀態(tài)。(1)模式1發(fā)送過(guò)程。用軟件清除TI后,CPU執(zhí)行任何一條以SBUF為目標(biāo)寄存器的指令,就啟動(dòng)發(fā)送過(guò)程。數(shù)據(jù)由TXD引腳輸出,此時(shí)的發(fā)送移位脈沖是由定時(shí)器/計(jì)數(shù)器T1送來(lái)的溢出信號(hào)經(jīng)過(guò)16或32分頻而取得的。一幀信號(hào)發(fā)送完時(shí),將置位發(fā)送中斷標(biāo)志TI=1,向CPU申請(qǐng)中斷,完成一次發(fā)送過(guò)程。第44頁(yè),共65頁(yè),2023年,2月20日,星期一(2)模式1接收過(guò)程。用軟件清除RI后,當(dāng)允許接收位REN被置位1時(shí),接收器以選定波特率的16倍的速率采樣RXD引腳上的電平,即在一個(gè)數(shù)據(jù)位期間有16個(gè)檢測(cè)脈沖,并在第7、8、9個(gè)脈沖期間采樣接收信號(hào),然后用三中取二的原則確定檢測(cè)值,以抑制干擾。并且采樣是在每個(gè)數(shù)據(jù)位的中間,避免了信號(hào)邊沿的波形失真造成的采樣錯(cuò)誤。當(dāng)檢測(cè)到有從“1”到“0”的負(fù)跳變時(shí),則啟動(dòng)接收過(guò)程,在接收移位脈沖的控制下,接收完一幀信息。當(dāng)最后一次移位脈沖產(chǎn)生時(shí)能滿足下列兩個(gè)條件:①RI=0;②接收到的停止位為1或SM2=0。第45頁(yè),共65頁(yè),2023年,2月20日,星期一則停止位送入RB8,8位數(shù)據(jù)進(jìn)入SBUF,并置RI=1,完成一次接收過(guò)程。否則,所接收到的一楨信息將丟失,接收器復(fù)位,并從新開(kāi)始檢測(cè)負(fù)跳變,以便接收下一楨信息。注意:接收中斷標(biāo)志RI應(yīng)由軟件清除。第46頁(yè),共65頁(yè),2023年,2月20日,星期一3.模式2和模式3。串行口工作于模式2和模式3時(shí),被定義為9位異步通信接口。它們的每幀數(shù)據(jù)結(jié)構(gòu)是11位的:最低位是起始位(0),其后是8位數(shù)據(jù)位(低位在先),第10位是用戶定義位(SCON中的TB8或RB8),最后一位是停止位(1)。模式2和模式3工作原理相似,唯一的差別是模式2的波特率是固定的,即為fOSC/32或fOSC/64;而模式3的波特率是可變的,與定時(shí)器T1的溢出率有關(guān)。第47頁(yè),共65頁(yè),2023年,2月20日,星期一(1)模式2和模式3的發(fā)送過(guò)程。發(fā)送過(guò)程是由執(zhí)行任何一條SBUF為目的寄存器的指令來(lái)啟動(dòng)的。由“寫(xiě)入SBUF”信號(hào)把8位數(shù)據(jù)裝入SBUF,同時(shí)還把TB8裝入發(fā)送移位寄存器的第9位,并通知發(fā)送控制器要求進(jìn)行一次發(fā)送。發(fā)送開(kāi)始,把一個(gè)起始位(0)送到TXD端。移位后,數(shù)據(jù)由移位寄存器送到TXD端。再過(guò)一位,出現(xiàn)第一個(gè)移位脈沖。第一次移位時(shí),把一個(gè)停止位“1”由控制器的停止位發(fā)生端送入移位寄存器的第9位。此后,每次移位時(shí),把0送入第9位。因此,當(dāng)TB8的內(nèi)容送到移位寄存器的輸出位置時(shí),其左面一位是停止位“1”,而再往左的所有位全為“0”。這種狀態(tài)由零檢測(cè)器檢測(cè)到后,就通知發(fā)送控制器作最后一次移位,然后置TI=1,請(qǐng)求申請(qǐng)中斷。第9位數(shù)據(jù)(TB8)由軟件置位或清零,可以作為數(shù)據(jù)的奇偶校驗(yàn)位,也可以作為多機(jī)通信中的地址、數(shù)據(jù)標(biāo)志位。如把TB8作為奇偶校驗(yàn)位,可以在發(fā)送程序中,在數(shù)據(jù)寫(xiě)入SBUF之前,先將數(shù)據(jù)位寫(xiě)入TB8。

第48頁(yè),共65頁(yè),2023年,2月20日,星期一(2)模式2和模式3接收過(guò)程。與模式1類似,模式2和模式3接收過(guò)程始于在RXD端檢測(cè)到負(fù)跳變時(shí),為此,CPU以波特率16倍的采樣速率對(duì)RXD端不斷采樣。一檢測(cè)到負(fù)跳變,16分頻計(jì)數(shù)器就立刻復(fù)位,同時(shí)把1FFH寫(xiě)入輸入移位寄存器。計(jì)數(shù)器的16個(gè)狀態(tài)把一位時(shí)間等分成16份,在每一位的第7、8、9個(gè)狀態(tài)時(shí),位檢測(cè)器對(duì)RXD端的值采樣。如果所接收到的起始位無(wú)效(為1),則復(fù)位接收電路,等待另一個(gè)負(fù)跳變的到來(lái)。若起始位有效(為0)則起始位移入移位寄存器,并開(kāi)始接收這一幀的其余位。當(dāng)起始位0移到最左面時(shí),通知接收控制器進(jìn)行最后一次移位。把8位數(shù)據(jù)裝入接收緩沖器SBUF,第9位數(shù)據(jù)裝入SCON中的RB8,并置中斷標(biāo)志RI=1。第49頁(yè),共65頁(yè),2023年,2月20日,星期一裝入SBUF和RB8以及置位RI的信號(hào)只有在產(chǎn)生最后一個(gè)移位脈沖且同滿足下列兩個(gè)條件,才會(huì)產(chǎn)生:①RI=0;②SM2=0或接收到的第9位數(shù)據(jù)為“1”。上述兩個(gè)條件中任一個(gè)不滿足,所接收的數(shù)據(jù)幀就會(huì)丟失,不再恢復(fù)。兩者都滿足時(shí),第9位數(shù)據(jù)裝入TB8,前8位數(shù)據(jù)裝入SBUF。請(qǐng)注意:與模式1不同,模式2和3中裝入RB8的是第9位數(shù)據(jù),而不是停止位。所接收的停止位的值與SBUF、RB8和RI都沒(méi)有關(guān)系,利用這一特點(diǎn)可用于多機(jī)通信中。第50頁(yè),共65頁(yè),2023年,2月20日,星期一6.5.4多機(jī)通信圖6.10多處理機(jī)通信系統(tǒng)第51頁(yè),共65頁(yè),2023年,2月20日,星期一6.5.5波特率串行口每秒鐘發(fā)送或接收的數(shù)據(jù)位數(shù)稱為波特率。假設(shè)發(fā)送一位數(shù)據(jù)所需時(shí)間為T(mén),則波特率為1/T。(1)模式0的波特率等于單片機(jī)晶振頻率的1/12,即每個(gè)機(jī)器周期接收或發(fā)送一位數(shù)據(jù)。(2)模式2的波特率與電源控制器PCON的最高位SMOD的寫(xiě)入值有關(guān):即SMOD=0,波特率為(1/64)fOSC;SMOD=1,波特率為(1/32)fOSC。第52頁(yè),共65頁(yè),2023年,2月20日,星期一(3)模式1和模式3的波特率除了與SMOD位有關(guān)之外,還與定時(shí)器T1的溢出率有關(guān)。定時(shí)器T1作為波特率發(fā)生器,常選用定時(shí)方式2(8位重裝載初值方式),并且禁止T1中斷。此時(shí)TH1從初值計(jì)數(shù)到產(chǎn)生溢出,它每秒鐘溢出的次數(shù)稱為溢出率。于是第53頁(yè),共65頁(yè),2023年,2月20日,星期一表6.3定時(shí)器T1產(chǎn)生的常用波特率第54頁(yè),共65頁(yè),2023年,2月20日,星期一假設(shè)某MCS-51單片機(jī)系統(tǒng),串行口工作于模式3,要求傳送波特率為1200Hz,作為波特率發(fā)生器的定時(shí)器T1工作在方式2時(shí),請(qǐng)求出計(jì)數(shù)初值為多少?設(shè)單片機(jī)的振蕩頻率為6MHz。因?yàn)榇锌诠ぷ饔谀J?時(shí)的波特率為所以第55頁(yè),共65頁(yè),2023年,2月20日,星期一當(dāng)SMOD=0時(shí),初值TH1=256-6×106/(1200×12×32/1) =243=0F3H當(dāng)SMOD=1時(shí),初值TH1=256-6×106/(1200×12×32/2) =230=0E6H第56頁(yè),共65頁(yè),2023年,2月20日,星期一6.6串行口的應(yīng)用一、串行口的編程串行口需初始化后,才能完成數(shù)據(jù)的輸入、輸出。其初始化過(guò)程如下:(1)按選定串行口的操作模式設(shè)定SCON的SM0、SM1兩位二進(jìn)制編碼。(2)對(duì)于操作模式2或3,應(yīng)根據(jù)需要在TB8中寫(xiě)入待發(fā)送的第9位數(shù)據(jù)。(3)若選定的操作模式不是模式0,還需設(shè)定接收/發(fā)送的波特率。設(shè)定SMOD的狀態(tài),以控制波特率是否加倍。若選定操作模式1或3,則應(yīng)對(duì)定時(shí)器T1進(jìn)行初始化以設(shè)定其溢出率。第57頁(yè),共65頁(yè),2023年,2月20日,星期一二、串行口的應(yīng)用例1用8051串行口外接74LS165移位寄存器擴(kuò)展8位輸入口,輸入數(shù)據(jù)由8個(gè)開(kāi)關(guān)提供,另有一個(gè)開(kāi)關(guān)K提供聯(lián)絡(luò)信號(hào)。電路示意如圖6.11所示。當(dāng)開(kāi)關(guān)K合上時(shí),表示要求輸入數(shù)據(jù)。輸入8位開(kāi)關(guān)量,處理不同的程序。圖6.11第58頁(yè),共65頁(yè),2023年,2月20日,星期一程序如下:START:JBP1.0,$;開(kāi)關(guān)K未合上,等待SETBP1.1;165并行輸入數(shù)據(jù)CLRP1.1;開(kāi)始串行移位MOVSCON,#10H;串行口模式0并啟動(dòng)接收J(rèn)NBRI,$;查詢RICLRRI;查詢結(jié)束,清RIMOVA,SBUF;輸入數(shù)據(jù);根據(jù)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論