單片機(jī)定時(shí)與計(jì)及通訊_第1頁(yè)
單片機(jī)定時(shí)與計(jì)及通訊_第2頁(yè)
單片機(jī)定時(shí)與計(jì)及通訊_第3頁(yè)
單片機(jī)定時(shí)與計(jì)及通訊_第4頁(yè)
單片機(jī)定時(shí)與計(jì)及通訊_第5頁(yè)
已閱讀5頁(yè),還剩84頁(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)介

1、單片機(jī)定時(shí)與計(jì)及通訊第1頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 5.1 定時(shí)/計(jì)數(shù)器 定時(shí)計(jì)數(shù)器結(jié)構(gòu)和工作原理 定時(shí)計(jì)數(shù)器的控制寄存器 定時(shí)器的四種工作方式 定時(shí)計(jì)數(shù)器的應(yīng)用編程5.2 串行接口第2頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 51系列單片機(jī)片內(nèi)有二個(gè)十六位定時(shí)/計(jì)數(shù)器:定時(shí)器0(T0)和定時(shí)器1(T1)。 兩個(gè)定時(shí)器都有定時(shí)或事件計(jì)數(shù)的功能,可用于定時(shí)控制、延時(shí)、對(duì)外部事件計(jì)數(shù)和檢測(cè)等場(chǎng)合 定時(shí)/計(jì)數(shù)器實(shí)際上是16位加1計(jì)數(shù)器。 T0由2個(gè)8位持殊功能寄存器TH0和TL0構(gòu)成, T1由2個(gè)8位持殊功能寄存TH1和TL1構(gòu)成。每個(gè)定時(shí)器都可由軟件設(shè)

2、置為定時(shí)工作方式或 計(jì)數(shù)工作方式。T0和T1受特殊功能寄存器TMOD和TCON控制。 5.1.1 8051定時(shí)/計(jì)數(shù)器結(jié)構(gòu)和工作原理第3頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二1. 定時(shí)工作方式 設(shè)置為定時(shí)工作方式時(shí),定時(shí)器計(jì)數(shù)的脈沖是由51單片機(jī)片內(nèi)振蕩器經(jīng)12分頻后產(chǎn)生的。 每經(jīng)過(guò)一個(gè)機(jī)器周期定時(shí)器(T0或T1)的數(shù)值加1直至計(jì)數(shù)滿產(chǎn)生溢出。 如:當(dāng)8051采用12MHz晶體時(shí),每個(gè)機(jī)器周期為1s,計(jì)5 個(gè)機(jī)器周期即為5 s,即定時(shí)5 s 。 第4頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 2. 計(jì)數(shù)工作方式 設(shè)置為計(jì)數(shù)工作方式時(shí),通過(guò)引腳T0(P34)和T1

3、(P35)對(duì)外部脈沖信號(hào)計(jì)數(shù)。 當(dāng)輸入脈沖信號(hào)產(chǎn)生由1至0的下降沿時(shí),定時(shí)器的值加1, 在每個(gè)機(jī)器周期CPU采樣T0和T1的輸入電平。若前一個(gè)機(jī)器周期采樣值為高,下一個(gè)機(jī)器周期采樣值為低,則計(jì)數(shù)器加 1。 由于檢測(cè)一個(gè)1至0的跳變需要二個(gè)機(jī)器周期,故最高計(jì)數(shù)頻率為振蕩頻率的二十四分之一。 雖然對(duì)輸入信號(hào)的占空比無(wú)特殊要求,但為了確保某個(gè)電平在變化之前至少被采樣一次,要求電平保持時(shí)間至少是一個(gè)完整的機(jī)器周期。第5頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.1.2 定時(shí)計(jì)數(shù)器的控制寄存器定時(shí)器共有兩個(gè)控制寄存器: 定時(shí)器控制TCON(88H) 定時(shí)器工作模式寄存器TMOD(89H)

4、1. 工作模式寄存器TMOD(89H) TMOD用于控制T0和T1的操作模式。其各位的定義如下: TMOD D7D6D5D4 D3D2D1D0 (89H)GATEC/TM1M0GATEC/TM1M0定時(shí)器T0 定時(shí)器T1第6頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 GATE:門(mén)控信號(hào) GATE=0,TRx=1時(shí)即可啟動(dòng)定時(shí)器工作 ; GATE=1,INTx=1才可啟動(dòng)定時(shí)器工作。 C/T:定時(shí)器/計(jì)數(shù)器選擇位 C/T=1,為計(jì)數(shù)器方式; C/T=0,為定時(shí)器方式。 M1 M0 工作模式選擇位 M1M0=00 工作方式0(13位方式)。 M1M0=01 工作方式1(16位方式)。

5、 M1M0=10 工作方式2(8位自動(dòng)再裝入方式)。 M1M0=11 工作方式3(T0為2個(gè)8位方式)。第7頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 TF1 TR1TF0 TR0 IE1IT1 IE0IT0T1 請(qǐng)求有/無(wú) T1工作啟/停 T0 請(qǐng)求有/無(wú) T0 工作啟/停 INT1 請(qǐng)求有/無(wú) INT1方式下沿/ 低電平 INT0請(qǐng)求有/無(wú) INT0方式下沿/低電平 2. 控制寄存器TCON(88H) TCON寄存器 中定時(shí)器控制 僅用了其中高四位,其意義如下: TF1:T1溢出中斷請(qǐng)求標(biāo)志。 TF1=1,T1有溢出中斷請(qǐng)求。 TF1=0,T1無(wú)溢出中斷請(qǐng)求。 TR1:T1運(yùn)

6、行控制位。 TR1=1,啟動(dòng)T1工作。 TR1=0,停止T1工作。第8頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 TF0:T0溢出中斷請(qǐng)求標(biāo)志。 TF0=1,T0有溢出中斷請(qǐng)求。 TF0=0,T0無(wú)溢出中斷請(qǐng)求。 TR0:T0運(yùn)行控制位。 TR0=1,啟動(dòng)T0工作。 TR0=0,停止T0工作。第9頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二定時(shí)計(jì)數(shù)器的內(nèi)部邏輯電路結(jié)構(gòu) &1C/TC/T第10頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.1.3 定時(shí)器的四種工作方式 對(duì)TMOD寄存器的M1、M0位的設(shè)置,可選擇四種工作方式,即方式0、方式1、方式2和方式3

