單片機(jī)計(jì)數(shù)器及定時(shí)器_第1頁(yè)
單片機(jī)計(jì)數(shù)器及定時(shí)器_第2頁(yè)
單片機(jī)計(jì)數(shù)器及定時(shí)器_第3頁(yè)
單片機(jī)計(jì)數(shù)器及定時(shí)器_第4頁(yè)
單片機(jī)計(jì)數(shù)器及定時(shí)器_第5頁(yè)
已閱讀5頁(yè),還剩52頁(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、第6章 定時(shí)器/計(jì)數(shù)器 第第6章章 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 教學(xué)目標(biāo)及要求教學(xué)目標(biāo)及要求: 1 了解單片機(jī)定時(shí)器了解單片機(jī)定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)與原理計(jì)數(shù)器的結(jié)構(gòu)與原理 2 掌握單片機(jī)的定時(shí)器掌握單片機(jī)的定時(shí)器/計(jì)數(shù)器工作方式的控制方法計(jì)數(shù)器工作方式的控制方法 主要內(nèi)容主要內(nèi)容: 1 定時(shí)器定時(shí)器/計(jì)數(shù)器概述計(jì)數(shù)器概述 2 定時(shí)器定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)器的4種工作方式種工作方式 3 定時(shí)器應(yīng)用舉例定時(shí)器應(yīng)用舉例 教學(xué)重點(diǎn)和難點(diǎn):教學(xué)重點(diǎn)和難點(diǎn): 熟悉單片機(jī)定時(shí)器熟悉單片機(jī)定時(shí)器/計(jì)數(shù)器方式計(jì)數(shù)器方式1的工作原理,掌握單片機(jī)定的工作原理,掌握單片機(jī)定 時(shí)器時(shí)器/計(jì)數(shù)器方式計(jì)數(shù)器方式2自動(dòng)賦初值的

2、特點(diǎn)。自動(dòng)賦初值的特點(diǎn)。 第6章 定時(shí)器/計(jì)數(shù)器 6.1 定時(shí)器定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)及原理計(jì)數(shù)器的結(jié)構(gòu)及原理 圖 6.1 定時(shí)器/計(jì)數(shù)器原理結(jié)構(gòu)框圖 溢出溢出 中斷中斷 工作方式工作方式 溢出溢出 第6章 定時(shí)器/計(jì)數(shù)器 減法計(jì)數(shù)器:減法計(jì)數(shù)器: N-1 0 停止停止 ( 8253) 加法計(jì)數(shù)器:加法計(jì)數(shù)器: N+1 M 溢出溢出 計(jì)數(shù)狀態(tài)計(jì)數(shù)狀態(tài): X = MN 定時(shí)狀態(tài)定時(shí)狀態(tài): X = M定時(shí)時(shí)間定時(shí)時(shí)間/T 而而 T = 12晶振頻率晶振頻率 第6章 定時(shí)器/計(jì)數(shù)器 6. 1 . 2 方式和控制寄存器方式和控制寄存器 一、一、 定時(shí)器定時(shí)器/計(jì)數(shù)器的方式寄存器計(jì)數(shù)器的方式寄存器TMOD

3、 圖 6.2 TMOD各位定義 第6章 定時(shí)器/計(jì)數(shù)器 1. M1M0工作方式控制位工作方式控制位 M1 M0 方式方式說(shuō)說(shuō) 明明 0 0013 位定時(shí)器位定時(shí)器(TH的的 8 位和位和TL的低的低 5 位)位) 0 1116 位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1 02自動(dòng)重裝入初值的自動(dòng)重裝入初值的 8 位計(jì)數(shù)器位計(jì)數(shù)器 1 13 T0 分成兩個(gè)獨(dú)立的分成兩個(gè)獨(dú)立的 8 位計(jì)數(shù)器位計(jì)數(shù)器, T1 在方式在方式 3 時(shí)停止時(shí)停止 工作工作 第6章 定時(shí)器/計(jì)數(shù)器 2. C/T 功能選擇位功能選擇位 若若C/T=1時(shí)時(shí), 為計(jì)數(shù)器方式為計(jì)數(shù)器方式; C/T = 0時(shí)時(shí), 為定時(shí)器方式。為定時(shí)器方式

