![-【大學課件】MCS-51單片機的定時器計數(shù)器-PPT_第1頁](http://file4.renrendoc.com/view/65faf44e2b94cbc743ff1a20f304fcab/65faf44e2b94cbc743ff1a20f304fcab1.gif)
![-【大學課件】MCS-51單片機的定時器計數(shù)器-PPT_第2頁](http://file4.renrendoc.com/view/65faf44e2b94cbc743ff1a20f304fcab/65faf44e2b94cbc743ff1a20f304fcab2.gif)
![-【大學課件】MCS-51單片機的定時器計數(shù)器-PPT_第3頁](http://file4.renrendoc.com/view/65faf44e2b94cbc743ff1a20f304fcab/65faf44e2b94cbc743ff1a20f304fcab3.gif)
![-【大學課件】MCS-51單片機的定時器計數(shù)器-PPT_第4頁](http://file4.renrendoc.com/view/65faf44e2b94cbc743ff1a20f304fcab/65faf44e2b94cbc743ff1a20f304fcab4.gif)
![-【大學課件】MCS-51單片機的定時器計數(shù)器-PPT_第5頁](http://file4.renrendoc.com/view/65faf44e2b94cbc743ff1a20f304fcab/65faf44e2b94cbc743ff1a20f304fcab5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、鄭州大學3.3 MCS-51單片機的定時器/計數(shù)器 3.3.1 定時器/計數(shù)器 1基本概念(1)計數(shù):計數(shù)是指對外部事件的個數(shù)進行計量。其實質(zhì)就是對外部輸入脈沖的個數(shù)進行計量。實現(xiàn)計數(shù)功能的器件稱為計數(shù)器。(2)定時:8051單片機中的定時器和計數(shù)器是一個部件,只不過計數(shù)器記錄的是外界發(fā)生的事件,而定時器則是由單片機內(nèi)部提供一個非常穩(wěn)定的計數(shù)源進行定時的。這個計數(shù)源是由單片機的晶振經(jīng)過12分頻后獲得的一個脈沖源。所以定時器計數(shù)脈沖的時間間隔與晶振有關(guān)。docin/sundae_meng鄭州大學(3)定時的種類 軟件定時:利用執(zhí)行一個循環(huán)程序進行時間延遲。其特點是定時時間精確,不需外加硬件電路,
2、但占用CPU時間。因此軟件定時的時間不宜過長。 硬件定時:利用硬件電路實現(xiàn)定時。其特點是不占用CPU時間,通過改變電路元器件參數(shù)來調(diào)節(jié)定時,但使用不夠靈活方便。對于時間較長的定時,常用硬件電路來實現(xiàn)。 可編程定時器:通過專用的定時器/計數(shù)器芯片實現(xiàn)。其特點是通過對系統(tǒng)時鐘脈沖進行計數(shù)實現(xiàn)定時,定時時間可通過程序設定的方法改變,使用靈活方便。也可實現(xiàn)對外部脈沖的計數(shù)功能。docin/sundae_meng鄭州大學 MCS-51單片機內(nèi)部有兩個16位可編程的定時器/計數(shù)器,簡稱為T0和T1,均可作定時器用也可計數(shù)器,它們均是二進制加法計數(shù)器,當計數(shù)器計滿回零時能自動產(chǎn)生溢出中斷請求,表示定時時間已
3、到或計數(shù)已終止。適用于定時控制、延時、外部計數(shù)和檢測等。計數(shù)器:對引腳T0(P 3.4 )和T1(P3.5.)輸入的外部脈沖信號計數(shù),當輸入脈沖信號從1到0的負跳變時,計數(shù)器就自動加1。計數(shù)的最高頻率一般為振蕩頻率的1/24。定時器:對系統(tǒng)晶振振蕩脈沖的12分頻輸出進行計數(shù)。 (1)定時器/計數(shù)器的結(jié)構(gòu)組成:16位加法計數(shù)器、工作方式寄存器TMOD和控制寄存器TCON。 T0: TL0(低8位)和TH0(高8位) T1: TL1(低8位)和TH1(高8位)2MCS-51內(nèi)部定時器/計數(shù)器 docin/sundae_meng鄭州大學 8051單片機內(nèi)部的定時器/計數(shù)器的結(jié)構(gòu)如下圖所示。docin
4、/sundae_meng鄭州大學(2)控制寄存器TCON (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF0/TF1:T0/1計數(shù)溢出標志位??捎糜谏暾堉袛嗷蚬〤PU查詢。在進入中斷服務程序時會自動清零;但在查詢方式時必須軟件清零。 =1 :計數(shù)溢出; =0 :計數(shù)未滿。TR0/TR1:T0/1啟??刂莆?。 =1 :啟動計數(shù); =0: 停止計數(shù)。IE0/IE1和IT0/IT1:用于管理外部中斷(前面已介紹過)。docin/sundae_meng鄭州大學 M1,M0:工作方式選擇位 。 =00:13位定時器/計數(shù)器; =01:16位定時器/計數(shù)器(常用); =10:
5、可自動重裝的8位定時器/計數(shù)器(常用); =11:T0 分為2個8位定時器/計數(shù)器;僅適用于T0。 C/T :定時方式/計數(shù)方式選擇位。 = 1:選擇計數(shù)器工作方式,對T0/T1引腳輸入的外部事件的負脈沖計數(shù); = 0 :選擇定時器工作方式,對機器周期脈沖計數(shù)定時。 如下頁圖所示。(3)工作方式寄存器TMOD GATE C / T M1 M0 GATE C / T M1 M0T1T2docin/sundae_meng鄭州大學GATE:門控位,定時器/計數(shù)器的啟/??捎绍浖c硬件兩者控制 = 0 :軟件控制,只由TCON中的啟/??刂莆籘R0/TR1控制定時器/計數(shù)器的啟/停。 = 1 :硬件控
6、制,由外部中斷請求信號 / 和TCON中的啟/??刂莆籘R0/TR1組合狀態(tài)控制定時器/計數(shù)器的啟/停。 其控制邏輯如下圖所示。docin/sundae_meng鄭州大學3.3.2 定時器/計數(shù)器的工作方式 8051單片機的定時器/計數(shù)器共有四種工作模式,現(xiàn)以T0為例加以介紹,T1與T0的工作原理相同,但方式3下T1停止計數(shù)。方式(如F0)和用戶定義名稱等幾種方式。1工作方式0( M1M0=00 ,13位定時器/計數(shù)器) 由TH0的全部8位和TL0的低5位( TL0的高3位未用)構(gòu)成13位加1計數(shù)器,當TL0低5位計數(shù)滿時直接向TH0進位,并當全部13位計數(shù)滿溢出時,溢出標志位TF0置“1”。
7、2工作方式1 ( M1M0=01 ,16位定時器/計數(shù)器) 由TH0和TL0構(gòu)成16位加1計數(shù)器,其他特性與工作方式0相同。3工作方式2 ( M1M0=10 ,自動重裝計數(shù)初值的8位定時器/計數(shù)器) 16位定時器/計數(shù)器被拆成兩個8位寄存器TH0和TL0,CPU在對它們初始化時必須裝入相同的定時器/計數(shù)器初值。以TL0作計數(shù)器,而TH0作為預置寄存器。當計數(shù)滿溢出時,TF0置“1”,同時TH0將計數(shù)初值以硬件方法自動裝入TL0。這種工作方式很適合于那些重復計數(shù)的應用場合(如串行數(shù)據(jù)通信的波特率發(fā)生器)。docin/sundae_meng鄭州大學4工作方式3 ( M1M0=11 , 2個8位定時
8、器/計數(shù)器,僅適用于T0)TL0:8位定時器/計數(shù)器,使用T0原有控制資源TR0和TF0,其功能和操作與方式0或方式1完全相同。TH0:只能作為8位定時器,借用T1的控制位TR1和TF1,只能對片內(nèi)機器周期脈沖計數(shù)。 在方式3模式下,定時器/計數(shù)器0可以構(gòu)成兩個定時器或者一個定時器和一個計數(shù)器。 T0方式3下的T1方式2,因定時初值能自動恢復,用作波特率發(fā)生器更為合適。docin/sundae_meng鄭州大學 定時器/計數(shù)器可按片內(nèi)機器周期定時,也可對由T0/T1引腳輸入一個負脈沖進行加法計數(shù)。在應用時,其工作方式和工作過程均可通過程序設定和控制,因此,定時器/計數(shù)器在工作前必須先對其進行初
9、始化,計算和設置初值。 1. 定時器T0/T1 中斷申請過程 (1)在已經(jīng)開放T0/T1中斷允許且已被啟動的前提下,T0/T1加1計滿溢出時 TF0/TF1標志位自動置“1” ; (2)CPU 檢測到TCON中TF0/TF1變“1”后,將產(chǎn)生指令:LCALL 000BH/LCALL 001BH 執(zhí)行中斷服務程序; (3)TF0/TF1標志位由硬件自動清“0”,以備下次中斷申請。3.3.3 定時器/計數(shù)器的應用 docin/sundae_meng鄭州大學2. 定時器/計數(shù)器初始化的步驟 (1)寫TMOD,設置定時器/計數(shù)器的工作方式; (2)計算定時器/計數(shù)器的初值,寫入TH0/TH1、TL0/
10、TL1。 (3)設置IE、IP,以開放相應的中斷和設定中斷優(yōu)先級。 3. 定時器/計數(shù)器的定時器/計數(shù)器范圍 (1)工作方式0:13位定時器/計數(shù)器方式 最大計數(shù)值= 213 = 8192 (2)工作方式1:16位定時器/計數(shù)器方式 最大計數(shù)值= 216 = 65536 (3)工作方式2和工作方式3:8位的定時器/計數(shù)器方式因此, 最大計數(shù)值= 28 = 256 docin/sundae_meng鄭州大學3. 計數(shù)器初值的計算 方法:用最大計數(shù)量減去需要的計數(shù)次數(shù)。即: TC=MC 其中:TC計數(shù)器需要預置的初值; M計數(shù)器的模值(最大計數(shù)值); 方式0時,M=213;方式1時,M=216;方
11、式2, 3時,M=28; C計數(shù)器計滿回0所需的計數(shù)值,即設計任務要求的計數(shù)值。例如:流水線上一個包裝是12盒,要求每到12盒就產(chǎn)生一個動作,用單片機的工作方式0來控制,則應當預置的初值為: TC = M C = 213 12=8180docin/sundae_meng鄭州大學4. 定時器初值的計算 定時時間的計算公式為: T=(MTC)T0 (或TC=MT/T0 )其中:T定時器的定時時間,即設計任務要求的定時時間; T0計數(shù)器計數(shù)脈沖的周期,即單片機系統(tǒng)主頻周期的12倍; M計數(shù)器的模值; TC定時器需要預置的初值。 若設初值TC=0,則定時器定時時間為最大。若設單片機系統(tǒng)主頻為12MHz
12、,則各種工作方式定時器的最大定時時間為:工作方式0: Tmax=2131s=8.192ms工作方式1: Tmax=2161s=65.536ms工作方式2和3:Tmax=281s=0.256msdocin/sundae_meng鄭州大學例設外部有一個脈沖源。編制程序,對外部脈沖源進行計數(shù)并顯示。解:將外部計數(shù)源連到引腳T1上,可用LED將計數(shù)的值顯示出來,我們用P1口連接的8個LED來顯示計到的數(shù)據(jù)。程序如下: ORG 0000H AJMP START; 轉(zhuǎn)入主程序 ORG 0030H START: MOV SP, #60H; 設置堆棧指針 MOV TMOD, #60H; 定時器/計數(shù)器1作計數(shù)
13、用 01100000B MOV TL1,#00H MOV TH1,#00H SETB TR1 ; 啟動計數(shù)器1開始運行 LOOP: MOV A, TL1 ; 讀計數(shù)器1的計數(shù)值送A MOV P1, A ; 將計數(shù)值輸出到P1口,驅(qū)動LED顯示 AJMP LOOP ; 轉(zhuǎn)回LOOP END5. 定時器/計數(shù)器應用舉例docin/sundae_meng鄭州大學 P126 例3.6 設一只發(fā)光二極管LED和8051的P1.0腳相連。當P1.0腳是高電平時,LED不亮;當P1.0腳是低電平時,LED亮。編制程序用定時器來實現(xiàn)發(fā)光二極管LED的閃爍功能。已知單片機系統(tǒng)主頻為12MHz。解:設置LED每6
14、0ms閃爍1次。選擇定時器/計數(shù)器0工作在方式1。此時定時器對系統(tǒng)主頻的12分頻脈沖計數(shù)。T0=1微秒, TC=M-T/T0=5536=15A0Hdocin/sundae_meng鄭州大學方法1:用查詢方式 ORG 0000H MOV TH0,#15H AJMP START MOV TL0,#0A0H ORG 0030H SETB TR0START:MOV SP,#60H AJMP LOOP MOV P1,#0FFH END MOV TMOD,#01H ;00000001 MOV TH0,#15H MOV TL0,#0A0H SETB TR0LOOP: JBC TF0,NEXT AJMP LO
15、OPNEXT: CPL P1.0docin/sundae_meng鄭州大學方法2:用中斷方式實現(xiàn) ORG 0000H TIME0:PUSH ACC AJMP START PUSH PSW ORG 000BH CPL P1.0 AJMP TIME0 MOV TH0,#15H ORG 0030H MOV TL0,#0A0HSTART:MOV SP,#60H SETB TR0 MOV P1,#0FFH POP PSW MOV TMOD,#01H POP ACC MOV TH0,#15H RETI MOV TL0,#0A0H END SETB EA SETB ET0 SETB TR0LOOP: AJM
16、P LOOPdocin/sundae_meng鄭州大學例 設置LED每1s閃爍一次。已知單片機系統(tǒng)主頻為12MHz。解:定時器/計數(shù)器的最長的定時是65.536ms,無法實現(xiàn)1s的定時??梢圆捎密浖嫈?shù)器來進行設計。docin/sundae_meng鄭州大學設計思想:定義一個軟件計數(shù)器單元30H,先用定時器/計數(shù)器0做一個50ms的定時器,定時時間到了以后將軟件計數(shù)器中的值加1,如果軟件計數(shù)器計到了20,取反P1.0,并清掉軟件計數(shù)器中的值,否則直接返回。則完成了20次定時中斷才取反一次P1.0,因此定時時間就為2050=1000ms=1s。定時器/計數(shù)器0采用工作方式1,其初值為: 2165
17、0ms/1s=6553650000=15536=3CB0H電路圖如下:docin/sundae_meng鄭州大學程序如下: ORG 0000H AJMP START ; 轉(zhuǎn)入主程序 ORG 000BH ; 定時器/計數(shù)器0的中斷服務程序入口地址 AJMP TIME0 ; 跳轉(zhuǎn)到真正的定時器中斷服務程序處 ORG 0030H START: MOV SP, #60H ; 設置堆棧指針 MOV P1, #0FFH ; 關(guān)發(fā)光二極管LED(使其滅) MOV 30H, #00H ; 軟件計數(shù)器預清0 MOV TMOD, # 01H ; 定時器/計數(shù)器0工作于方式1 MOV TH0, #3CH ; 設置定
18、時器/計數(shù)器的初值 MOV TL0, #0B0H SETB EA ; 開總中斷允許 SETB ET0 ; 開定時器/計數(shù)器0中斷允許 SETB TR0; 啟動定時器/計數(shù)器0 LOOP: AJMP LOOP ; 循環(huán)等待(真正工作時,這里可寫任意其他程序)docin/sundae_meng鄭州大學定時器/計數(shù)器0的中斷服務程序如下: TIME0: PUSH ACC ; 將PSW和ACC推入堆棧保護 PUSH PSW INC 30H ; 軟件計數(shù)器加1 MOV A, 30H CJNE A, #20, T_LP2; 軟件計數(shù)器單元中的值到了20了嗎? 到了,繼續(xù)執(zhí)行; 否則,轉(zhuǎn)入T_LP2 T_L
19、P1: CPL P1.0 ; 到了,P1.0取反 MOV 30H, #00H; 清軟件計數(shù)器 T_LP2: MOV TH0, #3CH; 重置定時器/計數(shù)器的初值 MOV TL0, #0B0H POP PSW ; 恢復PSW和ACC POP ACC RETI; 中斷返回 ENDdocin/sundae_meng鄭州大學3.4 MCS-51 單片機的串行通信 3.4.1 概述1.通信 通信:單片機與外界進行信息交換統(tǒng)稱為通信。8051單片機的通信方式有兩種:并行通信:數(shù)據(jù)的各位同時發(fā)送或接收。特點是傳送速度快、效率高,但成本高。適用于短距離傳送數(shù)據(jù)。計算機內(nèi)部的數(shù)據(jù)傳送一般均采用并行方式。串行通
20、信:數(shù)據(jù)一位一位順序發(fā)送或接收。特點是傳送速度慢,但成本低。適用于較長距離傳送數(shù)據(jù)。計算機與外界的數(shù)據(jù)傳送一般均采用串行方式。 docin/sundae_meng鄭州大學2. 數(shù)據(jù)通信的制式單工方式:數(shù)據(jù)僅按一個固定方向傳送;半雙工方式:數(shù)據(jù)可實現(xiàn)雙向傳送,但不能同時進行;全雙工方式:允許雙方同時進行數(shù)據(jù)雙向傳送;多工方式:在同一線路上實現(xiàn)資源共享。 3. 串行通信的分類 串行數(shù)據(jù)通信按數(shù)據(jù)傳送方式可分為異步通信和同步通信兩種形式:同步方式:以數(shù)據(jù)塊為單位進行數(shù)據(jù)傳送,包括同步字符、數(shù)據(jù)塊和校驗字符CRC。優(yōu)點是數(shù)據(jù)傳輸速率較高,缺點是要求發(fā)送時鐘和接收時鐘保持嚴格同步。數(shù)據(jù)格式如下圖所示。
21、docin/sundae_meng鄭州大學異步方式:以字符為單位進行數(shù)據(jù)傳送,每一個字符均按固定的字符格式傳送,又被稱為幀。優(yōu)點是不需要傳送同步脈沖,可靠性高,所需設備簡單;缺點是字符幀中因包含有起始位和停止位而降低了有效數(shù)據(jù)的傳輸速率。數(shù)據(jù)格式如下圖所示:docin/sundae_meng鄭州大學4. 串行數(shù)據(jù)通信的波特率 波特率是指每秒鐘傳送信號的數(shù)量,單位為波特(Baud)。而每秒鐘傳送二進制數(shù)的信號數(shù)(即二進制數(shù)的位數(shù))定義為比特率,單位是bps(bit per second)或?qū)懗蒪/s(位/秒)。 在單片機串行通信中,傳送的信號是二進制信號,波特率與比特率數(shù)值上相等。單位采用bps
22、。例如,異步串行通信的數(shù)據(jù)傳送的速率是120字符/秒,而每個字符規(guī)定包含10位數(shù)字,則傳輸波特率為: 120字符/秒 10位/字符=1200位/秒= 1200bpsdocin/sundae_meng鄭州大學3.4.2 MCS-51的串行口 MCS-51單片機內(nèi)部有一個全雙工的串行通信口(P3.0、P3.1) ,既可作UART(通用異步接收/發(fā)送器)用,也可作同步移位寄存器使用,還可用于網(wǎng)絡通信,其幀格式可有8位、10位和11位,并能設置各種波特率。1串行口寄存器結(jié)構(gòu) (1)兩個物理上獨立的同名的接收/發(fā)送緩沖寄存器SBUF 指令 MOV SBUF,A 啟動一次數(shù)據(jù)發(fā)送, 指令 MOV A,SB
23、UF 完成一次數(shù)據(jù)接收, 即向發(fā)送緩沖器SBUF寫入數(shù)據(jù)即可發(fā)送數(shù)據(jù),從接收緩沖器SBUF讀出數(shù)據(jù)即可接收數(shù)據(jù)。 (2)輸入和輸出移位寄存器和控制器等組成。 (3)2個SFR寄存器SCON和PCON,用于串行口的初始化編程。 (4)接收/發(fā)送數(shù)據(jù),無論是否采用中斷方式工作,每接收/發(fā)送一個數(shù)據(jù)都必須用指令對 RI/TI 清0,以備下一次收/發(fā)。docin/sundae_meng鄭州大學 SBUF(發(fā))SBUF(收)發(fā)送控制器 TI接收控制器 RI移位寄存器波特率發(fā)生器T11A累加器(門)移位寄存器RxD(P3.0)TxD(P3.1)去申請中斷引腳引腳CPU內(nèi)部 MCS-51串行口的結(jié)構(gòu)如下圖所
24、示:docin/sundae_meng鄭州大學2. 串行通信控制寄存器SCON (98H)SM0 SM1 SM2 REN TB8 RB8 TI R1SM0,SM1:串行口4種工作方式控制位。 =00:方式0,8位同步移位寄存器,其波特率為fosc/12; =01:方式1,10位UART,其波特率為可變,由定時器控制; =10:方式2,11位UART,其波特率為fosc/64或fosc/32; =11:方式3,11位UART,其波特率為可變,由定時器控制。 其中:fosc為系統(tǒng)晶振頻率。RI,TI:串行口收/發(fā)數(shù)據(jù)申請中斷標志位 1 申請中斷; 0 不申請中斷。docin/sundae_meng
25、鄭州大學RB8:在方式2、3中,用于存放收到的第9位數(shù)據(jù);在雙機通信中,作為奇偶校驗;在多機通信中,用作區(qū)別地址幀/數(shù)據(jù)幀的標志。TB8:方式2、3中,是要發(fā)送的第9位數(shù)據(jù);在雙機通信中,用于對接收到的數(shù)據(jù)進行奇偶校驗;在多機通信中,用作判斷地址幀/數(shù)據(jù)幀,TB8=0 表示發(fā)送的是數(shù)據(jù),TB8=1 表示發(fā)送的是地址。REN:串行口接收允許控制位 = 1: 表示允許接收; = 0: 禁止接收。SM2:串行口多機通信控制位,作為方式2、方式3的附加控制位。docin/sundae_meng鄭州大學3. 中斷允許寄存器IE(0A8H) 中斷允許寄存器IE在3.2.2節(jié)中已介紹。其中對串行口有影響的位
26、ES。ES為串行中斷允許控制位。 ES=1:允許串行中斷; ES=0:禁止串行中斷。 4. 電源管理寄存器PCON(87H) 不可位尋址。 PCON主要用于實現(xiàn)電源控制而設置的專用寄存器,已在1.3.3節(jié)中介紹過。其格式如下圖所示。SMOD GF1 GF0 PD 1DLSMOD:串行口波特率倍增位 =1:串行口波特率加倍。 =0:串行口波特率不變,系統(tǒng)復位時默認SMOD=0。docin/sundae_meng鄭州大學3.4.3 串行口的工作方式 1. 工作方式0( 8位移位寄存器I/O方式)發(fā)送/接收過程:SBUF中的串行數(shù)據(jù)由RxD逐位移出/移入(低位在先,高位在后);TxD輸出移位時鐘,頻
27、率=fosc1/12;每送出/接收8位數(shù)據(jù) TI/ RI自動置1;需要用軟件清零 TI/ RI 。注意:串行口在方式0下的工作并非是一種同步通信方式,經(jīng)常配合“串入并出”“并入串出”移位寄存器一起使用,以達到擴展一個并行口的目的。 擴展電路如下圖所示。docin/sundae_meng鄭州大學如要發(fā)送數(shù)據(jù),查詢方式的程序如下: MOV SCON,#00H ;串行口方式0 MOV SBUF,A ;將數(shù)據(jù)送出 JNB TI,$ ;等待數(shù)據(jù)發(fā)送完畢 CLR TI ;為下次發(fā)送作準備注意:復位時,SCON 已經(jīng)被清零,缺省值為方式0。發(fā)送條件:TI=0。接收條件:TI=0,置位 REN=1 (允許接收
28、數(shù)據(jù))。2. 方式1 (波特率可變的10位異步通信方式 )發(fā)送/接收數(shù)據(jù)的格式:一幀信息包括1個起始位0,8個數(shù)據(jù)位和1個停止位1。發(fā)送/接收過程:SBUF中的串行數(shù)據(jù)由RXD逐位移出/移入;TXD輸出移位時鐘,頻率= (2SMOD/32)T1的溢出率,波特率可變。每送出/接收8位數(shù)據(jù) TI/ RI自動置1;需要用軟件清零 TI/ RI 。工作時,發(fā)送端自動添加一個起始位和一個停止位;接收端自動去掉一個起始位和一個停止位。發(fā)送/接收條件:同方式0。docin/sundae_meng鄭州大學3. 方式2(固定波特率的11位異步接收/發(fā)送方式)發(fā)送/接收過程:方式2的接收/發(fā)送過程類似于方式1,所
29、不同的是它比方式1增加了一位“第9位”數(shù)據(jù)(TB8/RB8),用于“奇偶校驗”。方式2常用于單片機間通信。波特率 = fosc 2SMOD/64 。發(fā)送/接收條件:同方式0。4. 方式3(可變波特率的11位異步接收/發(fā)送方式) 方式3和方式2唯一的區(qū)別是波特率機制不同,方式3的波特率=(2SMOD/32)T1的溢出率。docin/sundae_meng鄭州大學奇偶校驗:奇偶校驗是檢驗串行通信雙方傳輸?shù)臄?shù)據(jù)正確與否的一個措施,并不能保證通信數(shù)據(jù)的傳輸一定正確。即如果奇偶校驗發(fā)生錯誤,表明數(shù)據(jù)傳輸一定出錯了;如果奇偶校驗沒有出錯,絕不等于數(shù)據(jù)傳輸完全正確。奇校驗規(guī)定:8位有效數(shù)據(jù)連同1位附加位中,
30、二進制“1”的個數(shù)為奇數(shù)。偶校驗規(guī)定:8位有效數(shù)據(jù)連同1位附加位中,二進制“1”的個數(shù)為偶數(shù)。約定發(fā)送采用奇校驗:若發(fā)送的8位有效數(shù)據(jù)中“1”的個數(shù)為偶數(shù),則要人為在附加位中添加一個“1”一起發(fā)送;若發(fā)送的8位有效數(shù)據(jù)中“1”的個數(shù)為奇數(shù),則要人為在附加位中添加一個“0”一起發(fā)送。約定接收采用奇校驗:若接收到的9位數(shù)據(jù)中“1”的個數(shù)為奇數(shù),則表明接收正確,取出8位有效數(shù)據(jù)即可;若接收到的9位數(shù)據(jù)中“1”的個數(shù)為偶數(shù),則表明接收出錯!應當進行出錯處理。 采用偶校驗時,處理方法與奇校驗類似。docin/sundae_meng鄭州大學3.4.4 串行口的通信波特率 串行口的通信波特率恰到好處地反映了
31、串行傳輸數(shù)據(jù)的速率。在MCS-51串行口的四種工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可變的,由定時器T1的溢出率(T1溢出信號的頻率)控制。各種方式的通信波特率如下:方式0:波特率固定為fosc/12。 其中:fosc系統(tǒng)主機晶振頻率方式2:波特率由PCON中的選擇位SMOD來決定,可由下式表示: 波特率=(2SMOD/64)fosc 方式1和方式3:波特率是可變的,由定時器T1的溢出率控制。波特率為: 波特率=(2SMOD/32)定時器T1溢出率 T1溢出率=T1計數(shù)率/產(chǎn)生溢出所需的周期 = (fosc/12)/(2KTC) 其中:K定時器T1的位數(shù),定時器T1用作
32、波特率發(fā)生器時,通常工作在方式2, 所以T1的溢出所需的周期數(shù)= 28TC。 TC定時器T1的預置初值。docin/sundae_meng鄭州大學 下表列出了定時器T1工作于方式2的常用波特率及初值。 docin/sundae_meng鄭州大學3.4.5 串行口的應用 1串口方式0應用編程 例題6 用8051串行口外接CD4094擴展8位并行輸出口,8位并行口的各位都接一個發(fā)光二極管,要求發(fā)光二極管呈流水燈狀態(tài)(輪流點亮)。 解:硬件連接電路如下圖所示。docin/sundae_meng鄭州大學 在開始通信之前,應先對控制寄存器SCON進行初始化。將00H送SCON即設置方式0。數(shù)據(jù)傳送采用查
33、詢方式,通過查詢TI的狀態(tài),來決定是否發(fā)送下一幀數(shù)據(jù)。在串行接收時,通過對RI查詢來確定何時接收下一幀數(shù)據(jù)。程序如下: ORG 1000H START: MOV SCON, #00H; 置串行口工作方式0 MOV A, #80H ; 最高位燈先亮 CLR P1.0 ; 關(guān)閉并行輸出 OUT0: MOV SBUF, A ; 開始串行輸出 OUT1: JNB TI, OUT1; 輸出完否?未完,等待;完了,繼續(xù)執(zhí)行 CLR TI ; 完了,清TI標志,以備下次發(fā)送 docin/sundae_meng鄭州大學 SETB P1.0; 打開并行口輸出 ACALL DELAY; 延時一段時間 RR A ;
34、 循環(huán)右移 CLR P1.0; 關(guān)閉并行輸出 SJMP OUT0 ; 循環(huán) DELAY: MOV R7, #250 ; 延時子程序 D1: MOV R6, #250 D2: DJNZ R6, D2 DJNZ R7, D1 RET ENDdocin/sundae_meng鄭州大學2雙機通信 雙機通信的硬件連接圖如下圖所示。 docin/sundae_meng鄭州大學通信協(xié)議如下: 設1號機是發(fā)送方,2號機是接收方。采用串行口方式1進行通信,一幀信息為10位,其中有1個起始位、8個數(shù)據(jù)位和1個停止位;波特率為2400bps,T1工作在定時器方式2,單片機時鐘振蕩頻率選用11.0 592MHz,查表
35、3.4.3可得TH1=TL1=0F4H,PCON寄存器的SMOD位為0。 當1號機發(fā)送時,先發(fā)送一個“E1”聯(lián)絡信號,2號機收到后回答一個“E2”應答信號,表示同意接收。當1號機收到應答信號“E2”后,開始發(fā)送數(shù)據(jù),每發(fā)送一個字節(jié)數(shù)據(jù)都要計算“校驗和”,假定數(shù)據(jù)塊長度為16個字節(jié),起始地址為40H,一個數(shù)據(jù)塊發(fā)送完畢后立即發(fā)送“校驗和”。2號機接收數(shù)據(jù)并轉(zhuǎn)存到數(shù)據(jù)緩沖區(qū),起始地址也為40H,每接收到一個字節(jié)數(shù)據(jù)便計算一次“校驗和”,當收到一個數(shù)據(jù)塊后,再接收1號機發(fā)來的“校驗和”,并將它與2號機求出的校驗和進行比較。若兩者相等,說明接收正確,2號機回答00H;若兩者不相等,說明接收不正確,2號
36、機回答0FFH,請求重發(fā)。1號機接到00H后結(jié)束發(fā)送。若收到的答復非零,則重新發(fā)送數(shù)據(jù)一次。程序框圖如下頁圖所示。docin/sundae_meng鄭州大學docin/sundae_meng鄭州大學 發(fā)送程序如下: ORG 1000H ASTART: CLR EA MOV TMOD, #20H; 定時器1置為方式2 MOV TH1, #0F4H; 裝載定時器初值,波特率2400 MOV TL1, #0F4H MOV PCON, #00H SETB TR1; 啟動定時器 MOV SCON, #50H ; 設定串口方式1,且準備接收應答信號 ALOOP1: MOV SBUF, #0E1H ; 發(fā)聯(lián)
37、絡信號 JNB TI, $; 等待一幀發(fā)送完畢 CLR TI ; 允許再發(fā)送 JNB RI, $; 等待2號機的應答信號 CLR RI ; 允許再接收 MOV A, SBUF ; 2號機應答后,讀至A XRL A, #0E2H; 判斷2號機是否準備完畢 JNZ ALOOP1; 2號機未準備好,繼續(xù)聯(lián)絡 docin/sundae_meng鄭州大學 ALOOP2: MOV R0, #40H; 2號機準備好,設定數(shù)據(jù)塊地址指針初值 MOV R7, #10H; 設定數(shù)據(jù)塊長度初值 MOV R6, #00H; 清校驗和單元 ALOOP3: MOV SBUF, R0 ; 發(fā)送一個數(shù)據(jù)字節(jié) MOV A, R
38、6 ADD A, R0 ; 求校驗和 MOV R6, A; 保存校驗和 INC R0 JNB TI, $ CLR TI DJNZ R7, ALOOP3; 整個數(shù)據(jù)塊是否發(fā)送完畢 MOV SBUF, R6; 發(fā)送校驗和 JNB TI, $ CLR TI JNB RI, $; 等待2號機的應答信號 CLR RI MOV A, SBUF; 2號機應答,讀至A JNZ ALOOP2 ; 2號機應答“錯誤”,轉(zhuǎn)重新發(fā)送 RET; 2號機應答“正確”,返回 ENDdocin/sundae_meng鄭州大學接收程序如下: ORG 1000H BSTART: CLR EA MOV TMOD, #20H MOV
39、 TH1, #0F4H MO V TL1, #0F4H MOV PCON, #00H SETB TR1 MOV SCON, #50H; 設定串口方式1,且準備接收 BLOOP1: JNB RI, $ ; 等待1號機的聯(lián)絡信號 CLR RI MOV A, SBUF; 收到1號機信號 XRL A, #0E1H; 判斷是否為1號機聯(lián)絡信號 JNZ BLOOP1 ; 不是1號機聯(lián)絡信號,再等待 MOV SBUF, #0E2H; 是1號機聯(lián)絡信號,發(fā)應答信號 JNB TI, $ CLR TI MOV R0, #40H ; 設定數(shù)據(jù)塊地址指針初值 MOV R7, #10H ; 設定數(shù)據(jù)塊長度初值 MOV
40、R6, #00H; 清校驗和單元docin/sundae_meng鄭州大學 BLOOP2: JNB RI, $ CLR RI MOV A, SBUF MOV R0, A; 接收數(shù)據(jù)轉(zhuǎn)儲 INC R0 ADD A, R6 ; 求校驗和 MOV R6, A DJNZ R7, BLOOP2 ; 判斷數(shù)據(jù)塊是否接收完畢 JNB RI, $ ; 完畢,接收1號機發(fā)來的校驗和 CLR RI MOV A, SBUF XRL A, R6 ; 比較校驗和 JZ END1 ; 校驗和相等,跳至發(fā)正確標志 MOV SBUF, #0FFH ; 校驗和不相等,發(fā)錯誤標志 JNB TI, $ ; 轉(zhuǎn)重新接收 CLR TI
41、 END1: MOV SBUF, #00H RET ENDdocin/sundae_meng鄭州大學3多機通信(1)硬件連接 單片機構(gòu)成的多機系統(tǒng)常使串行口工作在方式2和方式3,采用總線型主從式結(jié)構(gòu)(一個是主機,其余的是從機,從機要服從主機的調(diào)度、支配)。有時還要對信號進行光電隔離、電平轉(zhuǎn)換等。在實際的多機應用系統(tǒng)中,常采用RS-485串行標準總線進行數(shù)據(jù)傳輸。簡單的硬件連接如下圖所示(圖中沒有畫出RS-485接口)。docin/sundae_meng鄭州大學(2)通信協(xié)議主機置SM2位0,所有從機的SM2位置1,處于接收地址幀狀態(tài)。 主機發(fā)送一地址幀,其中,8位是地址,第9位為1表示該幀為地址幀。 所有從機收到地址幀后,都將接收的地址與本機的地址比較。對于地址相符的從機,使自己的SM2位置0(以接收主機隨后發(fā)來的數(shù)據(jù)幀),并把本站地址發(fā)回主機作為應答;對于地址不符的從機,仍保持SM2=1,對主機隨后發(fā)來的數(shù)據(jù)幀不予理睬。從機發(fā)送數(shù)據(jù)結(jié)束后,要發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- RNF5-agonist-1-生命科學試劑-MCE-3083
- Acremine-F-生命科學試劑-MCE-8674
- 二零二五年度船舶船員勞動合同及船舶航行風險承擔合同
- 2025年度汽車美容店員工勞動合同簽訂與解除流程合同
- 2025年度航空設施面積差額補充合同
- 2025年度汽車銷售合同和購車售后服務質(zhì)量監(jiān)控協(xié)議
- 施工日志填寫中的質(zhì)量和安全事故記錄方法
- 運動與心理健康如何通過鍛煉提升幸福感
- 教育科技下的道德與法治教育融合探討
- 運動場地安全檢查與整改措施匯報
- 湘教版七年級下冊地理第七章《了解地區(qū)》檢測卷(含答案解析)
- (完整版)4.19天體運動綜合習題(帶答案)
- 工法培訓課件
- 液壓式隨鉆震擊器設計
- 空氣能熱泵系統(tǒng)設計與安裝融資計劃書
- 2021中考地理真題試卷 山東省煙臺地理含答案
- 非法捕撈水產(chǎn)品罪
- 新概念第一冊單詞匯總帶音標EXCEL版
- 作用于血液及造血器官的藥 作用于血液系統(tǒng)藥物
- 心肺復蘇(最全版)完整版
- 春節(jié)節(jié)后施工復工安全培訓
評論
0/150
提交評論