單片機(jī)課件 第六章_第1頁(yè)
單片機(jī)課件 第六章_第2頁(yè)
單片機(jī)課件 第六章_第3頁(yè)
單片機(jī)課件 第六章_第4頁(yè)
單片機(jī)課件 第六章_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口第第6章章 MCS - 51單片機(jī)內(nèi)部定時(shí)器單片機(jī)內(nèi)部定時(shí)器/ 計(jì)數(shù)器計(jì)數(shù)器 及串行接口及串行接口6.1 定時(shí)器定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)及工作原理計(jì)數(shù)器的結(jié)構(gòu)及工作原理 6.2 方式和控制寄存器方式和控制寄存器 6.3 工作方式工作方式6.4 定時(shí)器定時(shí)器/計(jì)數(shù)器應(yīng)用舉例計(jì)數(shù)器應(yīng)用舉例 6.5 MCS - 51單片機(jī)的串行接口單片機(jī)的串行接口6.6 串行口的應(yīng)用串行口的應(yīng)用 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 在工業(yè)檢測(cè)、控制中,很多場(chǎng)合都要用到計(jì)數(shù)或者定時(shí)功能。例如對(duì)外部脈沖進(jìn)行計(jì)數(shù)、產(chǎn)生精確的定時(shí)時(shí)間、作串行口的

2、波特率發(fā)聲器等。MCS51單片機(jī)內(nèi)部有兩個(gè)可編程的定時(shí)器/計(jì)數(shù)器,以滿(mǎn)足這方面的需要。它們具有 兩種工作模數(shù)(計(jì)數(shù)器模式、 定時(shí)器模式)和四種工作方式( 方式0、方式1、方式2、方式3),其控制字均在相應(yīng)的特殊功能寄存器(SFR)中,通過(guò)對(duì)它的SFR的編程,可以方便的選擇工作模數(shù)和工作方式。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 定時(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ì)滿(mǎn)時(shí)發(fā)生溢出,并從0開(kāi)始繼續(xù)計(jì)數(shù)。 加法計(jì)數(shù)器的計(jì)滿(mǎn)溢

3、出信號(hào)就是定時(shí)/計(jì)數(shù)器的輸出,該信號(hào)使TCON的某位(TF0或TF1位)置一,作為定時(shí)器/計(jì)數(shù)器的溢出中斷標(biāo)志。6.1 定時(shí)器定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)及工作原理計(jì)數(shù)器的結(jié)構(gòu)及工作原理 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口圖圖 6.1 定時(shí)器定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)框圖計(jì)數(shù)器結(jié)構(gòu)框圖 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口6.2 方式和控制寄存器方式和控制寄存器 一、一、 定時(shí)器定時(shí)器/計(jì)數(shù)器的方式寄存器計(jì)數(shù)器的方式寄存器TMOD 圖 6.2 TMOD各位定義 8位分為兩組,高四位控制T1,低4位控制T0。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口

4、對(duì)對(duì)TMOD的各個(gè)位的說(shuō)明:的各個(gè)位的說(shuō)明:GATE位:門(mén)控位。位:門(mén)控位。GATE1時(shí),T0、T1是否計(jì)數(shù)要受到外部引腳輸入電平的控制,INT0引腳控制T0,INT1引腳控制T1。可用于測(cè)量在INT0和INT1引腳出現(xiàn)的正脈沖的寬度。若GATE0,即不使能門(mén)控功能,定時(shí)計(jì)數(shù)器的運(yùn)行不受外部輸入引腳INT0、INT1的控制。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口C/T位:計(jì)數(shù)器模式和定時(shí)器模式的選擇位。位:計(jì)數(shù)器模式和定時(shí)器模式的選擇位。C/T0,為定時(shí)器模式,內(nèi)部計(jì)數(shù)器對(duì)晶振脈沖12分頻后的脈沖計(jì)數(shù),該脈沖周期等于機(jī)器周期,所以可以理解為對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)。從計(jì)數(shù)值可以求

5、得計(jì)數(shù)的時(shí)間,所以稱(chēng)為定時(shí)器模式。C/T1,為計(jì)數(shù)器模式,計(jì)數(shù)器對(duì)外部輸入引腳T0(P3.4)或T1(P3.5)的外部脈沖(負(fù)跳變)計(jì)數(shù),允許的最高計(jì)數(shù)頻率為晶振頻率的1/24。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口M1 M0:四種工作方式的選擇位:四種工作方式的選擇位 表 6.1 工作方式選擇表 M1 M0 方式方式說(shuō)說(shuō) 明明0 0013 位定時(shí)器(TH的 8 位和TL的低 5 位) 0 1116 位定時(shí)器/計(jì)數(shù)器 1 02自動(dòng)重裝入初值的 8 位計(jì)數(shù)器 1 13 T0 分成兩個(gè)獨(dú)立的 8 位計(jì)數(shù)器, T1 在方式 3 時(shí)停止工作 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器