4、。 3. GATE 門控標(biāo)志位門控標(biāo)志位 當(dāng)當(dāng)GATE=1時(shí)時(shí), 只有只有INT0 (或或INT1)引腳為高電平且引腳為高電平且 TR0(或或TR1 )置置 1 時(shí)時(shí), 相應(yīng)的定時(shí)器相應(yīng)的定時(shí)器 /計(jì)數(shù)器才被選通工作計(jì)數(shù)器才被選通工作, 這時(shí)可用于測(cè)量在這時(shí)可用于測(cè)量在INTx端出現(xiàn)的正脈沖的寬度。若端出現(xiàn)的正脈沖的寬度。若 GATE=0, 則只要?jiǎng)t只要 TR0 (或或 TR1)置置 1, 定時(shí)器定時(shí)器 /計(jì)數(shù)器就被選計(jì)數(shù)器就被選 通通, 而不管而不管 INT0 (或或 INT1)的電平是高還是低。的電平是高還是低。 第6章 定時(shí)器/計(jì)數(shù)器 TF0、TF1:分別是分別是T0、 T1 的溢出標(biāo)志

5、位。的溢出標(biāo)志位。 溢出時(shí)置溢出時(shí)置 1, 申請(qǐng)申請(qǐng) 中斷中斷, 在中斷響應(yīng)后自動(dòng)復(fù)在中斷響應(yīng)后自動(dòng)復(fù)0;查詢方式下用軟件清;查詢方式下用軟件清0。 TR1、TR0 分別是分別是T1、 T0 的運(yùn)行控制位。的運(yùn)行控制位。 通過(guò)軟件置通過(guò)軟件置 1 后后, 定時(shí)器定時(shí)器 /計(jì)數(shù)器才開始工作。計(jì)數(shù)器才開始工作。 二、二、 定時(shí)器定時(shí)器/計(jì)數(shù)器控制寄存器計(jì)數(shù)器控制寄存器TCON 8FH8EH8DH8CH8BH8AH89H88H TF1TR1TF0TR0XXXXXXXX 第6章 定時(shí)器/計(jì)數(shù)器 6.2 工作方式工作方式 一、一、 方式方式 0 圖圖6.3 方式 0(13位計(jì)數(shù)器) TR0 第6章 定時(shí)

6、器/計(jì)數(shù)器 二、二、 方式方式1 圖 6.4 方式 1(16位計(jì)數(shù)器) TR0 第6章 定時(shí)器/計(jì)數(shù)器 三、方式三、方式 2 圖 6.5 方式 2(初始常數(shù)自動(dòng)重裝載) TR0 第6章 定時(shí)器/計(jì)數(shù)器 四、四、 方式方式 3 圖 6.6 方式 3(兩個(gè) 8 位獨(dú)立計(jì)數(shù)器) TR0 TR1 第6章 定時(shí)器/計(jì)數(shù)器 6.3定時(shí)器定時(shí)器/計(jì)數(shù)器應(yīng)用舉例計(jì)數(shù)器應(yīng)用舉例 定時(shí)定時(shí) 1 ms的初值的初值: 因?yàn)橐驗(yàn)?機(jī)器周期機(jī)器周期=126 MHz= 2 s 所以所以 1 ms內(nèi)內(nèi)T0 需要計(jì)數(shù)需要計(jì)數(shù)N次次: N= 1 ms2 s = 500 例例 1 : 利用定時(shí)器,在利用定時(shí)器,在P1.0 引腳輸出