7、。下面用THX、TLX(X=1或0)表示TH1 TL1 TH0 TL0。 1.方式 0定時(shí)器(T0或T1)工作于13位定時(shí)、計(jì)數(shù)方式。用于計(jì)數(shù)方式時(shí)最大計(jì)數(shù)值為 213 8192個(gè)脈沖用于定時(shí)工作時(shí),定時(shí)時(shí)間為:t(213一T0初值) 時(shí)鐘周期12在這種模式下,16寄存器(THX和TLX)只用13位,其中THX占高8位。其中TLX占低5位, TLX的高3位末用。當(dāng)TLX的低5位溢出時(shí)向THX進(jìn)位,而THX溢出時(shí)硬件置位TF0,并申請(qǐng)中斷。第11頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 定時(shí)、計(jì)數(shù)溢出否可查詢(xún)TF0是否置位,如果開(kāi)中斷則產(chǎn)生溢出中斷。 2 .方式1 當(dāng)TMOD中M

8、1M0=01時(shí),定時(shí)計(jì)數(shù)器工作在方式1。該模式是一個(gè)16位定時(shí)計(jì)數(shù)方式。寄存器TH0和TL0是以全16位參與操作,計(jì)數(shù)方式時(shí)最大計(jì)數(shù) 21665536(個(gè)外部脈沖) 用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為: t(216一T0初值) 時(shí)鐘周期12 16寄存器(THX和TLX) 中THX提供高8位、TLX提供低8位計(jì)數(shù)初值 第12頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二3. 方式2 當(dāng)TMOD中M1M0=10時(shí),定時(shí)器工作在方式2。 方式2是8位的可自動(dòng)重裝載的定時(shí)計(jì)數(shù)方式。16位的計(jì)數(shù)器被拆成兩個(gè)8位,其中TL0用作8位計(jì)數(shù)器, TH0用以保持計(jì)數(shù)初值。當(dāng)TL0計(jì)數(shù)溢出,置位TF0,TH

9、0中的初值自動(dòng)裝入TL0,繼續(xù)計(jì)數(shù),循環(huán)重復(fù)計(jì)數(shù)。用于計(jì)數(shù)工作方式時(shí),最大計(jì)數(shù)值為: 28256(個(gè)外部脈沖)。 用于定時(shí)工作方式時(shí),其定時(shí)時(shí)間為; t(28TH0初值)振蕩周期12這種工作方式可省去用戶重裝常數(shù)的程序,并可產(chǎn)生精確的定時(shí)時(shí)間,特別適用作串行口波待率發(fā)生器。第13頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二4.方式3當(dāng)TMOD中M1M0=11時(shí),定時(shí)器工作在方式3。若將T0設(shè)置為模式3,TL0和TH0被分成為兩個(gè)互相獨(dú)立的8位計(jì)數(shù)器TH0和 TL0 。 TL0可工作為定時(shí)方式或計(jì)數(shù)方式。占用原T0的各控制位、引腳和中斷源。即CT、GATE、TR0、TF0和T0 (P

10、3.4)引腳、INT0 (P3.2)引腳。 TH0只可用作定時(shí)功能,占用定時(shí)器T1的控制位TR1和T1的中斷標(biāo)志位TF1,其啟動(dòng)和關(guān)閉僅受TRl的控制。定時(shí)器T1無(wú)模式 3, 可工作于方式0、1、2,但不能使用中斷方式。 只有將T1用做串行口的波特率發(fā)生器時(shí),T0才工作在方式3,以便增加一個(gè)定時(shí)器。第14頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.1.4 定時(shí)計(jì)數(shù)器的應(yīng)用編程5.1.4.1 定時(shí)器的計(jì)數(shù)初值C的計(jì)算和裝入 如前所述,8xx51定時(shí)器/計(jì)數(shù)器不同工作方式的模值不同,由于采用加1計(jì)數(shù),因此計(jì)數(shù)初值應(yīng)為負(fù)值,計(jì)算機(jī)中用有符號(hào)數(shù)采用補(bǔ)碼表示。 計(jì)數(shù)初值(C)的求法如下。

11、計(jì)數(shù)方式: 計(jì)數(shù)初值 C=模-X(其中X為要計(jì)的脈沖個(gè)數(shù))定時(shí)方式: 計(jì)數(shù)初值 C= t / MC補(bǔ)=模t / MC 其中t為欲定時(shí)時(shí)間,MC為8xx51的機(jī)器周MC=12/fosc 當(dāng)采用12MHZ晶振時(shí),MC=1us; 當(dāng)采用6MHZ晶振時(shí),MC=2us。第15頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二方式0( 13位方式): C=(-64H)補(bǔ)=2000H64H=1F9CH 1F9CH0001 1111 1001 1100B 把13位中的高八位1111 1100B裝入TH0, 而把13位中的低五位xxx1 1100B裝入TL0。 MOV TH0,#0FCH; MOV TL0

12、,#1CH;(xxx用“0”填入)方式1(16位方式): C=(-64H)補(bǔ)=10000H-64H=FF9CH 用指令裝入計(jì)數(shù)初值: MOV TH0,#0FFH MOV TL0,#9CH例 要計(jì)100個(gè)脈沖的計(jì)數(shù)初值第16頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二方式2(8位自動(dòng)再裝入方式) C=(64H)補(bǔ)=100H64H=9CH 初值既要裝入TH0,也要裝入TL0: MOV TH0,#9CH MOV TL0,#9CH第17頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.1.4.2 定時(shí)計(jì)數(shù)器的初始化編程 定時(shí)計(jì)數(shù)器的初始化編程步驟:1)根據(jù)定時(shí)時(shí)間要求或計(jì)數(shù)要求計(jì)

