版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章
MCS-51單片機的內部資源及應用
3.1MCS-51單片機的并行I/O口應用3.2MCS-51單片機的中斷系統(tǒng)
3.3MCS-51單片機的定時器/計數器3.4MCS-51單片機的串行通信應用問題:每秒數字自動加“1”,如何實現?定時中斷如何實現動態(tài)顯示?每20ms去掃描刷新一次利用定時器定時去完成?。?)計數:計數是指對外部事件的個數進行計量。實質是對外部輸入脈沖的個數進行計量。實現計數功能的器件稱為計數器。(2)定時:定時器和計數器是一個部件, 計數器記錄的是外界發(fā)生的事件; 定時器記錄的是單片機內部提供的脈沖,這個脈沖是晶振脈沖經過12分頻后的脈沖源。3.3.1定時器/計數器3.3MCS-51單片機的定時器/計數器
有2個16位可編程的定時器/計數器,簡稱為T0和T1;均是二進制加法計數器,回零溢出時產生中斷請求;適用于定時控制、延時、外部計數和檢測等;計數器:對引腳T0(P3.4)和T1(P3.5.)輸入的外部脈沖計數;信號負跳變,計數器自動加1。最高頻率:一般為fosc/24。定時器:對振蕩脈沖的12分頻輸出進行計數,即對機器周期計數。MCS-51內部定時器/計數器
8051單片機內部的定時器/計數器的結構如下圖所示。定時器/計數器的結構組成:16位加法計數器、工作方式寄存器TMOD和控制寄存器TCON。
T0:TL0(低8位)和TH0(高8位)
T1:TL1(低8位)和TH1(高8位)控制寄存器TCON(88H)
TF0/TF1:T0/1計數溢出標志位??捎糜谏暾堉袛嗷蚬〤PU查詢。在進入中斷服務程序時會自動清零;但在查詢方式時必須軟件清零。
=1:計數溢出;
=0:計數未滿。TR0/TR1:T0/1啟??刂莆弧?/p>
=1:啟動計數;=0:停止計數。IE0/IE1和IT0/IT1:管理外部中斷(前面已介紹過)。TF1TR1TF0TR0IE1IT1IE0IT0TCON:GATE:門控位
=0:軟件控制即由TR0控制啟/停。
=1:硬件控制 由INT0
和TCON中TR0組合控制啟/停。工作方式寄存器TMOD
GATEC/TM1M0GATEC/TM1M0T1T0同時為1:啟任一為0:停定時器計數器工作方式寄存器TMODGATEC/TM1M0GATEC/TM1M0T1T0C/:定時方式/計數方式選擇位。
=1:選擇計數器工作方式,對T0/T1引腳輸入的外部事件的負脈沖計數;
=0:選擇定時器工作方式,對機器周期脈沖計數定時。M1,M0:工作方式選擇位。
=00:13位定時器/計數器;
=01:16位定時器/計數器(常用);
=10:可自動重裝的8位定時器/計數器(常用);
=11:T0分為2個8位定時器/計數器;僅適用于T0。3.3.2定時器/計數器的工作方式四種工作模式,以T0為例介紹,T1與T0的工作原理相同工作方式0(M1M0=00,13位定時器/計數器)
TH0的8位和TL0的低5位共13位,13位計數滿溢出時, TF0置“1”,產生中斷;最大計數M=2^13工作方式1
(M1M0=01,16位定時器/計數器)
由TH0和TL0構成16位加1計數器,其他特性與工作方式0相同。最大計數M=2^16GATEC/TM1M0GATEC/TM1M0T1T0工作方式2(
M1M0=10,計數初值自動重裝,8位)兩個8位寄存器TH0和TL0裝入相同初值,TL0作計數器,TH0作預置寄存器計數滿溢出時,TF0置“1”,同時硬件使TL0=TH0應用:串行數據通信的波特率發(fā)生器。3.3.2定時器/計數器的工作方式
GATEC/TM1M0GATEC/TM1M0T1T0工作方式3
(M1M0=11,2個8位定時器/計數器,僅適用于T0)TL0:8位定時器/計數器,和T0方式0或方式1完全相同。TH0:8位定時器,用T1的控制位TR1和TF1。不能對外計數。在方式3模式下,定時器/計數器0可以構成兩個定時器或者一個定時器和一個計數器。
T0方式3下,T1方式2,定時初值能自動恢復,常用作波特率發(fā)生器。3.3.2定時器/計數器的工作方式
定時器/計數器初始化的步驟
(1)寫TMOD,設置定時器/計數器的工作方式;(2)計算定時器/計數器的初值,寫入TH0/TH1、TL0/TL1。(3)設置IE、IP,以開放相應的中斷和設定中斷優(yōu)先級。(4)置位TR0/TR1,啟動計數。定時器/計數器的定時/計數范圍(1)工作方式0:13位定時器/計數器方式最大計數值=213=8192
(2)工作方式1:16位定時器/計數器方式最大計數值=216=65536
(3)工作方式2和工作方式3:8位的定時器/計數器方式最大計數值=28=2563.3.3定時器/計數器的應用
計數器初值的計算
方法:用最大計數量減去需要的計數次數。即:
TC=MC
其中:TC:計數器需要預置的初值;
M:計數器的模值(最大計數值);
方式0:M=213;方式1:M=216; 方式2,3:M=28;
C:計滿回0所需的計數值,即設計任務要求計數值。3.3.3定時器/計數器的應用
計數器初值的計算例題例:流水線上一個包裝是12盒,要求每到12盒就產生一個動作,用計數器來實現控制,請計算應當預置的初值。TC=MC,C=12,M=13,16,8,8(1)方式0:13位TC=MC=2^1312=8180=1FF4H1111111110100B,TH0=0FFH,
TL0=14H(2)方式1:16位定時器初值的計算
定時時間的計算公式為:
T=(MTC)×T0(或TC=MT/T0)其中:T——定時器的定時時間,即設計任務要求的定時時間;
T0——計數器計數脈沖的周期,即單片機系統(tǒng)主頻周期的12倍;
M——計數器的模值;
TC——定時器需要預置的初值。若設初值TC=0,則定時器定時時間為最大。若設單片機系統(tǒng)主頻為12MHz,則各種工作方式定時器的最大定時時間為:工作方式0:
Tmax=213×1s=8.192ms工作方式1:
Tmax=216×1s=65.536ms工作方式2和3:Tmax=28×1s=0.256ms3.3.3定時器/計數器的應用
定時器/計數器應用舉例Li_333_1:利用定時器T0定時,在P1.7端輸出一方波,方波周期為20ms,已知晶振頻率為12MHZ.解:周期為20ms,定時為10ms=10000us
方式1(TMOD=01H):16位 2^16-10000=55536=0D8F0H
TH0=0D8H;TL0=0F0H3.3.3定時器/計數器的應用
Li_333_1定時器/計數器應用舉例1源程序: ORG 0000H
AJMP MAIN
ORG OOOBH
AJMP INTT0 ORG 0100H MAIN: MOV TMOD,#01H ;方式1,16位 MOV TL0,#0F0H ;2^16-10000us=0D8F0H
MOV TH0,#0D8H MOV IE,#82H ;開中斷,T0開中斷
SETB TR0 ;啟動T0 HERE: SJMP HERE ;循環(huán)等待 INTT0:
MOV TL0,#0F0H MOV TH0,#0D8H CPL P1.7 RETI定時器/計數器應用舉例2
設發(fā)光二極管LED和8051的P1.0腳相連。當P1.0腳是高電平時,LED發(fā)亮;當P1.0腳是低電平時,LED不亮。編制程序用定時器來實現發(fā)光二極管LED的閃爍功能,設置LED每1s閃爍一次。已知單片機系統(tǒng)主頻為12MHz。解:最長定時是65.536ms,無法實現1s的定時。需要采用軟件計數器來進行設計。1s=1000ms=5*200=10*100=20*50=25*403.3.3定時器/計數器的應用
設計思想:
先做一個50ms的定時器,完成20次定時中斷則為1s。軟件計數器單元30H,每50ms軟件計數器的值加1,完成20次則P1.0取反,軟件計數器清零,否則直接返回。定時時間就為50×20=1000ms=1s。
工作方式1,TMOD=00000001B=01H其初值為:21650ms/1s=6553650000=15536=3CB0H
若:5ms定時,方式0:2135ms/1s=81925000=3192=C78HC78H=0110001111000B→01100011000
11000=6318H方式0,5ms定時,初值為:6318H,計數器計到200時P1.0取反。定時器/計數器應用舉例2程序如下:(LI3_6_2.asm)
ORG0000H AJMPSTART;轉入主程序
ORG000BH ;定時器/計數器0的中斷服務程序入口地址
AJMPTIME0;跳轉到定時器中斷服務程序處
ORG0030H START:MOVSP,#60H;設置堆棧指針
MOVP1,#00H;關發(fā)光二極管LED(使其滅)
MOV30H,#00H;軟件計數器預清0 MOVTMOD,#01H;定時器/計數器0工作于方式1 MOVTH0,#3CH;設置定時器/計數器的初值
MOVTL0,#0B0H
SETBEA ;開總中斷允許
SETBET0 ;開定時器/計數器0中斷允許
SETBTR0 ;啟動定時器/計數器0LOOP:AJMPLOOP ;循環(huán)等待定時器/計數器應用舉例2定時器/計數器T0的中斷服務程序如下:
TIME0:PUSHACC ;保護現場
PUSHPSW ;將PSW和ACC推入堆棧保護 INC30H ;軟件計數器加1 MOVA,30H CJNEA,#20,LP2 ;軟件計數器單元中的值到了20了嗎?到了,繼續(xù)執(zhí)行;否則,轉入LP2LP1:CPLP1.0 ;到了,P1.0取反
MOV30H,#00H ;清軟件計數器
LP2:MOVTH0,#3CH ;重置定時器/計數器的初值
MOVTL0,#0B0H
SETBTR0 ;重新啟動定時器/計數器0
POPPSW ;恢復PSW和ACC POPACC RETI ;中斷返回
END 定時器/計數器應用舉例2(LI3_6_2.asm)定時器/計數器應用舉例3(Li333-3)用定時器1按方式1工作,每50ms中斷一次,通過P1口控制8個發(fā)光二極管:第1秒:1、3亮第2秒:2、4亮第3秒:5、7亮第4秒:6、8亮第5秒:1、3、5、7亮第6秒:2、4、6、8亮第7秒:8個全亮第8秒:8個全滅以后循環(huán)實現:P1第1秒:1、3亮: 05H第2秒:2、4亮 0AH第3秒:5、7亮 50H第4秒:6、8亮A0H第5秒:1、3、5、7亮55H第6秒:2、4、6、8亮AAH第7秒:8個全亮FFH第8秒:8個全滅00H代碼-1:主程序 ORG0000H AJMPSTART;轉入主程序
ORG0001BH ;定時器/計數器1的中斷服務程序入口地址
AJMPTIME1;跳轉到定時器1中斷服務程序處
ORG0030H START:MOVSP,#60H;設置堆棧指針
MOVP1,#00H;關發(fā)光二極管LED(使其滅)
MOVR0,#00;用于計次序
MOVR1,#20;軟件計數器20 MOVTMOD,#10H;定時器/計數器1工作于方式1 MOVTH0,#3CH;設置定時器/計數器的初值:延時50ms
MOVTL0,#0B0H SETBEA ;開總中斷允許
SETBET1 ;開定時器/計數器1中斷允許
SETBTR1 ;啟動定時器/計數器1LOOP:JMP$ ;循環(huán)等待代碼-2:中斷服務程序TIME1:PUSHACC ;保護現場 PUSHPSW PUSHDPL PUSHDPH CLRTR1 ;停T1 MOVTH1,#3CH ;延時50ms MOVTL1,#0B0H SETBTR1 ;啟T1 DJNZR1,EXIT ;R1=0? MOVR1,#20 ;20次 MOVDPTR,#DATA MOVA,R0 ;第?秒 MOVCA,@A+DPTR
MOVP1,A INCR0 ANLR0,#07H;第8次清0EXIT: POPDPH POPDPL POPPSW POPACC RETIDATA:DB05H,0AH,50H,0A0H DB55H,0AAH,0FFH,00H
Li333-3定時器/計數器應用舉例4用定時器1方式2計數,要求每計滿100次,將P1.0端取反。解:解題意設置TMOD計算初值X1、TMOD=60H
2、方式2具有初值自動裝入功能,初始化后不必再置初值。
3、初值X=256-100=156D=9CH
4、TH1=TL1=9CH5、計數信號由T1(P3.5)腳引入,下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海對外經貿大學《陶瓷造型設計基礎》2023-2024學年第一學期期末試卷
- 上海東海職業(yè)技術學院《交通運輸創(chuàng)新創(chuàng)業(yè)實踐與案例》2023-2024學年第一學期期末試卷
- 上海電子信息職業(yè)技術學院《比較憲法》2023-2024學年第一學期期末試卷
- 上海電影藝術職業(yè)學院《數值計算與實驗》2023-2024學年第一學期期末試卷
- 上海電影藝術職業(yè)學院《建筑物理(光聲)》2023-2024學年第一學期期末試卷
- 上海電力大學《直播與短視頻營銷》2023-2024學年第一學期期末試卷
- 在線教育平臺課程續(xù)費協(xié)議
- 如何通過定期維護延長設備的壽命
- 怎么系統(tǒng)學習課程設計
- 2024年新員工試用期間權益保障合同范本
- 中國特色社會主義經濟建設
- 藥學專業(yè)論文3000字藥學畢業(yè)論文(6篇)
- 光伏發(fā)電工程施工技術方案
- 藥品經營使用和質量監(jiān)督管理辦法2024年宣貫培訓課件
- 一年級看圖寫話集錦省公開課獲獎課件說課比賽一等獎課件
- 化療后胃腸道反應護理
- 煤礦沖擊危險區(qū)域進入人員準入、限員管理制度
- 專項03 質量守恒定律的應用
- 兵團精神課件教學課件
- 如何高效學習學習通超星期末考試答案章節(jié)答案2024年
- 河南省鄭州市2023-2024學年高二上學期期末考試 數學 含答案
評論
0/150
提交評論