7、周期為引腳輸出周期為 2 ms的方波的方波, 設(shè)設(shè) 單片機(jī)晶振頻率為單片機(jī)晶振頻率為 6 MHz。 一、一、 方式方式 0 的應(yīng)用的應(yīng)用 第6章 定時(shí)器/計(jì)數(shù)器 T0 的初值的初值X為為: X=MN=8 192500=7 692=1E0CH TH0=0F0H, TL0=0CH TMOD初始化初始化: TMOD=00000000B=00H (GATE=0, C/T=0, M1=0, M0=0) TCON初始化初始化: 啟動(dòng)啟動(dòng)TR0=1 IE初始化初始化: 開放中斷開放中斷EA=1, 定時(shí)器定時(shí)器T0 中斷允許中斷允許ET0=1 11110000 01100 第6章 定時(shí)器/計(jì)數(shù)器 O1W_CO

8、N2: MOV TH0, #0F0H MOV TL0, #0CH CPL P1.0 LJMP O1W_LOOP0 OUTPUT_1MS_WAVE: MOV TH0, #0F0H MOV TL0, #0CH SETB TR0 O1W_LOOP0: JBC TF0, O1W_CON2 AJMP O1W_LOOP0 第6章 定時(shí)器/計(jì)數(shù)器 ORG 0000H LJMP START ; 復(fù)位入口復(fù)位入口 ORG 000BH LJMP T0INT ; T0中斷入口中斷入口 ORG 0030H START: MOV SP, 60H ; 初始化程序初始化程序 MOV TH0, 0F0H ; T0賦初值賦初值

9、 MOV TL0, 0CH MOV TMOD, 00H SETB TR0 ; 啟動(dòng)啟動(dòng)T0 第6章 定時(shí)器/計(jì)數(shù)器 ORG 0000H LJMP START ; 復(fù)位入口復(fù)位入口 ORG 000BH LJMP T0INT ; T0中斷入口中斷入口 ORG 0030H START: MOV SP, 60H ; 初始化程序初始化程序 MOV TH0, 0F0H ; T0賦初值賦初值 MOV TL0, 0CH MOV TMOD, 00H SETB TR0 ; 啟動(dòng)啟動(dòng)T0 第6章 定時(shí)器/計(jì)數(shù)器 SETB ET0 ; 開開T0中斷中斷 SETB EA ; 開總允許中斷開總允許中斷 MAIN: LJM

10、P MAIN ; 主程序主程序 T0INT: CPL P1.0 MOV TL0, 0CH MOV TH0, 0F0H RETI 第6章 定時(shí)器/計(jì)數(shù)器 二、二、 方式方式 1應(yīng)用應(yīng)用 例例 2: 已知某生產(chǎn)線的傳送帶上不斷地有產(chǎn)品單向傳送已知某生產(chǎn)線的傳送帶上不斷地有產(chǎn)品單向傳送, 產(chǎn)品之間有較大間隔。使用光電開關(guān)統(tǒng)計(jì)一定時(shí)間內(nèi)的產(chǎn)品產(chǎn)品之間有較大間隔。使用光電開關(guān)統(tǒng)計(jì)一定時(shí)間內(nèi)的產(chǎn)品 個(gè)數(shù)。個(gè)數(shù)。 假定紅燈亮?xí)r停止統(tǒng)計(jì)假定紅燈亮?xí)r停止統(tǒng)計(jì), 紅燈滅時(shí)才在上次統(tǒng)計(jì)結(jié)果紅燈滅時(shí)才在上次統(tǒng)計(jì)結(jié)果 的基礎(chǔ)上繼續(xù)統(tǒng)計(jì)的基礎(chǔ)上繼續(xù)統(tǒng)計(jì), 試用單片機(jī)定時(shí)器試用單片機(jī)定時(shí)器 /計(jì)數(shù)器計(jì)數(shù)器T1的方式的方式

11、1完完 成該項(xiàng)產(chǎn)品的計(jì)數(shù)任務(wù)。成該項(xiàng)產(chǎn)品的計(jì)數(shù)任務(wù)。 第6章 定時(shí)器/計(jì)數(shù)器 圖 6.7 硬件原理圖 第6章 定時(shí)器/計(jì)數(shù)器 (1) 初始化初始化: TMOD=11010000B=0D0H (GATE=1, C/T=1, M0M1=01) TCON=00H (2) T1在方式在方式1時(shí)時(shí), 溢出產(chǎn)生中斷溢出產(chǎn)生中斷, 且計(jì)數(shù)器回零且計(jì)數(shù)器回零, 故在中故在中 斷服務(wù)程序中斷服務(wù)程序中, 需用需用R0計(jì)數(shù)中斷次數(shù)計(jì)數(shù)中斷次數(shù), 以保護(hù)累積計(jì)數(shù)結(jié)果。以保護(hù)累積計(jì)數(shù)結(jié)果。 第6章 定時(shí)器/計(jì)數(shù)器 ORG 0000H LJMP START ORG 0030H START: MOV TMOD,#0D0H

