




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、MCS - 51單片機內(nèi)部定時器單片機內(nèi)部定時器/ 計數(shù)器計數(shù)器 及串行接口及串行接口一、一、 定時器定時器/計數(shù)器的結(jié)構(gòu)及工作原理計數(shù)器的結(jié)構(gòu)及工作原理 二、二、 方式和控制寄存器方式和控制寄存器 三、三、 工作方式工作方式四、四、 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 五、五、 MCS - 51單片機的串行接口單片機的串行接口六、六、 串行口的應(yīng)用串行口的應(yīng)用 在工業(yè)檢測、控制中,很多場合都要用到計數(shù)或者定時功能。例如對外部脈沖進行計數(shù)、產(chǎn)生精確的定時時間、作串行口的波特率發(fā)聲器等。MCS51單片機內(nèi)部有兩個可編程的定時器/計數(shù)器,以滿足這方面的需要。它們具有 兩種工作模數(shù)(計數(shù)器模
2、式、 定時器模式)和四種工作方式( 方式0、方式1、方式2、方式3),其控制字均在相應(yīng)的特殊功能寄存器(SFR)中,通過對它的SFR的編程,可以方便的選擇工作模數(shù)和工作方式。 定時器/計數(shù)器: Timer/Counter 本質(zhì)上都是加法計數(shù)器,當(dāng)對固定周期的脈沖信號計數(shù)時是定時器,對脈沖長度不確定的信號計數(shù)時是計數(shù)器。 每接收到一個計數(shù)脈沖,加法計數(shù)器的值就加一,當(dāng)計滿時發(fā)生溢出,并從0開始繼續(xù)計數(shù)。 加法計數(shù)器的計滿溢出信號就是定時/計數(shù)器的輸出,該信號使TCON的某位(TF0或TF1位)置一,作為定時器/計數(shù)器的溢出中斷標(biāo)志。6.1 定時器定時器/計數(shù)器的結(jié)構(gòu)及工作原理計數(shù)器的結(jié)構(gòu)及工作原
3、理 圖圖 6.1 定時器定時器/計數(shù)器結(jié)構(gòu)框圖計數(shù)器結(jié)構(gòu)框圖 6.2 方式和控制寄存器方式和控制寄存器 一、一、 定時器定時器/計數(shù)器的方式寄存器計數(shù)器的方式寄存器TMOD 圖 6.2 TMOD各位定義 8位分為兩組,高四位控制T1,低4位控制T0。對對TMOD的各個位的說明:的各個位的說明:GATE位:門控位。位:門控位。GATE1時,T0、T1是否計數(shù)要受到外部引腳輸入電平的控制,INT0引腳控制T0,INT1引腳控制T1??捎糜跍y量在INT0和INT1引腳出現(xiàn)的正脈沖的寬度。若GATE0,即不使能門控功能,定時計數(shù)器的運行不受外部輸入引腳INT0、INT1的控制。C/T位:計數(shù)器模式和定
4、時器模式的選擇位。位:計數(shù)器模式和定時器模式的選擇位。C/T0,為定時器模式,內(nèi)部計數(shù)器對晶振脈沖12分頻后的脈沖計數(shù),該脈沖周期等于機器周期,所以可以理解為對機器周期進行計數(shù)。從計數(shù)值可以求得計數(shù)的時間,所以稱為定時器模式。C/T1,為計數(shù)器模式,計數(shù)器對外部輸入引腳T0(P3.4)或T1(P3.5)的外部脈沖(負(fù)跳變)計數(shù),允許的最高計數(shù)頻率為晶振頻率的1/24。M1 M0:四種工作方式的選擇位:四種工作方式的選擇位 表 6.1 工作方式選擇表 M1 M0 方式方式說說 明明0 0013 位定時器(TH的 8 位和TL的低 5 位) 0 1116 位定時器/計數(shù)器 1 02自動重裝入初值的
5、 8 位計數(shù)器 1 13 T0 分成兩個獨立的 8 位計數(shù)器, T1 在方式 3 時停止工作 定時器初值的確定定時器初值的確定: 加法計數(shù)器是計滿溢出時才申請中斷, 所以在給定時器/計數(shù)器賦初值時, 不能直接輸入所需的計數(shù)值, 而應(yīng)輸入的是計數(shù)器計數(shù)的最大值與這一計數(shù)值的差值, 設(shè)最大值為 M, 計數(shù)值為 N, 初值為 X, 則 X的計算方法如下: 計數(shù)狀態(tài): X=MN 定時狀態(tài): X=M定時時間/T 而 T=12晶振頻率 二、二、 定時器定時器/計數(shù)器控制寄存器計數(shù)器控制寄存器TCON TF0、TF1分別是定時器/計數(shù)器T0、 T1 的溢出標(biāo)志位, 加法計數(shù)器計滿溢出時置 1, 申請中斷,
6、在中斷響應(yīng)后自動復(fù) 0。TF產(chǎn)生的中斷申請是否被接受, 還需要由中斷是否開放來決定。 TR1、TR0 分別是定時器 /計數(shù)器T1、 T0 的運行控制位, 通過軟件置 1 后, 定時器 /計數(shù)器才開始工作, 在系統(tǒng)復(fù)位時被清 0。 TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT06.3 工作方式工作方式 一、一、 方式方式 0 圖圖6.3 方式 0(13位計數(shù)器) 在方式0下,T0和T1工作在13位的定時/計數(shù)器方式,由TH的高 8 位和TL的低 5 位組成。 當(dāng)T0的13位計數(shù)器加到全部為 1 以后,再加1就產(chǎn)生溢出,這時置TCON的TF0為 1
7、 ,同時把計數(shù)器全部變 0 ,然后從 0 開始繼續(xù)計數(shù)。 方式0的計數(shù)長度M為2的13次方。 初值也是13位二進制數(shù),但要注意是高8位賦值給TH0,低5位前面補足 3 個 0 湊成 8 位賦給TL0。 例如,如要求計數(shù)值為1000,則初值為 xM100081921000 1C18H1 1100 000 1 1000B 則賦初值時,TH00E0H,TL018H。二、二、 方式方式1 圖 6.4 方式 1(16位計數(shù)器) 方式1和方式0的工作原理基本相同,唯一不同是T0和T1工作在方式1時是16位位的計數(shù)/定時器。 方式1時的計數(shù)長度計數(shù)長度M是2的16次方。16位的初值初值直接拆成高低字節(jié),分別
8、送入TH和TL即可。三、方式三、方式 2圖 6.5 方式 2(初始常數(shù)自動重裝載) 工作方式0和工作方式1的最大特點就是計數(shù)溢出后,計數(shù)器為全0,因而循環(huán)定時或循環(huán)計數(shù)應(yīng)用時就存在反復(fù)設(shè)置初值的問題,這給程序設(shè)計帶來許多不便,同時也會影響計時精度。 工作方式2就針對這個問題而設(shè)置,它具有自動重裝載功能,即自動加載計數(shù)初值,所以也稱為自動重加載工作方式。 在這種工作方式中,16位計數(shù)器分為兩部分,即以TL0為計數(shù)器,以TH0作為預(yù)置寄存器,初始化時把計數(shù)初值分別加載至TL0和TH0中,當(dāng)計數(shù)溢出時,不再象方式0和方式1那樣需要“人工干預(yù)”,由軟件重新賦值,而是由預(yù)置寄存器TH以硬件方法自動給計數(shù)
9、器TL0重新加載。 四、四、 方式方式 3 圖 6.6 方式 3(兩個 8 位獨立計數(shù)器) 在工作方式3模式下,定時/計數(shù)器0被拆成兩個獨立的8位計數(shù)器TL0和TH0。其中TL0既可以作計數(shù)器使用,也可以作為定時器使用,定時/計數(shù)器0的各控制位和引腳信號全歸它使用。其功能和操作與方式0或方式1完全相同。TH0就沒有那么多“資源”可利用了,只能作為簡單的定時器使用,而且由于定時/計數(shù)器0的控制位已被TL0占用,因此只能借用定時/計數(shù)器1的控制位TR1和TF1,也就是以計數(shù)溢出去置位TF1,TR1則負(fù)責(zé)控制TH0定時的啟動和停止。 由于TL0既能作定時器也能作計數(shù)器使用,而TH0只能作定時器使用而
10、不能作計數(shù)器使用,因此在方式3模式下,定時/計數(shù)器0可以構(gòu)成二個定時器或者一個定時器和一個計數(shù)器。 如果定時/計數(shù)器0工作于工作方式3,那么定時/計數(shù)器1的工作方式就不可避免受到一定的限制,因為自己的一些控制位已被定時/計數(shù)器借用,只能工作在方式0、方式1或方式2下,如果設(shè)置T1工作在方式3,則T1停止工作,相當(dāng)于其他方式時令TR10。6.4 定時器定時器/計數(shù)器應(yīng)用舉例計數(shù)器應(yīng)用舉例 一、一、 方式方式 0 的應(yīng)用的應(yīng)用 例例 1 利用定時器輸出周期為 2 ms的方波, 設(shè)單片機晶振頻率為 6 MHz。 選用定時器 /計數(shù)器T0 作定時器, 輸出為P1.0 引腳, 2 ms 的方波可由間隔
11、1 ms的高低電平相間而成, 因而只要每隔 1 ms對 P1.0 取反一次即可得到這個方波。 定時 1 ms的初值: 因為 機器周期=126 MHz= 2 s所以 1 ms內(nèi)T0 需要計數(shù)N次: N= 1 ms2 s = 500 由此可知: 使用方式 0 的 13 位計數(shù)器即可, T0 的初值X為 X=MN=8 192500=7 692=1E0CH 但是, 因為 13 位計數(shù)器中, 低 8 位 TL0 只使用了 5 位, 其余碼均計入高 8 位TH0 的初值, 則 T0 的初值調(diào)整為 TH0=0F0H, TL0=0CHTMOD初始化: TMOD=00000000B=00H (GATE=0, C
12、/T=0, M1=0, M0=0)TCON初始化: 啟動TR0=1 IE初始化: 開放中斷EA=1, 定時器T0 中斷允許ET0=1 程序清單如下: ORG 0000H AJMP START; 復(fù)位入口 ORG 000BH AJMP TOINT ; T0中斷入口 ORG 0030HSTART: MOV SP, 60H; 初始化程序 MOV TH0, 0F0H ; T0賦初值 MOV TL0, 0CH MOV TMOD, 00H SETB TR0 ; 啟動T0 SETB ET0 ; 開T0中斷 SETB EA ; 開總允許中斷 MAIN: AJMP MAIN ; 主程序 T0INT: CPL P
13、1.0 MOV TL0, 0CH MOV TH0, 0F0H RETI 二、二、 方式方式 1應(yīng)用應(yīng)用 方式 1 與方式 0 基本相同, 只是方式 1 改用了 16 位計數(shù)器。 要求定時周期較長時, 13 位計數(shù)器不夠用, 可改用 16 位計數(shù)器。 例例 2 已知某生產(chǎn)線的傳送帶上不斷地有產(chǎn)品單向傳送, 產(chǎn)品之間有較大間隔。使用光電開關(guān)統(tǒng)計一定時間內(nèi)的產(chǎn)品個數(shù)。 假定紅燈亮?xí)r停止統(tǒng)計, 紅燈滅時才在上次統(tǒng)計結(jié)果的基礎(chǔ)上繼續(xù)統(tǒng)計, 試用單片機定時器 /計數(shù)器T1的方式 1完成該項產(chǎn)品的計數(shù)任務(wù)。 圖 6.7 硬件原理圖 (1) 初始化: TMOD=11010000B=0D0H (GATE=1,
14、C/T=1, M0M1=01) TCON=00H (2) T1在方式1時, 溢出產(chǎn)生中斷, 且計數(shù)器回零, 故在中斷服務(wù)程序中, 需用R0計數(shù)中斷次數(shù), 以保護累積計數(shù)結(jié)果。 (3) 啟動T1計數(shù), 開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 MOV TL1, 00H MOV R0, 00H ; 清中斷次數(shù)計數(shù)單元 MOV P3, 28H
15、; 設(shè)置P3.5第二功能 SETB TR1 ; 啟動T1 SETB ET1; 開T1中斷 SETB EA ; 開總中斷 MAIN: ACALL DISP ; 主程序, 調(diào)顯示子程序 ORG 0A00H T1INT: INC R0 ; 中斷服務(wù)子程序 RETI DISP: ; 顯示子程序 RET 三、三、 方式方式 2 應(yīng)用應(yīng)用 方式 2 是定時器自動重裝載的操作方式, 在這種方式下, 定時器 0 和 1 的工作是相同的, 它的工作過程與方式 0、 方式 1 基本相同, 只不過在溢出的同時, 將 8 位二進制初值自動重裝載, 即在中斷服務(wù)子程序中, 不需要編程送初值, 這里不再舉例。定時器 T1
16、 工作在方式 2 時, 可直接用作串行口波特率發(fā)生器, 四、四、 方式方式 3 的應(yīng)用的應(yīng)用 定時器 T0 工作在方式 3 時是 2 個 8 位定時器 /計數(shù)器。 且TH0 借用了定時器 T1 的溢出中斷標(biāo)志TF1和運行控制位 TR1。 例例 3 假設(shè)有一個用戶系統(tǒng)中已使用了兩個外部中斷源, 并置定時器 T1 于方式 2, 作串行口波特率發(fā)生器用, 現(xiàn)要求再增加一個外部中斷源, 并由 P1.0 口輸出一個 5K Hz的方波(假設(shè)晶振頻率為 6 MHz)。 在不增加其它硬件開銷時, 可把定時器/計數(shù)器 T0 置于工作方式 3, 利用外部引腳 T0端作附加的外部中斷輸入端, 把 TL0 預(yù)置為 0
17、FFH, 這樣在 T0 端出現(xiàn)由 1至 0 的負(fù)跳變時, TL0 立即溢出, 申請中斷, 相當(dāng)于邊沿激活的外部中斷源。 在方式 3下, TH0 總是作 8 位定時器用, 可以靠它來控制由 P1.0 輸出的 5 kHz方波。 由 P1.0 輸出 5 kHz的方波, 即每隔 100 s使 P1.0 的電平發(fā)生一次變化。則TH0中的初始值 X=MN=256100/2=206。 下面是有關(guān)的程序。 MOV TL0, 0FFH MOV TH0, 206 MOV TL1, BAUD ; BAUD根據(jù)波特率要求設(shè)置常數(shù) MOV TH1, BAUD MOV MOD, 27H ; 置T0工作方式3 ; TL0工
18、作于計數(shù)器方式 MOVTCON, 55H ; 啟動定時器 T0、 T1, 置外部中斷 0 和 1 ; 為邊沿激活方式MOVIE, 9FH ; 開放全部中斷 TL0 溢出中斷服務(wù)程序(由 000BH單元轉(zhuǎn)來): TL0INT: MOV TL0, 0FFH ; 外部引腳 T0 引起中斷處理程序 RETITH0 溢出中斷服務(wù)程序(由 001BH轉(zhuǎn)來): TH0INT: MOVTH0, 206 CPL P1.0 RETI此處串行口中斷服務(wù)程序、 外中斷 0和外中斷 1的中斷服務(wù)程序沒有列出。 6.5 MCS - 51單片機的串行接口單片機的串行接口 6.5.1 串行通信的基本概念串行通信的基本概念 并
19、行并行 和和 串行串行 并行通信的優(yōu)點是速度快,效率高,確點是不適合遠(yuǎn)距離通信。串行通信剛好相反。單工、半雙工單工、半雙工 和和 全雙工全雙工 單工:信息只能沿著一個方向傳播 半雙工:信息可以沿一條線雙向傳播,但不能同時實 現(xiàn)雙向傳播。 全雙工:使用兩條獨立的數(shù)據(jù)通道,收發(fā)可同時進行。 同步方式和異步方式同步方式和異步方式 (1) 同步方式是將一大批數(shù)據(jù)分成幾個數(shù)據(jù)塊, 數(shù)據(jù)塊之間用同步字符予以隔開, 而傳輸?shù)母魑欢M制碼之間都沒有間隔。 其基本特征是發(fā)送與接收時鐘始終保持嚴(yán)格同步。 (2)異步通信是按幀傳送數(shù)據(jù), 它利用每一幀的起、止信號來建立發(fā)送與接收之間的同步,每幀內(nèi)部各位均采用固定的時
20、間間隔, 但幀與幀之間的時間間隔是隨機的。其基本特征是每個字符必須用起始位和停止位作為字符開始和結(jié)束的標(biāo)志, 它是以字符為單位一個個地發(fā)送和接收的。 6.5.2 與串行口有關(guān)的特殊功能寄存器與串行口有關(guān)的特殊功能寄存器 1. 數(shù)據(jù)緩沖器數(shù)據(jù)緩沖器SBUF 串行口緩沖器SBUF是可直接尋址的特殊功能寄存器, 其內(nèi)部RAM字節(jié)地址是99H。在物理上, 它對應(yīng)著兩個獨立的寄存器, 一個發(fā)送寄存器, 一個接收寄存器。發(fā)送時, 就是CPU寫 SBUF的時候(51 系列單片機沒有專門的啟動發(fā)送狀態(tài)的指令); 接收時, 就是讀取SBUF的過程, 接收寄存器是雙緩沖的, 以避免在接收下一幀數(shù)據(jù)之前, CPU未
21、能及時響應(yīng)接收器的中斷, 沒有把上一幀數(shù)據(jù)讀走, 而產(chǎn)生兩幀數(shù)據(jù)重疊的問題。 2. 串行口控制寄存器串行口控制寄存器SCON SCON用于控制和監(jiān)視串行口的工作狀態(tài), 其各位定義如圖 5.3 所示。相應(yīng)的各位功能介紹如下: SM0、SM1: 用于定義串行口的操作模式, 兩個選擇位對應(yīng) 4 種模式,見表6.2。其中fOSC是振蕩器頻率, UART為通用異步接收和發(fā)送器的英文縮寫。 SM2: 多機通信時的接收允許標(biāo)志位。 在模式 2 和 3 中, 若SM2 = 1, 且接收到的第 9 位數(shù)據(jù)(RB8)是 0, 則接收中斷標(biāo)志(RI)不會被激活。在模式1中, 若SM2=1 且沒有接收到有效的停止位,
22、 則 RI不會被激活。 在模式 0 中, SM2 必須是 0。 表6.2 串行口操作模式選擇 SM0 SM1 模式 功 能 波特率 0 00 11 01 10101同步移位寄存器 8位UART 9位UART 9位UART fOSC/12 可變(T1溢出率) fOSC/64 或fOSC/32 可變(T1溢出率) 3. 電源控制寄存器電源控制寄存器PCON 特殊功能寄存器PCON中, 只有一位(最高位)SMOD與串行口的工作有關(guān), 該位是串行口波特率系數(shù)的控制位: SMOD=1 時, 波特率加倍, 否則不加倍。 PCON的地址為 87H, 不可位尋址, 因此初始化時需要字節(jié)傳送。 6.5.3 串行
23、口的串行口的 4 種工作模式種工作模式 1. 模式模式 0 同步移位寄存器輸入輸出模式,可外接移位寄存器,以擴展I/O口。 (1) 模式模式 0 輸出狀態(tài)。輸出狀態(tài)。 圖 6.8 外接移位寄存器輸出 (2) 模式模式 0 輸入狀態(tài)。輸入狀態(tài)。當(dāng)滿足RI=0且REN0時,就啟動一次接收過程。 圖6.9 外接移位寄存器輸入 2. 模式模式 1 串行口工作于模式 1 時, 為波特率可變的 8 位異步位異步通信接口。數(shù)據(jù)位由 P3.0 (RXD)端接收, 由P3.1(TXD)端發(fā)送。 傳送一幀信息為 10 位: 一位起始位(0), 8 位數(shù)據(jù)位(低位在前)和一位停止位(1)。波特率是可變的, 它取決于
24、定時器 T1 的溢出速率及SMOD的狀態(tài)。 (1) 模式 1 發(fā)送過程。 用軟件清除 TI后, CPU執(zhí)行任何一條以 SBUF為目標(biāo)寄存器的指令, 就啟動發(fā)送過程。數(shù)據(jù)由 TXD引腳輸出, 此時的發(fā)送移位脈沖是由定時器 /計數(shù)器 T1 送來的溢出信號經(jīng)過 16 或 32 分頻而取得的。一幀信號發(fā)送完時, 將置位發(fā)送中斷標(biāo)志TI=1, 向CPU申請中斷, 完成一次發(fā)送過程。 (2) 模式 1 接收過程。 用軟件清除 RI后, 當(dāng)允許接收位 REN被置位 1 時, 接收器以選定波特率的 16 倍的速率采樣 RXD引腳上的電平, 即在一個數(shù)據(jù)位期間有 16 個檢測脈沖, 并在第 7、 8、9 個脈沖
25、期間采樣接收信號, 然后用三中取二的原則確定檢測值, 以抑制干擾。 并且采樣是在每個數(shù)據(jù)位的中間, 避免了信號邊沿的波形失真造成的采樣錯誤。當(dāng)檢測到有從“1”到“0”的負(fù)跳變時, 則啟動接收過程, 在接收移位脈沖的控制下, 接收完一幀信息。 當(dāng)最后一次移位脈沖產(chǎn)生時能滿足下列兩個條件: RI=0; 接收到的停止位為 1 或 SM2=0。 則停止位送入RB8,8位數(shù)據(jù)進入SBUF,并置RI1,完成一次接收過程。否則,所接收到的一楨信息將丟失,接收器復(fù)位,并從新開始檢測負(fù)跳變,以便接收下一楨信息。 注意:接收中斷標(biāo)志RI應(yīng)由軟件清除。 3. 模式模式 2 和模式和模式 3。 串行口工作于模式 2
26、和模式 3 時, 被定義為 9 位異步位異步通信接口。 它們的每幀數(shù)據(jù)結(jié)構(gòu)是 11 位的: 最低位是起始位(0), 其后是 8 位數(shù)據(jù)位(低位在先), 第 10 位是用戶定義位(SCON中的 TB8或 RB8), 最后一位是停止位(1)。模式 2 和模式3 工作原理相似, 唯一的差別是模式 2 的波特率是固定的, 即為 f / 32或 fOSC / 64; 而模式 3的波特率是可變的, 與定時器 T1的溢出率有關(guān)。 (1) 模式 2和模式 3的發(fā)送過程。 發(fā)送過程是由執(zhí)行任何一條 SBUF為目的寄存器的指令來啟動的。 由“寫入SBUF”信號把 8位數(shù)據(jù)裝入 SBUF, 同時還把 TB8 裝入發(fā)
27、送移位寄存器的第 9 位, 并通知發(fā)送控制器要求進行一次發(fā)送。發(fā)送開始, 把一個起始位(0)送到 TXD端。 移位后, 數(shù)據(jù)由移位寄存器送到TXD端。再過一位, 出現(xiàn)第一個移位脈沖。 第一次移位時, 把一個停止位“1”由控制器的停止位發(fā)生端送入移位寄存器的第 9 位。 此后, 每次移位時, 把 0 送入第 9 位。因此, 當(dāng) TB8 的內(nèi)容送到移位寄存器的輸出位置時, 其左面一位是停止位“1”, 而再往左的所有位全為“0”。 這種狀態(tài)由零檢測器檢測到后, 就通知發(fā)送控制器作最后一次移位, 然后置 TI=1, 請求申請中斷。第 9 位數(shù)據(jù)(TB8)由軟件置位或清零, 可以作為數(shù)據(jù)的奇偶校驗位,
28、也可以作為多機通信中的地址、數(shù)據(jù)標(biāo)志位。如把 TB8 作為奇偶校驗位, 可以在發(fā)送程序中, 在數(shù)據(jù)寫入 SBUF之前, 先將數(shù)據(jù)位寫入 TB8。 (2) 模式2和模式3接收過程。 與模式 1類似, 模式 2和模式 3接收過程始于在 RXD端檢測到負(fù)跳變時,為此, CPU以波特率 16倍的采樣速率對 RXD端不斷采樣。一檢測到負(fù)跳變, 16分頻計數(shù)器就立刻復(fù)位, 同時把1FFH寫入輸入移位寄存器。計數(shù)器的16個狀態(tài)把一位時間等分成16份, 在每一位的第7、8、9個狀態(tài)時, 位檢測器對 RXD端的值采樣。如果所接收到的起始位無效(為1),則復(fù)位接收電路, 等待另一個負(fù)跳變的到來。 若起始位有效(為
29、 0)則起始位移入移位寄存器, 并開始接收這一幀的其余位。 當(dāng)起始位 0 移到最左面時, 通知接收控制器進行最后一次移位。 把 8 位數(shù)據(jù)裝入接收緩沖器 SBUF, 第 9 位數(shù)據(jù)裝入SCON中的 RB8, 并置中斷標(biāo)志RI=1。 裝入 SBUF和 RB8以及置位 RI的信號只有在產(chǎn)生最后一個移位脈沖且同滿足下列兩個條件, 才會產(chǎn)生: RI=0; SM2 =0 或接收到的第 9 位數(shù)據(jù)為“1”。 上述兩個條件中任一個不滿足, 所接收的數(shù)據(jù)幀就會丟失, 不再恢復(fù)。 兩者都滿足時, 第 9 位數(shù)據(jù)裝入 TB8, 前 8 位數(shù)據(jù)裝入 SBUF。 請注意: 與模式 1 不同, 模式 2 和 3 中裝入
30、 RB8 的是第 9 位數(shù)據(jù), 而不是停止位。所接收的停止位的值與SBUF、 RB8 和 RI都沒有關(guān)系, 利用這一特點可用于多機通信中。 6.5.4 多機通信多機通信 圖 6.10 多處理機通信系統(tǒng) 6.5.5 波特率波特率 串行口每秒鐘發(fā)送或接收的數(shù)據(jù)位數(shù)稱為波特率。 假設(shè)發(fā)送一位數(shù)據(jù)所需時間為T, 則波特率為 1/T。 (1) 模式 0 的波特率等于單片機晶振頻率的 1/12, 即每個機器周期接收或發(fā)送一位數(shù)據(jù)。 (2) 模式 2 的波特率與電源控制器PCON的最高位SMOD的寫入值有關(guān): 即SMOD=0, 波特率為(1/64) fOSC; SMOD=1, 波特率為(1/32)fOSC。
31、 6422SMOD晶振頻率的波特率模式 (3) 模式 1 和模式 3 的波特率除了與SMOD位有關(guān)之外, 還與定時器 T1 的溢出率有關(guān)。 定時器 T1 作為波特率發(fā)生器, 常選用定時方式 2( 8 位重裝載初值方式), 并且禁止 T1 中斷。此時 TH1 從初值計數(shù)到產(chǎn)生溢出, 它每秒鐘溢出的次數(shù)稱為溢出率。 于是 ) 1256(12322322131THfTOSCSMODSMOD的溢出率的波特率或模式表表 6.3 定時器定時器T1產(chǎn)生的常用波特率產(chǎn)生的常用波特率 假設(shè)某MCS - 51 單片機系統(tǒng), 串行口工作于模式 3, 要求傳送波特率為1 200 Hz, 作為波特率發(fā)生器的定時器T1工
32、作在方式 2 時, 請求出計數(shù)初值為多少? 設(shè)單片機的振蕩頻率為6 MHz。 因為串行口工作于模式 3 時的波特率為 ) 1256(123223THfOSCSMOD的波特率模式所以 )2/32(122561SMODOSCfTH波特率當(dāng)SMOD=0 時, 初值TH1=256-6106/(1 2001232/1) =243=0F3H當(dāng)SMOD=1 時, 初值TH1=256-6106/(12001232/2) =230=0E6H 6.6 串行口的應(yīng)用串行口的應(yīng)用 一、一、 串行口的編程串行口的編程 串行口需初始化后, 才能完成數(shù)據(jù)的輸入、輸出。其初始化過程如下: (1) 按選定串行口的操作模式設(shè)定S
33、CON的SM0、SM1兩位二進制編碼。 (2) 對于操作模式 2 或 3, 應(yīng)根據(jù)需要在 TB8 中寫入待發(fā)送的第 9 位數(shù)據(jù)。 (3) 若選定的操作模式不是模式 0, 還需設(shè)定接收/發(fā)送的波特率。 設(shè)定SMOD的狀態(tài), 以控制波特率是否加倍。 若選定操作模式1或3, 則應(yīng)對定時器 T1進行初始化以設(shè)定其溢出率。 二、二、 串行口的應(yīng)用串行口的應(yīng)用 例例1 用 8051 串行口外接 74LS165 移位寄存器擴展8位輸入口, 輸入數(shù)據(jù)由 8 個開關(guān)提供, 另有一個開關(guān) K提供聯(lián)絡(luò)信號。電路示意如圖6.11 所示。當(dāng)開關(guān)K合上時, 表示要求輸入數(shù)據(jù)。輸入 8 位開關(guān)量, 處理不同的程序。 圖 6.11 程序如下程序如下: ST
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- fob條款進口合同標(biāo)準(zhǔn)文本
- 農(nóng)藥農(nóng)膜化肥購銷合同樣本
- 出差外包服務(wù)合同樣本
- 關(guān)于攤位租賃合同樣本
- 修車鋪子轉(zhuǎn)讓合同標(biāo)準(zhǔn)文本
- 沖量合同標(biāo)準(zhǔn)文本標(biāo)準(zhǔn)文本
- 農(nóng)村拆遷土地承包合同樣本
- 個人滴滴車出租合同樣本
- 出售電廠配煤合同標(biāo)準(zhǔn)文本
- 公司委托律師合同樣本
- 汞中毒學(xué)習(xí)課件
- 國際商事調(diào)解的流程和程序
- 工廠領(lǐng)手套管理制度
- JGJT220-2010 抹灰砂漿技術(shù)規(guī)程
- 【基于PLC的搬運機器人系統(tǒng)設(shè)計4700字(論文)】
- 園林綠化公司管理規(guī)章制度
- 2023年云南省昆明市官渡區(qū)小升初數(shù)學(xué)試卷
- 山東船廠船臺碼頭施工組織設(shè)計
- 2022年廣州白云廣附實驗學(xué)校入學(xué)數(shù)學(xué)真卷(三)
- XX家具商場顧客接待流程制度
- 猜謎語(小學(xué)低年級)
評論
0/150
提交評論