13、算計(jì)數(shù)器初值;2)工作方式控制字送TMOD寄存器;3)送計(jì)數(shù)初值的高八位和低八位到THX和TLX寄存 器中;4)啟動(dòng)定時(shí)(或計(jì)數(shù)),即將TRX置位。 如果工作于中斷方式,需要置位EA(中斷總開(kāi)關(guān))及ETX(允許定時(shí)/計(jì)數(shù)器中斷)。并編中斷服務(wù)程序。第18頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二例5-1 如圖7-2所示,P1中接有八個(gè)發(fā)光二極管,編程使八個(gè)管輪流點(diǎn)亮,每個(gè)管亮100ms,設(shè)晶振為6MHz。5.1.4.3 應(yīng)用編程舉例第19頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二分析 利用T1完成100ms的定時(shí),當(dāng)P1口線輸出“1”時(shí),發(fā)光二極管亮,每隔100ms

14、”1”左移一次,采用定時(shí)方式1,先計(jì)算計(jì)數(shù)初值: MC= =2s 100ms/2s =50000=C350H (C350H)補(bǔ) =10000H-C350H=3CB0H 第20頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二查詢(xún)方式如下: ORG 0030H MOV A,#01H:置第一個(gè)LED亮NEXT:MOV P1,A MOV TMOD,#10H ;T1工作于定時(shí)方式1 MOV TH1,#3CH MOV TL1,#0B0H; 定時(shí)100ms SETB TR1 AGAI: JBC TF1,SHI; 100ms到轉(zhuǎn)SHI,并清TF1 SJMP AGAISHI: RL A SJMP NEX

15、T第21頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二中斷方式 ORG 0000H AJMP MAIN ;單片機(jī)復(fù)位后從0000H開(kāi)始執(zhí)行 ORG 001BH AJMP IV1 ;轉(zhuǎn)移到IV1 ORG 0030H ;主程序MAIN:MOV A,#01H MOV P1,A ;置第一個(gè)LED亮 MOV TMOD,#10H ;T1工作于定時(shí)方式1 MOV TH1,#3CH MOV TL1,#0B0H ;定時(shí)100ms SETB TR1 ;啟動(dòng)T1工作 SETB ET1 ;允許T1中斷WAIT:SJMP WAIT ;等待中斷第22頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二IV1

16、:RL A ;中斷服務(wù)程序,左移一位 MOV P1,A ;下一個(gè)發(fā)光二極管亮 MOV TH1,#3CH MOV TL1,#0B0H ;重裝計(jì)數(shù)初值 RETI ;中斷返回以上程序進(jìn)入循環(huán)執(zhí)行,八個(gè)LED一直循環(huán)輪流點(diǎn)亮。第23頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二方法1:采用T0產(chǎn)生周期為200ms脈沖,即P1.0每100ms取反一次作為T(mén)1的計(jì)數(shù)脈沖,T1對(duì)下降沿計(jì)數(shù),因此T1計(jì)5個(gè)脈沖正好100ms。T0采用方式1,X= 得X=3CB0H,T1采用方式2,計(jì)數(shù)初值X = 5=FBH均采用查詢(xún)方式,流程圖和程序如下:例5-2 在P1.7端接一個(gè)發(fā)光二極管LED,要求利用定時(shí)控

17、制使LED亮一秒滅一秒周而復(fù)始,設(shè)fosc=6MHZ。解: 16位定時(shí)最大為 *2us=131.072ms,顯然不能滿足要求,可用以下兩種方法解決。第24頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二第25頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 ORG 0000HMAIN:CLR P1.7 SETB P1.0 MOV TMOD,#61H MOV TH1,#0FBH MOV TL1,#0FBH SETB TR1LOOP1:CPL P1.7 LOOP2:MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 LOOP3: JBC TF0,LOOP4 SJ

18、MP LOOP3 LOOP4:CPL P1.0 JBC TF1,LOOP1 AJMP LOOP2 END 程序中用JBC指令對(duì)定時(shí)/計(jì)數(shù)溢出標(biāo)志位進(jìn)行檢測(cè),當(dāng)標(biāo)志位為1時(shí)跳轉(zhuǎn)并清標(biāo)志。第26頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二方法2:T0每隔100ms中斷一次,利用軟件對(duì)T0的中斷次數(shù)進(jìn)行計(jì)數(shù),中斷10次即實(shí)現(xiàn)了1秒的定時(shí)。 ORG 000BH ;T0中斷服務(wù)程序入口 AJMP IP0 ORG 0030H ;主程序開(kāi)始 MAIN:CLR P1.7 ;T0定時(shí)100ms MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SET

19、B EA第27頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 MOV R4,#0AH;中斷10次計(jì)數(shù) SETB TR0 SJMP ;等待中斷 IP0:DJNZ R4,RET0; MOV R4,#0AH CPL P1.7RET0:MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 RETI第28頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 例5- 有P3.4引腳(T0)輸入一低頻信號(hào)(其小于0.5kHZ),要求P3.4每發(fā)生一次負(fù)跳變時(shí), P1.0輸出一個(gè)500us同步負(fù)脈沖,同時(shí)P1.1輸出一個(gè)1ms的同步正脈沖。已知晶振頻率為6MHZ。P3.4500