12、 MOV TH1,#0 MOV TL1,#0 SETB TR1 MAIN_LOOP: LCALL DISPLAY LJMP MAIN_LOOP ;- 第6章 定時(shí)器/計(jì)數(shù)器 DISPLAY: AJMP START ; 復(fù)位入口復(fù)位入口 ORG 001BH AJMP T1INT ; T1中斷入口中斷入口 ORG 0100H START: MOV SP, 60H ; 初始化程序初始化程序 MOV TCON, 00H MOV TMOD, 0D0H MOV TH1, 00H 第6章 定時(shí)器/計(jì)數(shù)器 MOV TL1, 00H MOV R0, 00H ; 清中斷次數(shù)計(jì)數(shù)單元清中斷次數(shù)計(jì)數(shù)單元 MOV P3

13、, 28H ; 設(shè)置設(shè)置P3.5第二功能第二功能 SETB TR1 ; 啟動(dòng)啟動(dòng)T1 SETB ET1 ; 開開T1中斷中斷 SETB EA ; 開總中斷開總中斷 MAIN: ACALL DISP ; 主程序主程序, 調(diào)顯示子程序調(diào)顯示子程序 ORG 0A00H T1INT: INC R0 ; 中斷服務(wù)子程序中斷服務(wù)子程序 RETI DISP: ; 顯示子程序顯示子程序 RET 第6章 定時(shí)器/計(jì)數(shù)器 三、三、 方式方式 2 應(yīng)用應(yīng)用 方式 2 是定時(shí)器自動(dòng)重裝載的操作方式, 在這種方式下, 定時(shí)器 0 和 1 的工作是相同的, 它的工作過(guò)程與方式 0、 方式 1 基本相同, 只不過(guò)在溢出的同

14、時(shí), 將 8 位二進(jìn)制初值 自動(dòng)重裝載, 即在中斷服務(wù)子程序中, 不需要編程送初值, 這 里不再舉例。定時(shí)器 T1 工作在方式 2 時(shí), 可直接用作串行 口波特率發(fā)生器, 第6章 定時(shí)器/計(jì)數(shù)器 例:用定時(shí)器1方式2計(jì)數(shù),要求每計(jì)滿100次, 將P1.0口端取反。 解:外部計(jì)數(shù)信號(hào)由T1腳引入,每跳變一 次計(jì)數(shù)器加1,由程序查詢TF1。方式2具 有初值自動(dòng)重裝功能,初始化后不必再置 初值。 初值X= 28100=156D=9CH TH1=TL1=9CH TMOD=01100000B=60H 第6章 定時(shí)器/計(jì)數(shù)器 MOV TMOD , #60H ;設(shè)置T1為方式2計(jì)數(shù) MOV TH1 , #9

15、CH ;賦初值 MOV TL1 , #9CH SETB TR1 ; 啟動(dòng)T1 SETB ET1 ; 開T1中斷 SETB EA ; 開總中斷 DEL: JBC TF1 , REP ;查詢計(jì)數(shù)溢出 LJMP DEL REP: CPL P1.0 ;輸出 CLR TF1 ;清TF1標(biāo)志 LJMP DEL 第6章 定時(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è)用戶系統(tǒng)中已使用了兩個(gè)外部中斷源, 并置定時(shí)器 T1 于方式2, 作串行口

16、波特率發(fā)生器用, 現(xiàn)要求再 增加一個(gè)外部中斷源, 并由 P1.0 口輸出一個(gè) 5K Hz的方波 (假設(shè)晶振頻率為 6 MHz)。 第6章 定時(shí)器/計(jì)數(shù)器 在不增加其它硬件開銷時(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ā)