6、/計(jì)數(shù)器及串行接口 定時(shí)器初值的確定定時(shí)器初值的確定: 加法計(jì)數(shù)器是計(jì)滿(mǎn)溢出時(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=MN 定時(shí)狀態(tài): X=M定時(shí)時(shí)間/T 而 T=12晶振頻率 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 二、二、 定時(shí)器定時(shí)器/計(jì)數(shù)器控制寄存器計(jì)數(shù)器控制寄存器TCON TF0、TF1分別是定時(shí)器/計(jì)數(shù)器T0、 T1 的溢出標(biāo)志位, 加法計(jì)數(shù)器計(jì)滿(mǎn)溢出時(shí)置 1, 申請(qǐng)中斷, 在中斷響應(yīng)后自

7、動(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。 TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口6.3 工作方式工作方式 一、一、 方式方式 0 圖圖6.3 方式 0(13位計(jì)數(shù)器) 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 在方式0下,T0和T1工作在13位的定時(shí)/計(jì)數(shù)器方式,由TH的高 8 位和TL的低

8、 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ù)。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 方式0的計(jì)數(shù)長(zhǎng)度M為2的13次方。 初值也是13位二進(jìn)制數(shù),但要注意是高8位賦值給TH0,低5位前面補(bǔ)足 3 個(gè) 0 湊成 8 位賦給TL0。 例如,如要求計(jì)數(shù)值為1000,則初值為 xM100081921000 1C18H1 1100 000 1 1000B 則賦初值時(shí),TH00E0H,TL018H。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口二、二、 方式方

9、式1 圖 6.4 方式 1(16位計(jì)數(shù)器) 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 方式1和方式0的工作原理基本相同,唯一不同是T0和T1工作在方式1時(shí)是16位位的計(jì)數(shù)/定時(shí)器。 方式1時(shí)的計(jì)數(shù)長(zhǎng)度計(jì)數(shù)長(zhǎng)度M是2的16次方。16位的初值初值直接拆成高低字節(jié),分別送入TH和TL即可。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口三、方式三、方式 2圖 6.5 方式 2(初始常數(shù)自動(dòng)重裝載) 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 工作方式0和工作方式1的最大特點(diǎn)就是計(jì)數(shù)溢出后,計(jì)數(shù)器為全0,因而循環(huán)定時(shí)或循環(huán)計(jì)數(shù)應(yīng)用時(shí)就存在反復(fù)設(shè)置初值的問(wèn)題,

10、這給程序設(shè)計(jì)帶來(lái)許多不便,同時(shí)也會(huì)影響計(jì)時(shí)精度。 工作方式2就針對(duì)這個(gè)問(wèn)題而設(shè)置,它具有自動(dòng)重裝載功能,即自動(dòng)加載計(jì)數(shù)初值,所以也稱(chēng)為自動(dòng)重加載工作方式。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 在這種工作方式中,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重新加載。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 四、四、 方式方式 3 圖 6.6 方式 3(兩個(gè) 8 位獨(dú)立計(jì)

11、數(shù)器) 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 在工作方式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)和停止。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 由于TL0既能作定時(shí)器也能作計(jì)數(shù)

12、器使用,而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í)令TR10。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口6.4 定時(shí)器定時(shí)器/計(jì)數(shù)器應(yīng)用舉例計(jì)數(shù)器應(yīng)用舉例 一、一、 方式方式 0 的應(yīng)用的應(yīng)用 例例 1 利用定時(shí)器輸出周期為 2 ms的方波, 設(shè)單片機(jī)晶振頻率為 6 MHz

13、。 選用定時(shí)器 /計(jì)數(shù)器T0 作定時(shí)器, 輸出為P1.0 引腳, 2 ms 的方波可由間隔 1 ms的高低電平相間而成, 因而只要每隔 1 ms對(duì) P1.0 取反一次即可得到這個(gè)方波。 定時(shí) 1 ms的初值: 因?yàn)?機(jī)器周期=126 MHz= 2 s所以 1 ms內(nèi)T0 需要計(jì)數(shù)N次: N= 1 ms2 s = 500 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 由此可知: 使用方式 0 的 13 位計(jì)數(shù)器即可, T0 的初值X為 X=MN=8 192500=7 692=1E0CH 但是, 因?yàn)?13 位計(jì)數(shù)器中, 低 8 位 TL0 只使用了 5 位, 其余碼均計(jì)入高 8 位