20、us1ms定時(shí)方式計(jì)數(shù)方式 計(jì)數(shù)方式(初值FFH)定時(shí)方式1ms500usP1.0P1.1圖7-5第29頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 解按提意,設(shè)計(jì)方法如圖7-5所示。 初態(tài)P1.1輸出高電平(系統(tǒng)復(fù)位時(shí)實(shí)現(xiàn)),P1.1輸出低電平,T0選方式計(jì)數(shù)方式(計(jì)一個(gè)脈沖,初值為FFH)。當(dāng)加在P3.4上的外部脈沖負(fù)跳變時(shí),T0加1,計(jì)數(shù)器溢出,程序查詢(xún)到TF0為1,改變T0為500s定時(shí)工作方式,并使P1.0輸出,P1.1輸出。T0第一次定時(shí)500s溢出后,P1.0恢復(fù),T0第二次定時(shí)500s溢出后,P1.1恢復(fù),T0恢復(fù)外部脈沖計(jì)數(shù)。 設(shè)定時(shí)500s的初始值為X,則: (

21、256X)2106 = 50010-6 解得 X=6第30頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二源程序如下:BEGIN:MOV TMOD,#6H ; 設(shè)T0為方式外部計(jì)數(shù) MOV TH0,#0FFH ;計(jì)數(shù)一個(gè)脈沖 MOV TL0,#0FFH CLR P1.1 ;P1.1初值為0 SETB TR0 ;啟動(dòng)計(jì)數(shù)器DELL: JBC TF0,RESP1 ;檢測(cè)外跳變信號(hào) AJMP DELLRESP1:CLR TR0 MOV TMOD,#02H;重置T0為500ms定時(shí) 第31頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 MOV TH0,#06H ;重置定時(shí)初值 MOV

22、 TL0,#06H SETB P1.1 ; P1.1置1 CLR P1.0 ; P1.0清0 SETB TR0 ; 啟動(dòng)定時(shí)計(jì)數(shù)器DEL2: JBC TF0, RESP2 ;檢測(cè)第一次500us到否 AJMP DEL2RESP: SETB P1.0 ;P1.0恢復(fù)1DEL3: JBC TF0,RESP3 ;檢測(cè)第二次500us到否 AJMP DEL3RESP3: CLR P1.1 ; P1.1復(fù)0 CLR TR0 AJMP BEGIN第32頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.1.4.4 門(mén)控位的應(yīng)用 門(mén)控位GATE為1時(shí),TRx=1,INTx=1才能啟動(dòng)定時(shí)器。利用這個(gè)

23、特性可以測(cè)量外部輸入脈沖的寬度。例7-4 利用T0門(mén)控位測(cè)試 INT0引腳上出現(xiàn)的正脈沖寬度,已知晶振頻率為12MHz,將所測(cè)得值最高位 存入片內(nèi)71H單元,低位存入70H單元。解:設(shè)外部脈沖 由(P3.2)輸入,T0工作于定時(shí)方式 1 (16位計(jì)數(shù)),GATE設(shè)為1。測(cè)試時(shí),應(yīng)在INT0 低電平時(shí),設(shè)置TR0為1(16位計(jì)數(shù));當(dāng)INT0 變?yōu)楦唠娖綍r(shí),就啟動(dòng)計(jì)數(shù); 再次變低時(shí),停止計(jì)數(shù)。此計(jì)數(shù)值與機(jī)器周期的乘積即為被測(cè)正脈沖的寬度。因fosc=12MHZ,機(jī)器周期為1us,測(cè)試過(guò)程如下。第33頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二源程序如下: MOV TMOD,#09H

24、; 設(shè)T0為方式1 MOV TL0,#00H ;設(shè)計(jì)初值取最大值 MOV TH0,#00H MOV R0,#70H JB P3.2, $ ;等P3.2(INT0 )變低 SETB TR0 ;啟動(dòng)T0準(zhǔn)備工作 JNB P3.2, $ ;等待P3.2(INT0 ) JB P3.2,$ ; 等待P3.2(INT0 ) CLR TR0 ;停止計(jì)數(shù)T0從0開(kāi)始計(jì)數(shù)INT0 09H (TMOD) 1 TR0 0 TR0T0停止計(jì)數(shù)第34頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 MOV R0,TL0 ;存放結(jié)果 INC R0 MOV R0,TH0 SJMP $ 讀者不難編出C語(yǔ)言程序。這種方

25、案被測(cè)脈沖的寬度最大為65535個(gè)機(jī)器周期。由于靠軟件啟動(dòng)和停止計(jì)數(shù),有一定的測(cè)量誤差。其可能的最大誤差與指令的執(zhí)行時(shí)間有關(guān)。 此例中,在讀取定時(shí)器的計(jì)數(shù)之前,已把它停住。但在某些情況下,不希望在讀計(jì)數(shù)值時(shí)打斷定時(shí)的過(guò)程,由于我們不可能在同一時(shí)刻讀取THX和TLX的內(nèi)容。讀取一個(gè)時(shí)恰好另一個(gè)產(chǎn)生溢出,在這種情況下,讀取的計(jì)數(shù)值有可能是錯(cuò)的。可以解決錯(cuò)讀的方法是:第35頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 先讀THX后讀TLX,若兩次讀得的THx沒(méi)有發(fā)生變化,則可確定讀到的內(nèi)容是正確的。若前后兩次讀到的THx有變化,則再重復(fù)上述過(guò)程,重復(fù)讀到的內(nèi)容就應(yīng)該是正確的了。下面是按此

26、思路編寫(xiě)的程序段,讀到的TH0 和TL0放在R1和R0內(nèi): RP:MOV A,TH0; MOV R0,TL0; CJNE A,TH0,RP; MOV R1,A第36頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.1.5 小 結(jié) 定時(shí)計(jì)數(shù)器應(yīng)用非常廣泛,如定時(shí)采樣、時(shí)間測(cè)量、產(chǎn)生音響、作脈沖源、制作日歷時(shí)鐘、測(cè)量波形的頻率和占空比、檢測(cè)電機(jī)轉(zhuǎn)速等。因此應(yīng)很好掌握。 51系列單片機(jī)既有兩個(gè)16位的定時(shí)計(jì)數(shù)器,有四種不同的工作方式,歸納于下表:第37頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二28=256=100H28=256=100H216=65536=10000H213=