17、生一次變化。則TH0中的初始值 X=MN=256 100/2=206。 下面是有關(guān)的程序。 第6章 定時(shí)器/計(jì)數(shù)器 MOV TL0, 0FFH MOV TH0, 206 MOV TL1, BAUD ; BAUD根據(jù)波特率要求設(shè)置常數(shù) MOV TH1, BAUD MOV TMOD, 27H ; 置T0工作方式3 ; TL0工作于計(jì)數(shù)器方式 MOV TCON, 55H ; 啟動(dòng)定時(shí)器 T0、 T1, 置外部中斷 0 和 1 ; 為邊沿激活方式 MOV IE, 9FH ; 開放全部中斷 第6章 定時(shí)器/計(jì)數(shù)器 TL0 溢出中斷服務(wù)程序(由 000BH單元轉(zhuǎn)來(lái)): TL0INT: MOV TL0, 0

18、FFH ; 外部引腳 T0 引起中斷處理程 序 RETI TH0 溢出中斷服務(wù)程序(由 001BH轉(zhuǎn)來(lái)): TH0INT: MOVTH0, 206 CPL P1.0 RETI 此處串行口中斷服務(wù)程序、 外中斷 0和外中斷 1的中斷服 務(wù)程序沒有列出。 第6章 定時(shí)器/計(jì)數(shù)器 6.5 MCS - 51單片機(jī)的串行接口單片機(jī)的串行接口 6.5.1 串行通信的基本概念串行通信的基本概念 (1) 同步方式是將一大批數(shù)據(jù)分成幾個(gè)數(shù)據(jù)塊, 數(shù)據(jù)塊之 間用同步字符予以隔開, 而傳輸?shù)母魑欢M(jìn)制碼之間都沒有 間隔。 其基本特征是發(fā)送與接收時(shí)鐘始終保持嚴(yán)格同步。 (2)異步通信是按幀傳送數(shù)據(jù), 它利用每一幀的起