14、TH0 的初值, 則 T0 的初值調(diào)整為 TH0=0F0H, TL0=0CHTMOD初始化: TMOD=00000000B=00H (GATE=0, C/T=0, M1=0, M0=0)TCON初始化: 啟動(dòng)TR0=1 IE初始化: 開(kāi)放中斷EA=1, 定時(shí)器T0 中斷允許ET0=1 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口程序清單如下: ORG 0000H AJMP START; 復(fù)位入口 ORG 000BH AJMP TOINT ; T0中斷入口 ORG 0030HSTART: MOV SP, 60H; 初始化程序 MOV TH0, 0F0H ; T0賦初值 MOV TL

15、0, 0CH MOV TMOD, 00H SETB TR0 ; 啟動(dòng)T0 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 SETB ET0 ; 開(kāi)T0中斷 SETB EA ; 開(kāi)總允許中斷 MAIN: AJMP MAIN ; 主程序 T0INT: CPL P1.0 MOV TL0, 0CH MOV TH0, 0F0H RETI 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 二、二、 方式方式 1應(yīng)用應(yīng)用 方式 1 與方式 0 基本相同, 只是方式 1 改用了 16 位計(jì)數(shù)器。 要求定時(shí)周期較長(zhǎng)時(shí), 13 位計(jì)數(shù)器不夠用, 可改用 16 位計(jì)數(shù)器。 例例 2 已知某生產(chǎn)

16、線(xià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ù)。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口圖 6.7 硬件原理圖 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 (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ù),

17、 以保護(hù)累積計(jì)數(shù)結(jié)果。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口(3) 啟動(dòng)T1計(jì)數(shù), 開(kāi)T1中斷。 程序清單如下: ORG 0000H AJMP START ; 復(fù)位入口 ORG 001BH AJMP T1INT ; T1中斷入口 ORG 0100H START: MOV SP, 60H ; 初始化程序 MOV TCON, 00H MOV TMOD, 0D0H MOV TH1, 00H 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 MOV TL1, 00H MOV R0, 00H ; 清中斷次數(shù)計(jì)數(shù)單元 MOV P3, 28H; 設(shè)置P3.5第二功能 SETB

18、 TR1 ; 啟動(dòng)T1 SETB ET1; 開(kāi)T1中斷 SETB EA ; 開(kāi)總中斷 MAIN: ACALL DISP ; 主程序, 調(diào)顯示子程序 ORG 0A00H T1INT: INC R0 ; 中斷服務(wù)子程序 RETI DISP: ; 顯示子程序 RET 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 三、三、 方式方式 2 應(yīng)用應(yīng)用 方式 2 是定時(shí)器自動(dòng)重裝載的操作方式, 在這種方式下, 定時(shí)器 0 和 1 的工作是相同的, 它的工作過(guò)程與方式 0、 方式 1 基本相同, 只不過(guò)在溢出的同時(shí), 將 8 位二進(jìn)制初值自動(dòng)重裝載, 即在中斷服務(wù)子程序中, 不需要編程送初值,

19、這里不再舉例。定時(shí)器 T1 工作在方式 2 時(shí), 可直接用作串行口波特率發(fā)生器, 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 四、四、 方式方式 3 的應(yīng)用的應(yīng)用 定時(shí)器 T0 工作在方式 3 時(shí)是 2 個(gè) 8 位定時(shí)器 /計(jì)數(shù)器。 且TH0 借用了定時(shí)器 T1 的溢出中斷標(biāo)志TF1和運(yùn)行控制位 TR1。 例例 3 假設(shè)有一個(gè)用戶(hù)系統(tǒng)中已使用了兩個(gè)外部中斷源, 并置定時(shí)器 T1 于方式 2, 作串行口波特率發(fā)生器用, 現(xiàn)要求再增加一個(gè)外部中斷源, 并由 P1.0 口輸出一個(gè) 5K Hz的方波(假設(shè)晶振頻率為 6 MHz)。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行