27、8192=2000H 模 值 (計(jì)數(shù)最大值)TL0定時(shí),計(jì)數(shù)占用TR0、TF0 ;TH0定時(shí),使用T1 的TR1、TF1此時(shí)T1作波特率發(fā)生器定時(shí)、計(jì)數(shù)范圍小,不用重裝時(shí)間常數(shù),多用于串行通信的波特率發(fā)生器用于定時(shí)時(shí)間 65.5ms,計(jì)數(shù)脈沖 65536 個(gè)場(chǎng)合用于定時(shí)時(shí)間 8.19ms ,計(jì)數(shù)脈沖 8192 個(gè)場(chǎng)合 應(yīng)用場(chǎng)合(設(shè)fosc12MHz)同方式0、1第一次裝入,啟動(dòng)工作后,每次TL回零后,不用程序裝入,由TH自動(dòng)裝入到TL每啟動(dòng)一次工作,需裝入一次計(jì)數(shù)初值 同左 TH TL高八位 TH低八位 TL高八位 TH低五位 TL 計(jì)數(shù)初值C的裝入方式 3T0兩個(gè)8位 方式方式 28位自動(dòng)重

28、裝方式方式 116位定時(shí)計(jì)數(shù)方式 方式 013位定時(shí)計(jì)數(shù)方式 方 式八位第38頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 定時(shí)和計(jì)數(shù)實(shí)質(zhì)都是對(duì)脈沖的計(jì)數(shù),只是被計(jì)脈沖的來(lái)源不同,定時(shí)方式的被計(jì)脈沖來(lái)源于時(shí)鐘,計(jì)數(shù)方式的被計(jì)脈沖來(lái)源于外部,定時(shí)方式的計(jì)數(shù)初值和被計(jì)脈沖周期有關(guān),計(jì)數(shù)方式的和被計(jì)脈沖的個(gè)數(shù)有關(guān)。 無(wú)論定時(shí)還是計(jì)數(shù),當(dāng)計(jì)滿規(guī)定的 脈沖個(gè)數(shù)產(chǎn)生溢出(計(jì)數(shù)初值寄存器回零),置位TFx , 可以通過(guò)程序查詢(xún),如果允許中斷,會(huì)產(chǎn)生中斷。 本章應(yīng)重點(diǎn)掌握定時(shí)計(jì)數(shù)器的應(yīng)用設(shè)計(jì)第39頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.2串行接口概述單片機(jī)串行口的結(jié)構(gòu)與工作原理

29、串行口的控制寄存器串行口的工作方式串行口的應(yīng)用編程第40頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 5 .2. 1 概 述 單片機(jī)應(yīng)用與數(shù)據(jù)采集或工業(yè)控制時(shí),往往作為前端機(jī)安裝在工業(yè)現(xiàn)場(chǎng),遠(yuǎn)離主機(jī),現(xiàn)場(chǎng)數(shù)據(jù)采用串行通信方式發(fā)往主機(jī)進(jìn)行處理,以降低通信成本,提高通信可靠性。如下圖所示。 第41頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 數(shù)據(jù)通信方式有兩種:并行通信與串行通信并行通信: 所傳送數(shù)據(jù)的各位同時(shí)發(fā)送或接收, 數(shù)據(jù)有多少位就需要多少根數(shù)據(jù)線。 特點(diǎn): 速度快,成本高,適合近距離傳輸 如計(jì)算機(jī)并口,打印機(jī),8255 。 串行通信:所傳送數(shù)據(jù)的各位按順序一位一位

30、地發(fā)送或接收。只需一根數(shù)據(jù),一根地線,共2根 (如雙向通信發(fā)送和接收各需1根數(shù)據(jù)線。) 特點(diǎn):成本低,硬件方便,適合遠(yuǎn)距離通信, 傳輸速度低。第42頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二第43頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二串行通信的分類(lèi):同步串行通信和異步串行通信一、異步通信: 通信的雙方應(yīng)該有一個(gè)約定,什么時(shí)候開(kāi)始發(fā)送,什么時(shí)候發(fā)送完畢;接收方收到的信息是否正確等,這就是通信協(xié)議。 異步串行通信一幀數(shù)據(jù)格式: 一個(gè)起始位 “0”,表示字符的開(kāi)始,然后是58位數(shù)據(jù)即該字符的代碼,規(guī)定低位在前,高位在后,接 下來(lái)是奇偶校驗(yàn)位(可省略),最后以停止位“1

31、”表示字符的結(jié)束。第44頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二優(yōu)點(diǎn):硬件結(jié)構(gòu)簡(jiǎn)單。缺點(diǎn):傳輸速度慢。P1D0D1D2D3D4D5D6D7P10第n個(gè)字符(一幀)n-1n+10D0起始位數(shù)據(jù)位(58位)校驗(yàn)位停止位第45頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二二、同步通信 在同步通信中,發(fā)送方在數(shù)據(jù)或字符開(kāi)始處就用同步字符(常約定12個(gè)字節(jié))指示一幀的開(kāi)始 ,由時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端和接收端同步,接收方一旦檢測(cè)到與規(guī)定的同步字符符合,下面 就連續(xù)按順序傳送若干個(gè)數(shù)據(jù) ,最后發(fā)校驗(yàn)字節(jié)。見(jiàn)下圖:SYN字符1SYN字符2數(shù)據(jù)1數(shù)據(jù)2.數(shù)據(jù)n連續(xù)傳送n 個(gè)數(shù)據(jù)校驗(yàn)第46頁(yè),

32、共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二三、單工、半雙工、全雙工通信方式 按通信方向分類(lèi):?jiǎn)喂ぁ腚p工、全雙工通信方式 1 單工方式: 一端是發(fā)送端,另外一端是接收端: 2. 半雙工方式 每端口有一個(gè)發(fā)送器和一個(gè)接收器,通過(guò)開(kāi)關(guān)連接在線路上,數(shù)據(jù)可以雙向傳送,但不能同時(shí)發(fā)送和接收. 要通過(guò)換向器轉(zhuǎn)換方向。第47頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二3. 全雙工方式 通信雙方用兩個(gè)獨(dú)立的收發(fā)器單獨(dú)連接,可以同時(shí)發(fā)送和接收數(shù)據(jù),因而提高了速度。 第48頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二1.實(shí)現(xiàn)數(shù)據(jù)格式化 因?yàn)镃PU發(fā)出的數(shù)據(jù)是并行數(shù)據(jù),接口電路應(yīng)