19、、止信 號(hào)來(lái)建立發(fā)送與接收之間的同步,每幀內(nèi)部各位均采用固定的 時(shí)間間隔, 但幀與幀之間的時(shí)間間隔是隨機(jī)的。其基本特征 是每個(gè)字符必須用起始位和停止位作為字符開始和結(jié)束的標(biāo) 志, 它是以字符為單位一個(gè)個(gè)地發(fā)送和接收的。 第6章 定時(shí)器/計(jì)數(shù)器 6.5.2 與串行口有關(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寫 入 SBUF的時(shí)候,51 系列單片機(jī)沒有專門的啟動(dòng)發(fā)送狀態(tài)的指 令

20、; 接收時(shí), 就是讀取SBUF的過(guò)程, 接收寄存器是雙緩沖的, 以 避免在接收下一幀數(shù)據(jù)之前, CPU未能及時(shí)響應(yīng)接收器的中斷, 沒有把上一幀數(shù)據(jù)讀走, 而產(chǎn)生兩幀數(shù)據(jù)重疊的問題。 第6章 定時(shí)器/計(jì)數(shù)器 2. 串行口控制寄存器串行口控制寄存器SCON SCON用于控制和監(jiān)視串行口的工作狀態(tài), 其各位定義如 圖 5.3 所示。相應(yīng)的各位功能介紹如下: SM0、SM1: 用于定義串行口的操作模式, 兩個(gè)選擇位對(duì) 應(yīng) 4 種模式,見表6.2。其中fOSC是振蕩器頻率, UART為通用 異步接收和發(fā)送器的英文縮寫。 SM2: 多機(jī)通信時(shí)的接收允許標(biāo)志位。 在模式 2 和 3 中, 若SM2 = 1,

21、 且接收到的第 9 位數(shù)據(jù)(RB8)是 0, 則接收中斷 標(biāo)志(RI)不會(huì)被激活。在模式1中, 若SM2=1 且沒有接收到 有效的停止位, 則 RI不會(huì)被激活。 在模式 0 中, SM2 必須是 0。 第6章 定時(shí)器/計(jì)數(shù)器 表6.2 串行口操作模式選擇 SM0 SM1 模式 功 能 波特率 0 0 0 1 1 0 1 1 0 1 0 1 同步移位寄存器 8位UART 9位UART 9位UART fOSC/12 可變(T1溢出率) fOSC/64 或fOSC/32 可變(T1溢出率) 第6章 定時(shí)器/計(jì)數(shù)器 3. 電源控制寄存器電源控制寄存器PCON 特殊功能寄存器PCON中, 只有一位(最高

22、位)SMOD 與串行口的工作有關(guān), 該位是串行口波特率系數(shù)的控制位: SMOD=1 時(shí), 波特率加倍, 否則不加倍。 PCON的地址為 87H, 不可位尋址, 因此初始化時(shí)需要字 節(jié)傳送。 第6章 定時(shí)器/計(jì)數(shù)器 6.5.3 串行口的串行口的 4 種工作模式種工作模式 模式模式 0 (1) 模式模式 0 輸出狀態(tài)。輸出狀態(tài)。 圖 6.8 外接移位寄存器輸出 第6章 定時(shí)器/計(jì)數(shù)器 (2) 模式 0 輸入狀態(tài)。 圖6.9 外接移位寄存器輸入 第6章 定時(shí)器/計(jì)數(shù)器 2. 模式模式 1 串行口工作于模式 1 時(shí), 為波特率可變的 8 位異步通信接 口。數(shù)據(jù)位由 P3.0 (RXD)端接收, 由P3

23、.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章 定時(shí)器/計(jì)數(shù)器 (2) 模式 1 接收過(guò)程。 用軟件清除 RI后

24、, 當(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。 第6章 定時(shí)器/計(jì)數(shù)器 3. 模式模式 2 和模式和模式 3。 串行口工作

25、于模式 2 和模式 3 時(shí), 被定義為 9 位異步通 信接口。 它們的每幀數(shù)據(jù)結(jié)構(gòu)是 11 位的: 最低位是起始位 (0), 其后是 8 位數(shù)據(jù)位(低位在先), 第 10 位是用戶定義 位(SCON中的 TB8或 RB8), 最后一位是停止位(1)。模 式 2 和模式3 工作原理相似, 唯一的差別是模式 2 的波特率 是固定的, 即為 f / 32或 fOSC / 64; 而模式 3的波特率是可 變的, 與定時(shí)器 T1的溢出率有關(guān)。 第6章 定時(shí)器/計(jì)數(shù)器 (1) 模式 2和模式 3的發(fā)送過(guò)程。 發(fā)送過(guò)程是由執(zhí)行任何一條 SBUF為目的寄存器的指令來(lái)啟動(dòng) 的。 由“寫入SBUF”信號(hào)把 8位數(shù)

26、據(jù)裝入 SBUF, 同時(shí)還把 TB8 裝入發(fā)送移位寄存器的第 9 位, 并通知發(fā)送控制器要求進(jìn)行一次發(fā) 送。發(fā)送開始, 把一個(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ù)

27、 (TB8)由軟件置位或清零, 可以作為數(shù)據(jù)的奇偶校驗(yàn)位, 也可以作 為多機(jī)通信中的地址、數(shù)據(jù)標(biāo)志位。如把 TB8 作為奇偶校驗(yàn)位, 可 以在發(fā)送程序中, 在數(shù)據(jù)寫入 SBUF之前, 先將數(shù)據(jù)位寫入 TB8。 第6章 定時(shí)器/計(jì)數(shù)器 (2) 模式2和模式3接收過(guò)程。 與模式 1類似, 模式 2和模式 3接收過(guò)程始于在 RXD端 檢測(cè)到負(fù)跳變時(shí),為此, CPU以波特率 16倍的采樣速率對(duì) RXD 端不斷采樣。一檢測(cè)到負(fù)跳變, 16分頻計(jì)數(shù)器就立刻復(fù)位, 同 時(shí)把1FFH寫入輸入移位寄存器。計(jì)數(shù)器的16個(gè)狀態(tài)把一位時(shí) 間等分成16份, 在每一位的第7、8、9個(gè)狀態(tài)時(shí), 位檢測(cè)器對(duì) RXD端的值采樣

28、。如果所接收到的起始位無(wú)效(為1),則復(fù) 位接收電路, 等待另一個(gè)負(fù)跳變的到來(lái)。 若起始位有效(為 0)則起始位移入移位寄存器, 并開始接收這一幀的其余位。 當(dāng)起始位 0 移到最左面時(shí), 通知接收控制器進(jìn)行最后一次移 位。 把 8 位數(shù)據(jù)裝入接收緩沖器 SBUF, 第 9 位數(shù)據(jù)裝入 SCON中的 RB8, 并置中斷標(biāo)志RI=1。 第6章 定時(shí)器/計(jì)數(shù)器 裝入 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ù)。 兩者

29、都滿足時(shí), 第 9 位數(shù)據(jù)裝入 TB8, 前 8 位數(shù) 據(jù)裝入 SBUF。 請(qǐng)注意: 與模式 1 不同, 模式 2 和 3 中裝入 RB8 的是第 9 位數(shù)據(jù), 而不是停止位。所接收的停止位的值與SBUF、 RB8 和 RI都沒有關(guān)系, 利用這一特點(diǎn)可用于多機(jī)通信中。 第6章 定時(shí)器/計(jì)數(shù)器 6.5.4 多機(jī)通信多機(jī)通信 圖 6.10 多處理機(jī)通信系統(tǒng) 第6章 定時(shí)器/計(jì)數(shù)器 6.5.5 波特率波特率 串行口每秒鐘發(fā)送或接收的數(shù)據(jù)位數(shù)稱為波特率。 假設(shè) 發(fā)送一位數(shù)據(jù)所需時(shí)間為T, 則波特率為 1/T。 (1) 模式 0 的波特率等于單片機(jī)晶振頻率的 1/12, 即每個(gè) 機(jī)器周期接收或發(fā)送一位數(shù)

30、據(jù)。 (2) 模式 2 的波特率與電源控制器PCON的最高位SMOD 的寫入值有關(guān): 即SMOD=0, 波特率為(1/64) fOSC; SMOD=1, 波特率為(1/32) fOSC。 64 2 2 SMOD 晶振頻率的波特率模式 第6章 定時(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ù)稱為溢出率。 于是 ) 1256(1232 2 32 2 131 TH f T

31、 OSC SMOD SMOD 的溢出率的波特率或模式 第6章 定時(shí)器/計(jì)數(shù)器 表表 6.3 定時(shí)器定時(shí)器T1產(chǎn)生的常用波特率產(chǎn)生的常用波特率 第6章 定時(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(1232 2 3 TH fOSC SMOD 的波特率模式 所以 )2/32(12 2561 SMOD OSC f TH 波特率 第6章 定時(shí)器/計(jì)數(shù)器 當(dāng)SMOD=0

32、時(shí), 初值TH1=256-6106/(1 2001232/1) =243=0F3H 當(dāng)SMOD=1 時(shí), 初值TH1=256-6106/(12001232/2) =230=0E6H 第6章 定時(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 中寫入待發(fā) 送的第 9 位數(shù)據(jù)。 (3) 若選定的操作模式不是模式 0, 還需設(shè)定接收/發(fā)送的波 特率。 設(shè)定SMOD的狀態(tài), 以控制波特率是否加倍。 若選定操作模式1或3, 則應(yīng)對(duì)定時(shí)器 T1進(jìn)行初始化以設(shè)定 其溢出率。 第6章 定時(shí)器/計(jì)數(shù)器 二、二、 串行口的應(yīng)用串行口的應(yīng)用 例例1 用 8051 串行口外接 74LS165 移位寄存器擴(kuò)展8位輸 入口, 輸入數(shù)據(jù)由 8 個(gè)開關(guān)提供, 另有一個(gè)開關(guān) K提供聯(lián)絡(luò)信 號(hào)。電路示意如圖

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論