20、接口 在不增加其它硬件開(kāi)銷(xiāo)時(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 輸出的 5 kHz方波。 由 P1.0 輸出 5 kHz的方波, 即每隔 100 s使 P1.0 的電平發(fā)生一次變化。則TH0中的初始值 X=MN=256100/2=206。 下面是有關(guān)的程序。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口

21、MOV TL0, 0FFH MOV TH0, 206 MOV TL1, BAUD ; BAUD根據(jù)波特率要求設(shè)置常數(shù) MOV TH1, BAUD MOV MOD, 27H ; 置T0工作方式3 ; TL0工作于計(jì)數(shù)器方式 MOVTCON, 55H ; 啟動(dòng)定時(shí)器 T0、 T1, 置外部中斷 0 和 1 ; 為邊沿激活方式MOVIE, 9FH ; 開(kāi)放全部中斷 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口TL0 溢出中斷服務(wù)程序(由 000BH單元轉(zhuǎn)來(lái)): TL0INT: MOV TL0, 0FFH ; 外部引腳 T0 引起中斷處理程序 RETITH0 溢出中斷服務(wù)程序(由 001

22、BH轉(zhuǎn)來(lái)): TH0INT: MOVTH0, 206 CPL P1.0 RETI此處串行口中斷服務(wù)程序、 外中斷 0和外中斷 1的中斷服務(wù)程序沒(méi)有列出。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口6.5 MCS - 51單片機(jī)的串行接口單片機(jī)的串行接口 6.5.1 串行通信的基本概念串行通信的基本概念 并行并行 和和 串行串行 并行通信的優(yōu)點(diǎn)是速度快,效率高,確點(diǎn)是不適合遠(yuǎn)距離通信。串行通信剛好相反。單工、半雙工單工、半雙工 和和 全雙工全雙工 單工:信息只能沿著一個(gè)方向傳播 半雙工:信息可以沿一條線(xiàn)雙向傳播,但不能同時(shí)實(shí) 現(xiàn)雙向傳播。 全雙工:使用兩條獨(dú)立的數(shù)據(jù)通道,收發(fā)可同

23、時(shí)進(jìn)行。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 同步方式和異步方式同步方式和異步方式 (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ā)送和接收的。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口6.5.2

24、與串行口有關(guān)的特殊功能寄存器與串行口有關(guān)的特殊功能寄存器 1. 數(shù)據(jù)緩沖器數(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)有專(zhuān)門(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)題。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 2. 串行口控制寄存器串

25、行口控制寄存器SCON SCON用于控制和監(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。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)

26、器/計(jì)數(shù)器及串行接口表6.2 串行口操作模式選擇 SM0 SM1 模式 功 能 波特率 0 00 11 01 10101同步移位寄存器 8位UART 9位UART 9位UART fOSC/12 可變(T1溢出率) fOSC/64 或fOSC/32 可變(T1溢出率) 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 3. 電源控制寄存器電源控制寄存器PCON 特殊功能寄存器PCON中, 只有一位(最高位)SMOD與串行口的工作有關(guān), 該位是串行口波特率系數(shù)的控制位: SMOD=1 時(shí), 波特率加倍, 否則不加倍。 PCON的地址為 87H, 不可位尋址, 因此初始化時(shí)需要字節(jié)傳送。

27、第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口6.5.3 串行口的串行口的 4 種工作模式種工作模式 1. 模式模式 0 同步移位寄存器輸入輸出模式,可外接移位寄存器,以擴(kuò)展I/O口。 (1) 模式模式 0 輸出狀態(tài)。輸出狀態(tài)。 圖 6.8 外接移位寄存器輸出 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口(2) 模式模式 0 輸入狀態(tài)。輸入狀態(tài)。當(dāng)滿(mǎn)足RI=0且REN0時(shí),就啟動(dòng)一次接收過(guò)程。 圖6.9 外接移位寄存器輸入 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 2. 模式模式 1 串行口工作于模式 1 時(shí), 為波特率可變的 8 位異步位異步通信接

28、口。數(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ò)程。 第6章 MCS - 51單片機(jī)內(nèi)

29、部定時(shí)器/計(jì)數(shù)器及串行接口 (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í)能滿(mǎn)足下列兩個(gè)條件: RI=0; 接收到的停止位為 1 或 SM2=0。 第6章

30、MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 則停止位送入RB8,8位數(shù)據(jù)進(jìn)入SBUF,并置RI1,完成一次接收過(guò)程。否則,所接收到的一楨信息將丟失,接收器復(fù)位,并從新開(kāi)始檢測(cè)負(fù)跳變,以便接收下一楨信息。 注意:接收中斷標(biāo)志RI應(yīng)由軟件清除。第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 3. 模式模式 2 和模式和模式 3。 串行口工作于模式 2 和模式 3 時(shí), 被定義為 9 位異步位異步通信接口。 它們的每幀數(shù)據(jù)結(jié)構(gòu)是 11 位的: 最低位是起始位(0), 其后是 8 位數(shù)據(jù)位(低位在先), 第 10 位是用戶(hù)定義位(SCON中的 TB8或 RB8), 最后一位是停止位

31、(1)。模式 2 和模式3 工作原理相似, 唯一的差別是模式 2 的波特率是固定的, 即為 f / 32或 fOSC / 64; 而模式 3的波特率是可變的, 與定時(shí)器 T1的溢出率有關(guān)。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 (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)第一

32、個(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。 第6章 MCS - 51

33、單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 (2) 模式2和模式3接收過(guò)程。 與模式 1類(lèi)似, 模式 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)行最

34、后一次移位。 把 8 位數(shù)據(jù)裝入接收緩沖器 SBUF, 第 9 位數(shù)據(jù)裝入SCON中的 RB8, 并置中斷標(biāo)志RI=1。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 裝入 SBUF和 RB8以及置位 RI的信號(hào)只有在產(chǎn)生最后一個(gè)移位脈沖且同滿(mǎn)足下列兩個(gè)條件, 才會(huì)產(chǎn)生: RI=0; SM2 =0 或接收到的第 9 位數(shù)據(jù)為“1”。 上述兩個(gè)條件中任一個(gè)不滿(mǎn)足, 所接收的數(shù)據(jù)幀就會(huì)丟失, 不再恢復(fù)。 兩者都滿(mǎn)足時(shí), 第 9 位數(shù)據(jù)裝入 TB8, 前 8 位數(shù)據(jù)裝入 SBUF。 請(qǐng)注意: 與模式 1 不同, 模式 2 和 3 中裝入 RB8 的是第 9 位數(shù)據(jù), 而不是停止位。所接

35、收的停止位的值與SBUF、 RB8 和 RI都沒(méi)有關(guān)系, 利用這一特點(diǎn)可用于多機(jī)通信中。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口6.5.4 多機(jī)通信多機(jī)通信 圖 6.10 多處理機(jī)通信系統(tǒng) 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 6.5.5 波特率波特率 串行口每秒鐘發(fā)送或接收的數(shù)據(jù)位數(shù)稱(chēng)為波特率。 假設(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

36、/64) fOSC; SMOD=1, 波特率為(1/32)fOSC。 6422SMOD晶振頻率的波特率模式第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 (3) 模式 1 和模式 3 的波特率除了與SMOD位有關(guān)之外, 還與定時(shí)器 T1 的溢出率有關(guān)。 定時(shí)器 T1 作為波特率發(fā)生器, 常選用定時(shí)方式 2( 8 位重裝載初值方式), 并且禁止 T1 中斷。此時(shí) TH1 從初值計(jì)數(shù)到產(chǎn)生溢出, 它每秒鐘溢出的次數(shù)稱(chēng)為溢出率。 于是 ) 1256(12322322131THfTOSCSMODSMOD的溢出率的波特率或模式第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口表表 6

37、.3 定時(shí)器定時(shí)器T1產(chǎn)生的常用波特率產(chǎn)生的常用波特率 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口 假設(shè)某MCS - 51 單片機(jī)系統(tǒng), 串行口工作于模式 3, 要求傳送波特率為1 200 Hz, 作為波特率發(fā)生器的定時(shí)器T1工作在方式 2 時(shí), 請(qǐng)求出計(jì)數(shù)初值為多少? 設(shè)單片機(jī)的振蕩頻率為6 MHz。 因?yàn)榇锌诠ぷ饔谀J?3 時(shí)的波特率為 ) 1256(123223THfOSCSMOD的波特率模式所以 )2/32(122561SMODOSCfTH波特率第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口當(dāng)SMOD=0 時(shí), 初值TH1=256-6106/(1 2001

38、232/1) =243=0F3H當(dāng)SMOD=1 時(shí), 初值TH1=256-6106/(12001232/2) =230=0E6H 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口6.6 串行口的應(yīng)用串行口的應(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è)定其溢出率。 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器及串行接口二、二、 串行口的應(yīng)用串行口的應(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 第6章 MCS - 51單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論