33、實(shí)現(xiàn)不同串行通信方式下的數(shù)據(jù)格式化任務(wù), 如自動(dòng)生成起止方式的幀數(shù)據(jù)格式(異步方式)或在待傳送的數(shù)據(jù)塊前加上同步字符等。 在串行傳輸中,通信的雙方都按通信協(xié)議進(jìn)行,所謂通信協(xié)議就是通信雙方必須共同遵守的 一種約定,約定包括數(shù)據(jù)的格式、同步的方式、傳送的步驟、檢糾錯(cuò)方式及控制字符的定義 等。 串行接口的基本任務(wù)就是:第49頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二2.進(jìn)行串、并轉(zhuǎn)換 在發(fā)送端,接口將CPU送來(lái)的并行信號(hào)轉(zhuǎn)換成串行數(shù)據(jù)進(jìn)行傳送;而在接收端,接口要將接 收到串行數(shù)據(jù)變成并行數(shù)據(jù)送往CPU,由CPU進(jìn)行處理。3.控制數(shù)據(jù)的傳輸速率 接口應(yīng)具備對(duì)數(shù)據(jù)傳輸率波特率的控制選擇能

34、力,即具有波特率發(fā)生器。4.進(jìn)行傳送錯(cuò)誤檢測(cè) 在發(fā)送時(shí),對(duì)傳送的數(shù)據(jù)自動(dòng)生成校驗(yàn)位或校驗(yàn)碼,在接收端能檢查校驗(yàn)位或校驗(yàn) 碼,以確定傳送中是否有誤碼。 第50頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 51系列單片機(jī)內(nèi)有一個(gè)全雙工的異步通信接口,通過(guò)對(duì)串行接口寫(xiě)控制字可以選擇其數(shù)據(jù)格式,同時(shí)內(nèi)部有波特率發(fā)生器,提供可選的波特率,可完成雙機(jī)通信或多機(jī)通信。四、 波特率 單位時(shí)間內(nèi)傳送的信息量。在計(jì)算機(jī)中,以每秒傳送的二進(jìn)制位數(shù)為單位。例如:100字符/秒,1個(gè)字符11位, 波特率為:10011=1100(波特) 平均每位傳送占用時(shí)間 Td = 1/1100=0.909ms第51頁(yè),共

35、89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二(一)通信線的連接 通信速率和通信距離這兩個(gè)方面是相互制約的,降低通信速率,可以提高通信距離. 不同的通信距離,串行通信電路有不同的連接方法。五. 串行通信總線標(biāo)準(zhǔn)及接口第52頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 RXD TXD GNDRXDTXDGNDRXDTXDGND電平轉(zhuǎn)換RXDTXDGNDRXDTXDGND電平轉(zhuǎn)換RXDTXDGND微機(jī)微機(jī)其他設(shè)備較遠(yuǎn)距離傳送電路近距離傳送電路第53頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二微機(jī)接口調(diào)制解調(diào)器調(diào)制解調(diào)器接口微機(jī)電話分機(jī)電話分機(jī)遠(yuǎn)距離傳送電路 數(shù)字信號(hào)通過(guò)

36、調(diào)制器變成模擬信號(hào)通過(guò)電話線傳送到對(duì)方,接收方通過(guò)解調(diào)器將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)接收。第54頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二(二)串行通信接口總線標(biāo)準(zhǔn) 測(cè)控系統(tǒng)中,計(jì)算機(jī)通信主要采用異步串行通信方式,常用的異步總線標(biāo)準(zhǔn)有三種:RS-232(RS-232A RS-232B RS-232C)RS-449 (RS422 RS423 RS485)20mA電流環(huán) 這里重點(diǎn)介紹RS-232 RS-232C:速率:20Kbit/S, 最大通信距離 : 15m RS422: 10Mbit/s, : 300m 90Kbit/s, :1200m第55頁(yè),共89頁(yè),2022年,5月20日,2

37、點(diǎn)45分,星期二抗干擾能力 采用標(biāo)準(zhǔn)的通信接口,本身具有一定的抗干擾能力,但是工業(yè)現(xiàn)場(chǎng)的情況往往很惡劣,因而要根據(jù)具體情況進(jìn)行選擇。 RS232C:一般場(chǎng)合 RS422: 共模信號(hào)比較強(qiáng) 光纖: 電磁干擾較強(qiáng)第56頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二(三)RS232C 美國(guó)電子工業(yè)協(xié)會(huì)(EIA)公布的一種異步通信標(biāo)準(zhǔn)。 RS232C標(biāo)準(zhǔn)是:設(shè)備之間通信的距離不大于15米最大傳輸速率20Kb/S采用負(fù)邏輯:“1” 5V 15V “0” +5V + 15V不帶負(fù)載時(shí)輸出電平:25V +25V輸出短路電流: 0.5A最大負(fù)載電容: 2500pF 當(dāng)計(jì)算機(jī)采用RS232標(biāo)準(zhǔn)時(shí)必須通

38、過(guò)電平,MAX232 是EIA和TTL電平轉(zhuǎn)換芯片。內(nèi)部具有電壓提升電路,并有兩路接收器和發(fā)送器。其連線和引腳如圖第57頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 TTL電平可以由專(zhuān)用集成電路轉(zhuǎn)換成RS232C標(biāo)準(zhǔn); 如: MC1488 或 75188 TTL RS232C 從MC1489 或 75189 RS232C TTL 由于MC1488需要采用12V電源,一般在單片機(jī)通信中大量使用的是只需要+5V電源、具有發(fā)送和接收的一體化芯片,如:MAX232、ICL232、ADM202等。第58頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 MCS51之間的雙機(jī)通信 RXD

