版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第6章 主要功能單元,6.2 MCS-51定時(shí)/計(jì)數(shù)器,6.3 MCS-51串行口,6.1 MCS-51單片機(jī)中斷系統(tǒng),6.1.1 中斷請(qǐng)求源,5個(gè)中斷源 2個(gè)優(yōu)先級(jí),2個(gè)外部中斷,3個(gè)內(nèi)部中斷,T0,T1,UART,與中斷有關(guān)的特殊功能寄存器:,IP: 中斷優(yōu)先控制寄存器,IE: 中斷允許控制寄存器,TCON: 定時(shí)/計(jì)數(shù)控制寄存器,SCON: UART控制寄存器,中斷請(qǐng)求 標(biāo)志寄存器,可編程,可控,MCS 51 中斷要點(diǎn),6.1 MCS-51單片機(jī)中斷系統(tǒng),1、定時(shí)/計(jì)數(shù)器控制寄存器TCON,TCON (88H),觸發(fā)方式控制位,0 低電平觸發(fā),1 邊沿觸發(fā),外部中斷請(qǐng)求標(biāo)志,1 有有效觸
2、發(fā)時(shí),0 當(dāng)CPU響應(yīng)中斷時(shí),T1 T0,溢出標(biāo)志,1 計(jì)數(shù)器“+1”有溢出時(shí),并向CPU請(qǐng)求中斷,0 當(dāng)CPU響應(yīng)中斷時(shí),也可由指令清除,TR1 TR0,由硬件 自動(dòng),由硬件 自動(dòng),TR1 TR0,由硬件 自動(dòng),由硬件 自動(dòng),在每個(gè)機(jī)器周期 S5P2 都采樣引腳 P3.3、P3.2,引腳,0,0,記錄有無(wú)中斷,記錄有無(wú)中斷,6.1.1 中斷請(qǐng)求源,2、串行口控制寄存器 SCON,TI:串行口發(fā)送(完)中斷標(biāo)志,在方式0,串行發(fā)送到第8位結(jié)束時(shí),由硬件置“1”;或在其他方式中,串行發(fā)送到停止位的開(kāi)始時(shí),由硬件置“1”。,RI:串行口接收(好)中斷標(biāo)志,在方式0,串行接收到第8位結(jié)束時(shí),由硬件置
3、“1”;或在其他方式中,串行接收到停止位的開(kāi)始時(shí),由硬件置“1”。,“1” 發(fā)送完一幀數(shù)據(jù)后,“1” 接收完一幀數(shù)據(jù)后,必須由軟件清 “0”,SCON (98H),6.1.1 中斷請(qǐng)求源,必須由軟件清 “0”,串行通信的數(shù)據(jù)格式:,一幀數(shù)據(jù):,一個(gè)字符在異步傳送中稱為一幀數(shù)據(jù)。,一幀數(shù)據(jù)由4部分組成: 起始位、數(shù)據(jù)位、奇偶位、停止位,一幀數(shù)據(jù),起始位,數(shù)據(jù)位,奇偶位,停止位,起始位,第n個(gè)字符,第n+1個(gè)字符,通信協(xié)議,6.1.1 中斷請(qǐng)求源,6.1.2 中斷控制,1、中斷允許寄存器 IE,0 禁止,1 允許,0 禁止,1 允許,總 中斷,中斷,IE (A8),中斷的開(kāi)放和禁止是可控,可編程的
4、。,ET2,CPU,IE 的相應(yīng)位被清 “0”或置“1”, 該相應(yīng)中斷即被“禁止”或“開(kāi)放”。,2、中斷優(yōu)先級(jí)寄存器 IP,IP (B8),ET2,0 低級(jí),1 高級(jí),中斷,中斷優(yōu)先級(jí)可控、可編程,3、優(yōu)先級(jí)結(jié)構(gòu),中斷優(yōu)先級(jí)控制遵循的兩個(gè)基本原則:, 一個(gè)正在執(zhí)行的低級(jí)中斷服務(wù)程序,能被高優(yōu)先級(jí) 中斷請(qǐng)求所中斷,但不能被同優(yōu)先級(jí)中斷請(qǐng)求所中斷。, 一個(gè)正在執(zhí)行的高級(jí)中斷服務(wù)程序,不能被任何中斷 請(qǐng)求所中斷,直到返回。,6.1.2 中斷控制,實(shí)現(xiàn)這兩個(gè)原則的方法:,中斷系統(tǒng)內(nèi)部設(shè)置了兩個(gè)不可尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器。一個(gè)指出正在處理的是:高優(yōu)先級(jí)中斷,并阻止所有其他中斷;另一個(gè)指出正在處理的是:低
5、優(yōu)先級(jí)中斷,并阻止除高優(yōu)先級(jí)中斷外的其他任何中斷。,是不可尋址的,當(dāng)CPU響應(yīng) 高級(jí)中斷, 并進(jìn)入中斷 服務(wù)時(shí),“1”,“1”,RETI,“0”,當(dāng)CPU響應(yīng) 低級(jí)中斷, 并進(jìn)入中斷 服務(wù)時(shí),“1”,RETI,“0”,無(wú)條件的,6.1.2 中斷控制,在同級(jí)的幾個(gè)中斷源中同時(shí)發(fā)生請(qǐng)求時(shí),內(nèi)部對(duì)同級(jí)的各中斷源的優(yōu)先級(jí)別有一個(gè)規(guī)定的查詢順序:,外部中斷請(qǐng)求 INT0,定時(shí)/計(jì)數(shù)器 T0,定時(shí)/計(jì)數(shù)器 T1,串行口 UART,定時(shí)/計(jì)數(shù)器 T2,外部中斷請(qǐng)求 INT1,最高,最低,自然優(yōu)先級(jí),自然優(yōu)先級(jí)由硬件查詢邏輯完成。,6.1.2 中斷控制,源允許,中斷系統(tǒng)總體邏輯結(jié)構(gòu),總允許,優(yōu)先級(jí),中斷標(biāo)志,
6、中斷 標(biāo)志,1,IE0,矢量 地址送PC,“+1”,TF1,0,矢量 地址送PC,EA,“+1”,“+1”,EX0,ET1,1,PX0 PT0 PX1 PT1 P S,“+1”,“+1”,6.1.2 中斷控制,6.1.3 中斷響應(yīng)過(guò)程,中斷響應(yīng)的三個(gè)條件:, CPU不是正在處理同級(jí)或高級(jí)中斷請(qǐng)求。, 現(xiàn)行機(jī)器周期是所執(zhí)行指令的最后一個(gè)機(jī)器周期。, 正在執(zhí)行的指令不是RETI(或RET),或不是在訪問(wèn)IE或IP。,中斷入口地址:,0003H,000BH,0013H,001BH,0023H,002BH,中斷源,排除法,6.1.4 外部中斷響應(yīng)時(shí)序與觸發(fā)方式,1、外部中斷響應(yīng)時(shí)序,M1,M3,M4,
7、M5,M2,S5P1,S5P2,CPU進(jìn)行 中斷查詢,保護(hù)斷點(diǎn), 長(zhǎng)調(diào)用至入口,中斷服務(wù),1)中斷響應(yīng)順利,不受阻,需要3個(gè)機(jī)器周期。,2)如果中斷受阻,則需要38個(gè)機(jī)器周期。,即滿足上述三個(gè)條件, 正在處理同級(jí)或高級(jí)中斷,這要視中斷服務(wù)程序的長(zhǎng)短。, 執(zhí)行的指令不是最后一個(gè)機(jī)器周期,則等待不超過(guò)3個(gè)周期。, 正在執(zhí)行指令是RETI(RET)(雙周期指令),或正訪問(wèn)IE、IP,則需返回主程序后,再執(zhí)行一條主程序的指令才能響應(yīng)該中斷,等待不超過(guò)5個(gè)周期。,2、外部中斷觸發(fā)方式, 電平觸發(fā)方式, 邊沿觸發(fā)方式,若外部中斷(當(dāng)ITX = 0時(shí))被定義為電平觸發(fā)方式。其有效觸發(fā)為低電平,該低電平維持到
8、CPU響應(yīng)該中斷為止,中斷返回之前,必須變?yōu)楦唠娖?。否則CPU將再次響應(yīng)該中斷。,若外部中斷(當(dāng)ITX = 1時(shí))被定義為邊沿觸發(fā)方式。其有效觸發(fā)為下降沿。在該觸發(fā)方式中,CPU在一個(gè)機(jī)器周期采樣為高電平,在下一機(jī)器周期采樣為低電平,就立即置位外部中斷請(qǐng)求標(biāo)志。,無(wú)論是那種觸發(fā)發(fā)方式,只要有有效觸發(fā),都會(huì)記錄在相應(yīng)的中斷標(biāo)志位中, 若CPU即使暫不響應(yīng),中斷標(biāo)志也不會(huì)丟失,直到CPU響應(yīng)該中斷,該標(biāo)志才會(huì)清除。,6.1.4 外部中斷響應(yīng)時(shí)序與觸發(fā)方式,6.1.5 多個(gè)外部中斷源的設(shè)計(jì),1、利用定時(shí)/計(jì)數(shù)器作外部中斷輸入使用的方法,T0作為外部中斷源的初始化程序:,;T0計(jì)數(shù)方式,自動(dòng)裝載,;置
9、計(jì)數(shù)初值,;T0開(kāi)中斷,;CPU開(kāi)中斷,;啟動(dòng)T0工作,計(jì)數(shù)器,“+1”,計(jì)數(shù)器,向CPU發(fā)中斷請(qǐng)求,向CPU發(fā)中斷請(qǐng)求,方式2(8位),FFH,FFH,TF0,00H,FFH,FFH,P3.4,2、中斷與查詢相結(jié)合的方法,DVT0,10K,+5V,擴(kuò)展多個(gè)外部中斷,最高級(jí),最低級(jí),“線或”,6.1.5 多個(gè)外部中斷源的設(shè)計(jì),外部中斷INT1的中斷服務(wù)程序:,6.1.5 多個(gè)外部中斷源的設(shè)計(jì),PDVT1: ,AJMP PINTR,PDVT2: ,AJMP PINTR,PDVT3: ,AJMP PINTR,PDVT4: ,AJMP PINTR,;DVT1中斷服務(wù),;DVT2中斷服務(wù),;DVT3中
10、斷服務(wù),;DVT4中斷服務(wù),中斷處理,6.1.5 多外部中斷源的設(shè)計(jì),6.1.6 用軟件模擬第三個(gè)中斷優(yōu)先級(jí),在中斷優(yōu)先級(jí)寄存器IP中定義兩個(gè)中斷優(yōu)先級(jí):高優(yōu)先級(jí)、低優(yōu)先級(jí)。,低優(yōu)先級(jí)的中斷服務(wù)程序如下:,*PCL,*PCH,IE,;保護(hù)IE,;置屏蔽字,屏蔽當(dāng)前中斷,;調(diào)用子程序,;執(zhí)行中斷服務(wù),;恢復(fù)IE,;子程序返回,真正的中斷返回,;中斷返回,CPU被欺騙 誤認(rèn)為返回主程序,“1”,LABEL,LABEL:,CPU認(rèn)為已經(jīng)返回主程序,“0”,堆棧,又可被低級(jí)中斷請(qǐng)求中斷,6.2 MCS-51定時(shí)/計(jì)數(shù)器,51系列內(nèi)部有2個(gè)16位的定時(shí)/計(jì)數(shù)器T0、T1。,52系列內(nèi)部有3個(gè)16位的定時(shí)
11、/計(jì)數(shù)器T0、T1、T2。,定時(shí)/計(jì)數(shù)器的可編程特性:, 可確定其工作方式是定時(shí)還是計(jì)數(shù)。, 預(yù)置定時(shí)或計(jì)數(shù)初值。, 當(dāng)定時(shí)時(shí)間到(或計(jì)數(shù)終止時(shí)),要不要發(fā)中斷請(qǐng)求。, 如何啟動(dòng)定時(shí)(或計(jì)數(shù))器工作 。,可編程,“+1”,“+1”,6.2.1 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與工作原理,結(jié)構(gòu),2個(gè)16位T/C分別由8位計(jì)數(shù)器TH0、TL0、 TH1、TL1組成。,“+1” 計(jì)數(shù)器,控制寄存器TCON:控制T/C的啟停、中斷等。,方式寄存器TMOD:控制T/C的工作方式。,2、工作原理, 定時(shí)器,定時(shí)輸入信號(hào):機(jī)器內(nèi)部振蕩信號(hào)的1/12分頻。,即每一個(gè)機(jī)器周期做一次“+1”運(yùn)算。,6.2.1 定時(shí)/計(jì)數(shù)器的結(jié)
12、構(gòu)與工作原理,1個(gè)機(jī)器周期 = 12個(gè)振蕩脈沖,計(jì)數(shù)速率為振蕩頻率的1/12分頻,若單片機(jī)的晶振主頻為12MHz,則計(jì)數(shù)周期為1s。, 計(jì)數(shù)器,由外部引腳(T0為P3.4 ,T1為P3.5)輸入計(jì)數(shù)脈沖。,外部輸入脈沖寬度應(yīng)大于2個(gè)機(jī)器周期。(S5P2、S5P2、S3P1),TCY,TCY,外部輸入脈沖發(fā)生負(fù) 跳變時(shí),進(jìn)行“+1”計(jì)數(shù)。,下降沿,高電平,低電平,TCY:機(jī)器周期,6.2.1 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與工作原理,OSC,S1,S2,S3,S4,S5,S6,機(jī)器周期,機(jī)器周期,XTAL2,6.2.1 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與工作原理,采樣,1、方式寄存器TMOD,GATE,C/T,M1,M0
13、,GATE,C/T,M1,M0,LSB,MSB,控制T1,控制T0,門控位,功能選擇位,工作方式選擇,6.2.2 定時(shí)/計(jì)數(shù)器的方式寄存器和控制寄存器,GATE: 門控位。設(shè)定T1、T0運(yùn)行時(shí),是否受,GATE,C/T,M1,M0,GATE,C/T,M1,M0,INT1(P3.3) INT0(P3.2)引腳輸入電平的控制。,GATE=,0 不受外部中斷控制,0 0 方式0 13位計(jì)數(shù)器,0 1 方式1 16位計(jì)數(shù)器,1 0 方式2 可自動(dòng)重新裝載初值的8位計(jì)數(shù)器,1 1 方式3 T0分為2個(gè)8位計(jì)數(shù)器,T1停止計(jì)數(shù),表5-1 操作方式選擇,1 受外部中斷控制,0為定時(shí)功能 1為計(jì)數(shù)功能,6.2
14、.2 定時(shí)/計(jì)數(shù)器的方式寄存器和控制寄存器,2、控制寄存器TCON,T1、T0 啟/??刂莆?T1、T0 溢出標(biāo)志位,與外部中斷INT1、INT0有關(guān),“0” 停止,“1” 啟動(dòng),“1” 有溢出,“0” 無(wú)溢出,可編程 可控制,“+1”,亦可由指令清“0”,工作,記錄有無(wú)溢出,6.2.2 定時(shí)/計(jì)數(shù)器的方式寄存器和控制寄存器,1、方式0 (M1M0=00),13位的定時(shí)/計(jì)數(shù)器,由TH的8位和TL的低5位組成。,定時(shí)/計(jì)數(shù)器方式0邏輯圖,1,1,1,“+1”,中斷,TL40,以T1為例:,TF1,“+1”,“+1”,6.2.3 定時(shí)/計(jì)數(shù)器的4種工作方式,2、方式1(M1M0=01),16位的
15、定時(shí)計(jì)數(shù)器,由TH的8位和TL的8位組成。,定時(shí)/計(jì)數(shù)器方式1邏輯圖,“+1”,1,以T1為例:,中斷,TF1,“+1”,“+1”,6.2.3 定時(shí)/計(jì)數(shù)器的4種工作方式,3、方式2(M1M0=10),可自動(dòng)重裝載的8位計(jì)數(shù)器,TH1(TH0)被定義為賦值寄存器,TL1(TL0)被定義為計(jì)數(shù)器,定時(shí)/計(jì)數(shù)器方式2邏輯圖,重裝載,1,“+1”,以T1為例:,中斷,TF1,“+1”,“+1”,6.2.3 定時(shí)/計(jì)數(shù)器的4種工作方式,4、 方式3(M1M0=11),T0被分成2個(gè)相互獨(dú)立的8位計(jì)數(shù)器TL0 、TH0。,TL0使用T0本身的一些控制位C/T、GATE、TR0、TF0、INT0等??勺龆?/p>
16、時(shí)器也可做計(jì)數(shù)器。 TH0只能做定時(shí)器,并使用T1的控制位TR1、TF1,同時(shí)占用T1的中斷服務(wù)子程序入口(001BH)。 方式3只適用于T0。T1不能工作在方式3(如果T1被設(shè)置為方式3,T1將停止計(jì)數(shù))。,6.2.3 定時(shí)/計(jì)數(shù)器的4種工作方式,定時(shí)/計(jì)數(shù)器方式3邏輯圖,1,TH0借用了T1的TR1和TF1,因此控制了T1的中斷。 此時(shí)T1只能用在一些不需要中斷的情況。,“+1”,“+1”,1,“+1”,“+1”,TF0,TF1,中 斷,中 斷,“+1”,6.2.3 定時(shí)/計(jì)數(shù)器的4種工作方式,初始化一般有以下幾個(gè)步驟:, 確定工作方式,對(duì)方式寄存器TMOD賦值。, 預(yù)置定時(shí)或計(jì)數(shù)初值,直
17、接將其寫(xiě)入TH0、TL0、TH1、TL1中。, 根據(jù)需要對(duì)中斷允許寄存器有關(guān)位賦值,以開(kāi)放 或禁止定時(shí)/計(jì)數(shù)器中斷。, 將TRi 置為“1”,啟動(dòng)定時(shí)/計(jì)數(shù)器。,計(jì)數(shù)初值的設(shè)定:,最大計(jì)數(shù)值M:不同的工作方式M值不同,方式0: M = 213 = 8192,方式1: M = 216 = 65536,方式2、3:M = 28 = 256,6.2.4 定時(shí)/計(jì)數(shù)器的初始化,計(jì)數(shù)初值X的計(jì)算方法:,計(jì)數(shù)方式:,X = M計(jì)數(shù)值(X即為計(jì)數(shù)值的補(bǔ)碼數(shù)),定時(shí)方式:,(M X)T = 定時(shí)值, X = M定時(shí)值 / T,其中T為機(jī)器周期,時(shí)鐘的12分頻, 若晶振為6MHz,則T = 2s; 若晶振為12
18、MHz,則T = 1s。,6.2.4 定時(shí)/計(jì)數(shù)器的初始化,例1 若單片機(jī)晶振為12MHz, 要求產(chǎn)生500s定時(shí),試計(jì)算X的初值。,解:由于T = 1s,產(chǎn)生500s定時(shí), 需要“+1” 500次,定時(shí)器方能產(chǎn)生溢出。,采用方式0:( 13位計(jì)數(shù)器 ),X= 213(50010-6 /10-6 ) = 8192 500 = 7692 = 1E0CH = 0F00CH,采用方式1:( 16位計(jì)數(shù)器 ),X= 216 (50010-6 /10-6)= 65036 = 0FE0CH,?,THi,TLi,0F00CH =,?,暫時(shí)寫(xiě)成,6.2.4 定時(shí)/計(jì)數(shù)器的初始化,1、作定時(shí)器用,例2 設(shè)主頻為
19、12MHz,利用定時(shí)器T1定時(shí)。 使P1.0輸出周期為2ms的方波。,解:用P1.0作方波輸出信號(hào),周期為2ms的方波 即可用每1ms改變一次電平的方法完成, 故定時(shí)值可設(shè)置為1ms。 可做“+1”運(yùn)算1000次,使T1工作在方式0, 即13位計(jì)數(shù)器。,定時(shí)初值:,X= M計(jì)數(shù)次數(shù)= 81921000 = 7192 = 1C18H,6.2.5 定時(shí)/計(jì)數(shù)器應(yīng)用舉例,由于TL1的高3位不用,1C18H可寫(xiě)成:,1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0,TL1的高3位不用,=E018H,TH1初值為E0H,TL1初值為18H,0 0 0 0,選擇方式0,13位計(jì)數(shù)器,選擇定時(shí)
20、器方式,TMOD,=E018H,6.2.5 定時(shí)/計(jì)數(shù)器應(yīng)用舉例,MOV TMOD, #00H,MOV TH1, #0E0H,MOV TL1, #18H,SETB EA,SETB ET1,SETB TR1,SJMP $,ORG 001BH,AJMP BR1,BR1: MOV TH1, #0E0H,MOV TL1, #18H,CPL P1.0,RETI,;T1按方式0工作,;給計(jì)數(shù)器賦初值,;CPU開(kāi)總中斷,;T1允許中斷,;啟動(dòng)T1,;模擬主程序,;T1中斷入口,;轉(zhuǎn)T1中斷服務(wù),;重裝T1的初值,;輸出方波,;返回,程序:,6.2.5 定時(shí)/計(jì)數(shù)器應(yīng)用舉例,ORG 0100H,例3 根據(jù)例2
21、的要求產(chǎn)生周期為2ms的方波, 但不用中斷方式,而用查詢方式工作, 查詢標(biāo)志為TF1。,解:利用方式1,16位計(jì)數(shù)器,當(dāng)定時(shí)時(shí)間到, T1計(jì)數(shù)器溢出使TF1置“1”,由于不采用 中斷方式,TF1置“1”后,不會(huì)自動(dòng)復(fù)“0” 故需要指令給TF1清“0”。,初值=,0 0 0 0 H,-) 0 3 E 8 H,8,1,C,F,H,FC18H, 1000,6.2.5 定時(shí)/計(jì)數(shù)器應(yīng)用舉例,MOV TMOD, #10H,SETB TR1,LOOP: MOV TH1, #0FCH,MOV TL1, #18H,JNB TF1, $,CPL P1.0,CLR TF1,SJMP LOOP,;T1按方式1工作,
22、;啟動(dòng)T1定時(shí),;給計(jì)數(shù)器賦初值,;TF1=0,則繼續(xù)查詢,;TF10,;輸出方波,;返回,程序:,6.2.5 定時(shí)/計(jì)數(shù)器應(yīng)用舉例,2、作計(jì)數(shù)器用,包裝機(jī),包裝命令,光源,光 敏,6.2.5 定時(shí)/計(jì)數(shù)器應(yīng)用舉例,選方式2,選計(jì)數(shù)器,0 1 1 0, 計(jì)數(shù)初值X = M64H = 9CH, 用P1.0啟動(dòng)外設(shè)發(fā)包裝命令, 用R5R4作箱數(shù)計(jì)數(shù)器, 方式字TMOD = 06H,6.2.5 定時(shí)/計(jì)數(shù)器應(yīng)用舉例,程序:,;P1.0為低,;箱數(shù)計(jì)數(shù)器清“0”,;置T0工作方式,;計(jì)數(shù)初值送計(jì)數(shù)器,;T0開(kāi)中斷,;CPU開(kāi)中斷,;啟動(dòng)T0,;模擬主程序,;T0中斷入口,;轉(zhuǎn)向中斷服務(wù),6.2.5 定
23、時(shí)/計(jì)數(shù)器應(yīng)用舉例,COUNT: MOV A, R4,ADD A, #1,MOV R4, A,MOV A, R5,ADDC A, #0,MOV R5, A,SETB P1.0,MOV R3, #100,DLY: NOP,DJNZ R3, DLY,CLR P1.0,RETI,中斷服務(wù):,;箱計(jì)數(shù)器加“1”,;啟動(dòng)外設(shè)包裝,;給外設(shè)足夠時(shí)間,;延時(shí),;停止包裝,;中斷返回,6.2.5 定時(shí)/計(jì)數(shù)器應(yīng)用舉例,;先在低字節(jié)加“1”,ORG 0100H,R5R4作箱數(shù)計(jì)數(shù)器,3、門控位GATE的應(yīng)用,選方式1,選定時(shí)器方式,1 0 0 1,例5 用GATE 控制位,測(cè)量INT1(P3.3)引腳上正脈沖的
24、寬度(設(shè):晶振為12MHz)。,6.2.5 定時(shí)/計(jì)數(shù)器應(yīng)用舉例,“+1”,1,0,0,1,1,1,1,“+1”,“+1”,0,0,0,6.2.5 定時(shí)/計(jì)數(shù)器應(yīng)用舉例,程序:,;置T1方式控制字,;T1從0開(kāi)始計(jì)數(shù),;等INT1低電平,;T1允許計(jì)數(shù),;等INT1高電平,;等INT1低電平,;停止計(jì)數(shù)(更保險(xiǎn)一點(diǎn)),計(jì)數(shù)時(shí)間,6.2.5 定時(shí)/計(jì)數(shù)器應(yīng)用舉例,6.3.1 串行通信的兩種基本方式,1、異步傳送方式,一幀數(shù)據(jù):,一個(gè)字符在異步傳送中稱為一幀數(shù)據(jù)。,一幀數(shù)據(jù)由4部分組成: 起始位、數(shù)據(jù)位、奇偶位、停止位,一幀數(shù)據(jù),起始位,數(shù)據(jù)位,奇偶位,停止位,第n個(gè)字符,第n+1個(gè)字符,6.3
25、MCS-51串行口,為邏輯“0”信號(hào),占用1位,用來(lái)通知接收設(shè)備,一個(gè)新的字符開(kāi)始了。,數(shù)據(jù)位:,起始位:,奇偶位:,58位。數(shù)據(jù)的最低位在前,最高位在后。,緊跟在最高位之后,占用1位,奇偶校驗(yàn)時(shí),根據(jù)協(xié)議置“1”或“0”。,停止位:,為邏輯“1”信號(hào),占用1位或2位,當(dāng)接收端收到停止位時(shí),表示一幀數(shù)據(jù)結(jié)束。,2、同步傳送方式,數(shù)據(jù)塊開(kāi)始有12同步字符SYNC,后面是按順序傳送的數(shù)據(jù)塊。,數(shù)據(jù)結(jié)構(gòu):,6.3.1 串行通信的兩種基本方式,6.3.2 MCS-51串行口結(jié)構(gòu),1、數(shù)據(jù)緩沖器SBUF,包括物理上獨(dú)立的發(fā)送緩沖器、接收緩沖器。,發(fā)送緩沖器:只能寫(xiě)入不能讀出,接收緩沖器:只能讀出不能寫(xiě)入
26、,兩個(gè)緩沖器共用一個(gè)地址99H,2、串行口控制寄存器,字節(jié)地址為98H,可位尋址(位地址為98H9FH)。,SM0 SM1 SM2 REN TB8 RB8 TI RI,SCON (98H),SM0、SM1:串行口工作方式選擇位,如下表所示。,0 0 0 移位寄存器方式(用于I/O擴(kuò)展),0 1 1 8位UART,波特率可變,1 0 2 9位UART,波特率為fosc/32或fosc/64,1 1 3 9位UART,波特率可變,串行口工作方式,6.3.2 MCS-51串行口結(jié)構(gòu),允許接收控制位。由軟件置“1”時(shí),允許接收,置“0”時(shí),禁止接收。,REN:,TB8:,在方式2和方式3中要發(fā)送的第9
27、位數(shù)據(jù),需要時(shí)由軟件置1或置0。,RB8:,在方式2和方式3中接收到的第9位數(shù)據(jù)。在方式1時(shí),如SM2=0,RB8是接收到的停止位。在方式0中,不使用RB8。,TI:,發(fā)送中斷標(biāo)志。在方式0串行發(fā)送第8位結(jié)束時(shí)由硬件置“1”,或在其他方式中串行發(fā)送停止位的開(kāi)始時(shí)置“1”,必須由軟件清“0”。,RI:,接收中斷標(biāo)志。在方式0串行接收到第8位結(jié)束時(shí)由硬件置“1”,或在其他方式中串行接收到停止位的中間時(shí)置“1”,必須由軟件清“0”。,6.3.2 MCS-51串行口結(jié)構(gòu),6.3.2 MCS-51串行口結(jié)構(gòu),SM2:允許方式2和方式3多機(jī)通信控制位。 在方式2或方式3中,如SM2=1,則接收到的第9位數(shù)
28、據(jù)(RB8)為“1”時(shí),置位接收中斷標(biāo)志RI;如SM2=0,則RB8無(wú)論為1還是0,均置位RI。 在方式1時(shí),如SM2=1,則只有在接收到有效停止位時(shí)才置位RI,若沒(méi)有接收到有效停止位,則RI清“0”。 在方式0中,SM2必須為“0”。,3、特殊功能寄存器PCON,其字節(jié)地址87H,沒(méi)有位尋址功能。,PCON(87H),SMOD:波特率選擇位。SMOD=1時(shí),波特率加倍。,6.3.2 MCS-51串行口結(jié)構(gòu),6.3.3 串行口工作方式,1、方式0,移位寄存器輸入/輸出方式,可外接移位寄存器,以擴(kuò)展并行I/O口。,方式0的波特率為:,波特率=fosc/12,74LS164,數(shù)據(jù)輸出,移位脈沖,1
29、)方式0 發(fā)送,一個(gè)數(shù)據(jù)寫(xiě)入SBUF,串口將數(shù)據(jù)從RXD輸出(波特率fosc/12),TXD輸出同步移位信號(hào),發(fā)送完TI置1。,D7 D0,方式0擴(kuò)展I/O口硬件邏輯圖,2)方式0 接收,REN置1,串口將數(shù)據(jù)從RXD輸入(波特率fosc/12),TXD輸出同步移位信號(hào),接收完RI置1。,方式0擴(kuò)展I/O口硬件邏輯圖,6.3.3 串行口工作方式,方式0發(fā)送時(shí)序,ALE,WRITE TO SBUF,SEND,SHIFT,RXD,TI,S6P2,TXD,S3P1,S5P1,6.3.3 串行口工作方式,方式0接收時(shí)序,ALE,WRITE TO SBUF,RECEIVE,SHIFT,RXD,TXD,R
30、I,D0,D1,D3,D4,D5,D6,D7,D2,S5P2,6.3.3 串行口工作方式,2、方式1,波特率可變的8位異步通信接口方式。,波特率=2SMOD/32T1溢出率,1)方式1發(fā)送,CPU 執(zhí)行一條寫(xiě)SBUF指令,就啟動(dòng)了串口發(fā)送。,當(dāng)SEND和DATA有效時(shí),數(shù)據(jù)從TXD輸出。,2)方式1接收,允許接收位REN被置“1”后,接收器就開(kāi)始工作,跳變檢測(cè)器以波特率16倍的速率采樣RXD端的電平,RXD引腳上發(fā)生由“1”到“0”的跳變,接收器開(kāi)始接收。,6.3.3 串行口工作方式,TX CLOCK,WRITE TO SBUF,SEND,DATA,START BIT,STOP BIT,SHI
31、FT,TXD,TI,方式1發(fā)送時(shí)序,6.3.3 串行口工作方式,TX CLOCK,START BIT,STOP BIT,SHIFT,RXD,BIT DETECTOR SAMPLE TIMES,RI,方式1接收時(shí)序,6.3.3 串行口工作方式,3、方式2,9位異步通信接口方式。傳送一幀數(shù)據(jù)信息為11位。,波特率=2SMOD/64fosc,1)方式2發(fā)送,數(shù)據(jù)由TXD端輸出,附加的第9位數(shù)據(jù)由SCON中的TB8提供。 CPU 執(zhí)行一條寫(xiě)SBUF指令,就啟動(dòng)了串口發(fā)送,發(fā)送完TI置1。,2)方式2接收,與方式1相似,REN被置“1”后,跳變檢測(cè)器以波特率16倍的速率采樣RXD端的電平,RXD引腳上發(fā)
32、生由“1”到“0”的跳變,接收器開(kāi)始接收。,6.3.3 串行口工作方式,STOP BIT,方式2發(fā)送時(shí)序,TX CLOCK,WRITE TO SBUF,SEND,DATA,D0,D1,D2,D3,D4,D5,D6,D7,START BIT,SHIFT,TXD,TI,TB8,6.3.3 串行口工作方式,方式2接收時(shí)序,TX CLOCK,START BIT,STOP BIT,SHIFT,RXD,D0,D1,D2,D3,D4,D5,D6,D7,BIT DETECTOR SAMPLE TIMES,RI,RB8,4、方式3,9位異步通信接口方式。,波特率=2SMOD/32T1的溢出率,其他與方式2類似,
33、6.3.3 串行口工作方式,6.3.4 波特率的設(shè)計(jì),1、方式0的波特率是固定的:,波特率=fosc/12,2、方式2波特率取決于SMOD,波特率=2SMOD/32T1的溢出率,方式2波特率=2SMOD/64 fosc,SMOD=0時(shí),波特率=fosc/64;SMOD=1時(shí),波特率=fosc/32。,3、方式1、3波特率取決于T1的溢出率,SMOD=0時(shí),波特率= T1的溢出率/32;SMOD=1時(shí),波特率= T1的溢出率/16。,4、定時(shí)器1作波特率發(fā)生器,T1的溢出率 = 計(jì)數(shù)速率 / (2K - 初值),K為計(jì)數(shù)器T1的位數(shù)。,K=13(方式0);K=16(方式1);K=8(方式2),T1為計(jì)數(shù)器時(shí):,T1為定時(shí)器時(shí):,T1的溢出率 = fosc / 12(2K - 初值),工作于方式1、3時(shí)波特率:,波特率=2SMOD / 32T1的溢出率,= 2SMOD fosc / 32 12 (2K - 初值),6.3.4 波特率的設(shè)計(jì),6.3.4 波特率的設(shè)計(jì),定時(shí)器1產(chǎn)生的常用波特率,6.3.5 串行口的應(yīng)用,例6:把內(nèi)部RAM 40H5FH單元中的ASCII碼,在最高位D7加上奇偶校驗(yàn)位后由甲機(jī)發(fā)送到乙機(jī),波特率為1.2K,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生產(chǎn)車間消防演練
- 氣象學(xué)教師勞動(dòng)合同樣本
- 無(wú)人駕駛技術(shù)董事聘用合同
- 本溪市供熱環(huán)保政策實(shí)施
- 經(jīng)濟(jì)適用房交易附加協(xié)議
- 畜牧業(yè)會(huì)計(jì)聘用合同樣本
- 停車場(chǎng)綠化工程合同
- 商務(wù)樓宇電梯安全運(yùn)行規(guī)范
- 采礦技術(shù)人員培訓(xùn)課件
- 校園文明禮貌教育活動(dòng)
- 2023年網(wǎng)絡(luò)與信息安全管理員(網(wǎng)絡(luò)安全管理員)三級(jí)理論試題及答案
- 2024-2030年中國(guó)板翅式換熱器行業(yè)競(jìng)爭(zhēng)戰(zhàn)略及發(fā)展?jié)摿Ψ治鰣?bào)告
- 植物盆栽課件教學(xué)課件
- 《復(fù)活》精制課件
- 前程無(wú)憂行測(cè)筆試題庫(kù)
- 2024春期國(guó)開(kāi)電大法學(xué)本科《國(guó)際法》在線形考(形考任務(wù)1至5)試題及答案
- 冷卻塔技術(shù)規(guī)格書(shū)
- 國(guó)家開(kāi)放大學(xué)電大《小學(xué)語(yǔ)文教學(xué)研究》形考任務(wù)3-4試題及答案
- 黑布林-Peter-Pan-中英雙語(yǔ)閱讀
- 楊柳煤礦“三量”動(dòng)態(tài)變化情況分析報(bào)告(3)
- 因式分解經(jīng)典題型(含詳細(xì)答案)
評(píng)論
0/150
提交評(píng)論