39、 TXD GNDTXDGND8xx518xx51RXDMCS51和PC機(jī)的雙機(jī)通信MCS51和PC機(jī)的雙機(jī)通信見(jiàn)下圖第59頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.2.2 單片機(jī)串行口的結(jié)構(gòu)與工作原理 51單片機(jī)有一個(gè)可編程的全雙工異串行通信接口,它可作UART用,也可作同步移位寄存器,其幀格式可有8位、10位或l l位,并能設(shè)置各種波特率,給使用者帶來(lái)很大的靈活性。 一、串行口的內(nèi)部結(jié)構(gòu) 第60頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二發(fā)送SBUF(99H)門(mén)88 圖8.7 串行口結(jié)構(gòu)框圖 RXD(P3.0)TXD(P3.1)中斷接收SBUF(99H)定時(shí)器T

40、1fosc2分頻器發(fā)送控制器接收控制器串寄行存控器制 SCON (98H)輸入移位寄存器TIRI內(nèi) 部 總 線第61頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 5 l 單片機(jī)通過(guò)引腳RXD(P3.0)串行數(shù)據(jù)接收端)和引腳TXD(P3.l)串行數(shù)據(jù)發(fā)送端)與外界進(jìn)行通信。 圖中有兩個(gè)物理上獨(dú)立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H,可同時(shí)發(fā)送、接收數(shù)據(jù)。 發(fā)送緩沖器只能寫(xiě)入,不能讀出,CPU寫(xiě)SBUF,一方面修改發(fā)送寄存器,同時(shí)啟動(dòng)數(shù)據(jù)串行發(fā)送; 接收緩沖器只能讀出、不能寫(xiě)入。讀SBUF,就是讀接收寄存器。第62頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二

41、串行控制寄存器SCON 用以存放串行口的控制和狀態(tài)信息。8XX51串行口正是通過(guò)對(duì)上述專(zhuān)用寄存器的設(shè)置、檢測(cè)與讀取來(lái)管理串行通信的。特殊功能寄存器PCON的最高位SMOD為串行口波特率的倍增控制位。波特率發(fā)生器 可以有兩種選擇:1. 定時(shí)器T1作波特率發(fā)生器,改變計(jì)數(shù)初值就可以改變串行通信的速率,稱(chēng)為可變波特率。2. 以?xún)?nèi)部時(shí)鐘的分頻器作波特率發(fā)生器,因內(nèi)部時(shí)鐘頻率一定,稱(chēng)為固定波特率第63頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二shiftMOV A , SBUF串行數(shù)據(jù)CPUCPU SBUF SBUFshiftMOV SBUF , A并行數(shù)據(jù)并行數(shù)據(jù)甲方(發(fā)送)乙方 (接收)

42、 甲方發(fā)送時(shí),CPU執(zhí)行指令 MOV SBUF , A 啟動(dòng)了發(fā)送過(guò)程,數(shù)據(jù)并行送入SBUF ,在發(fā)送時(shí)鐘 shift的控制下由低位到高位一位一位發(fā)送,乙方在接收時(shí)鐘 shift 的控制下由低位到高位順序進(jìn)入移位寄存器SBUF ,甲方一幀數(shù)據(jù)發(fā)送完畢,置位發(fā)送中斷標(biāo)志.二、串行通信的傳送過(guò)程用下面簡(jiǎn)圖說(shuō)明第64頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二TI,該位可作為查詢(xún)標(biāo)志(或引起中斷),CPU可再發(fā)送下一幀數(shù)據(jù) 。乙方一幀數(shù)據(jù)到齊即接收緩沖器滿,置位接收中斷標(biāo)志RI,該位可作為查詢(xún)標(biāo)志(或引起接收中斷),通過(guò)MOV A ,SBUF CPU將這幀數(shù)據(jù)并行讀入。由上述可知:甲、乙

43、方的移位時(shí)鐘頻率應(yīng)相同,即應(yīng)具有相同的波特率,否則會(huì)造成數(shù)據(jù)丟失。發(fā)送方是先發(fā)數(shù)據(jù)再查標(biāo)志,接收方是先查標(biāo)志再收數(shù)據(jù)。第65頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 51單片機(jī)串行口是一個(gè)可編程接口,對(duì)它的編程只用兩個(gè)控制字分別寫(xiě)入特殊功能寄存器: 串行口控制寄存器SCON(98H) 電源控制寄存器PCON(97H) 三、串行口的控制寄存器 3.CPU通過(guò)指令和SBUF并行交換數(shù)據(jù),并不能控制數(shù)據(jù)的串行移位,它只能查詢(xún)標(biāo)志位來(lái)確定數(shù)據(jù)的移位是否完成。第66頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.2.3 串行口的控制寄存器 5.2.3.1 串行口的控制寄存器S

44、CON 8XX51串行通信的方式選擇 ,接受和發(fā)送控制及串行口的標(biāo)志均由專(zhuān)用寄存器SCON控制和指示,其格式如下:SM0SM1 SM2RENTB8RB8TIRI方式選擇多機(jī)控制串行接收允許/ 禁止欲發(fā)的第九位收到的第九位發(fā)送中斷有/無(wú)接收中斷有/無(wú)第67頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二SM0.SM1:串行口工作方式控制位。 0 0-方式0, 0 1-方式1 1 0-方式2, 1 1-方式3REN:串行接收允許位。 0-禁止接收, 1-允許接收TB8: 在方式2,3中,TB8是發(fā)送機(jī)要發(fā)送的第9位數(shù)據(jù)。RB8:在方式2,3中,RB8是接受機(jī)收到的第9位數(shù)據(jù), 該數(shù)據(jù)來(lái)自發(fā)

45、送機(jī)的TB8。TI: 發(fā)送中斷標(biāo)志位。發(fā)送前必須用軟件清零,發(fā) 送過(guò)程中TI保持零電平,發(fā)送完一幀數(shù)據(jù)后,由 硬件置 “1”,如果再發(fā)送,必須用軟件再清零。第68頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二RI: 接收中斷標(biāo)志位。接收前,必須用軟件清零,接 收過(guò)程中RI保持零電平,接收完一幀數(shù)據(jù)后由 片內(nèi)硬件自動(dòng)置“1”。如果再接收必須用軟件清 零。SM2:多機(jī)通信控制位,僅用于方式2和方式3。 當(dāng)選擇方式2或方式3時(shí),發(fā)送機(jī)設(shè)置SM2=1, 以發(fā)送第九位TB8為1作為地址幀尋找從機(jī),以 TB8為0作為數(shù)據(jù)幀進(jìn)行通信,從機(jī)初始化時(shí)設(shè) 置SM2=1,若接收到的第九位數(shù)據(jù)RB8=0,不

46、置位 RI,即不引起接收中斷,亦既不接收數(shù)據(jù)幀,繼續(xù) 監(jiān)聽(tīng),如接收到的RB8=1,置位RI,引起接收中斷, 中斷程序中判斷所接收的地址幀和本機(jī)的地址。第69頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二是否符合,若不符合,維持SM2=1,繼續(xù)監(jiān)聽(tīng),若符合,則 清SM2,接收對(duì)放發(fā)來(lái)的后續(xù)信息. 綜上所述,SM2的作用為:在方式2,3中,發(fā)送機(jī)SM2=1(程序設(shè)置). 接收機(jī)SM2=1,若RB8=1,激活RI,引起接收中斷. RB8=0,不激活RI,不引起接斷. SM2=0,無(wú)論RB8=1還是RB8=0均激活RI引起 接收中斷。在方式1中, 當(dāng)接收時(shí)SM2=1, 則只有收到有效停止位才

47、 激活RI,在方式 0 中, SM2應(yīng)置為0。第70頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 PCON的字節(jié)地址為87H,無(wú)位地址, 只能字節(jié)尋址.,初始化時(shí)SMOD=0.SMODXXXXXXXPCON87H5.2.3.2 電源控制寄存器PCON PCON的格式如下圖所示,串行通信只用其中的最高位SMODSMOD : 波特率加倍位。在計(jì)算串行方式 1、 2、 3 的波特率時(shí), SMOD 0不加倍; SMOD 1 加倍 第71頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.2.4 串行口的工作方式 根據(jù)串行通信數(shù)據(jù)格式和波特率的不同, 51系列單片機(jī)的串行通信有四種工

48、作方式,通過(guò)編程進(jìn)行選擇,各工作方式的特點(diǎn)如下:1.方式0 RXD為串行數(shù)據(jù)的發(fā)送端或接收端, TXD輸出頻率為 fosc/12的時(shí)鐘脈沖。波特率固定為fosc/12 (fosc為單片機(jī)晶振頻率)方式0的數(shù)據(jù)格式為8位,低位在前,高位在后第72頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二 移位寄位器方式多用于接口的擴(kuò)展,當(dāng)用單片機(jī)構(gòu)成系統(tǒng)時(shí),往往感到并行口不夠用,此時(shí)可通過(guò)外接串入并出移位寄存器擴(kuò)展輸出接口;通過(guò)外接并入串出移位寄存器擴(kuò)展輸入接口,方式 0 也可應(yīng)用于短距離的單片機(jī)之間的通信。2.方式1 為10位異步通信方式,即每幀數(shù)據(jù)由1個(gè)起始位 “0”.八個(gè)數(shù)據(jù)位 和1個(gè)停止位

49、“1”共10位構(gòu)成.其 中起始位和停止位在發(fā)送時(shí)是自動(dòng)插入的. 以TXD為串行數(shù)據(jù)的發(fā)送端,T1提供位時(shí)鐘,RXD 為數(shù)據(jù)的接收端,由T1提供移位時(shí)鐘,是波特率可 變方式第73頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二波特率=(2SMOD/32)(TI的溢出率) =(2SMOD/32)(fosc/12(256-x) )根據(jù)給定的波特率,可以計(jì)算T1的計(jì)數(shù)初值X。 11位異步發(fā)送/接收方式,即每幀數(shù)據(jù)由有一個(gè)起始位“0”,9個(gè)數(shù)據(jù)位和1個(gè)停止位“1”組成.發(fā)送時(shí)九個(gè)數(shù)據(jù)位,由SCON寄存器的TB8位 提供,接收到的第九位數(shù)據(jù)存放在SCON寄存器的RB8位. 第九位數(shù)據(jù)可作為檢驗(yàn)位,

50、也可用于多機(jī)通信中 識(shí)別傳送的是地址還是數(shù)據(jù)的特征位。波特率固定為(2SMOD/64)fosc.3. 方式2第74頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二4. 方式3 數(shù)據(jù)格式同方式 3,所不同的是波特率可變,計(jì)算方式同方式 1。第75頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.2.5 串行口的應(yīng)用編程串行口的波特率有兩種方式:固定波特率可變波特率注意:使用可變波特率時(shí),先確定TI的計(jì)數(shù)初值,并對(duì)TI進(jìn)行初始化。串行通信的編程方式:查詢(xún)方式:查C 是否為“1”。中斷方式:如果預(yù)先開(kāi)了中斷,當(dāng)TI、RI 為“1”,會(huì)自動(dòng)產(chǎn)生中斷。注意:兩種方式中當(dāng)發(fā)送或接受數(shù)據(jù)后都要注意 清TI 或RI 。第76頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二5.2.5.1 查詢(xún)方式查詢(xún)方式發(fā)送流程圖和接收流程圖見(jiàn)下頁(yè)第77頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二T1初始化、啟動(dòng)T1工作設(shè)定串行通信方式置發(fā)送數(shù)據(jù)塊首址數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器清TI發(fā)送數(shù)據(jù)TI1?修改地址指針和塊長(zhǎng)度計(jì)數(shù)器全部數(shù)據(jù)發(fā)送完?開(kāi)始結(jié)束YNNY查詢(xún)方式發(fā)送流程圖YNYN第78頁(yè),共89頁(yè),2022年,5月20日,2點(diǎn)45分,星期二T1初始化、啟動(dòng)T1工作設(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論