




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章
MCS-51單片機(jī)的內(nèi)部資源及應(yīng)用
3.1MCS-51單片機(jī)的并行I/O口應(yīng)用3.2MCS-51單片機(jī)的中斷系統(tǒng)
3.3MCS-51單片機(jī)的定時(shí)器/計(jì)數(shù)器3.4MCS-51單片機(jī)的串行通信應(yīng)用問(wèn)題:每秒數(shù)字自動(dòng)加“1”,如何實(shí)現(xiàn)?定時(shí)中斷如何實(shí)現(xiàn)動(dòng)態(tài)顯示?每20ms去掃描刷新一次利用定時(shí)器定時(shí)去完成?。?)計(jì)數(shù):計(jì)數(shù)是指對(duì)外部事件的個(gè)數(shù)進(jìn)行計(jì)量。實(shí)質(zhì)是對(duì)外部輸入脈沖的個(gè)數(shù)進(jìn)行計(jì)量。實(shí)現(xiàn)計(jì)數(shù)功能的器件稱(chēng)為計(jì)數(shù)器。(2)定時(shí):定時(shí)器和計(jì)數(shù)器是一個(gè)部件, 計(jì)數(shù)器記錄的是外界發(fā)生的事件; 定時(shí)器記錄的是單片機(jī)內(nèi)部提供的脈沖,這個(gè)脈沖是晶振脈沖經(jīng)過(guò)12分頻后的脈沖源。3.3.1定時(shí)器/計(jì)數(shù)器3.3MCS-51單片機(jī)的定時(shí)器/計(jì)數(shù)器
有2個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器,簡(jiǎn)稱(chēng)為T(mén)0和T1;均是二進(jìn)制加法計(jì)數(shù)器,回零溢出時(shí)產(chǎn)生中斷請(qǐng)求;適用于定時(shí)控制、延時(shí)、外部計(jì)數(shù)和檢測(cè)等;計(jì)數(shù)器:對(duì)引腳T0(P3.4)和T1(P3.5.)輸入的外部脈沖計(jì)數(shù);信號(hào)負(fù)跳變,計(jì)數(shù)器自動(dòng)加1。最高頻率:一般為fosc/24。定時(shí)器:對(duì)振蕩脈沖的12分頻輸出進(jìn)行計(jì)數(shù),即對(duì)機(jī)器周期計(jì)數(shù)。MCS-51內(nèi)部定時(shí)器/計(jì)數(shù)器
8051單片機(jī)內(nèi)部的定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)如下圖所示。定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)組成:16位加法計(jì)數(shù)器、工作方式寄存器TMOD和控制寄存器TCON。
T0:TL0(低8位)和TH0(高8位)
T1:TL1(低8位)和TH1(高8位)控制寄存器TCON(88H)
TF0/TF1:T0/1計(jì)數(shù)溢出標(biāo)志位??捎糜谏暾?qǐng)中斷或供CPU查詢(xún)。在進(jìn)入中斷服務(wù)程序時(shí)會(huì)自動(dòng)清零;但在查詢(xún)方式時(shí)必須軟件清零。
=1:計(jì)數(shù)溢出;
=0:計(jì)數(shù)未滿(mǎn)。TR0/TR1:T0/1啟??刂莆?。
=1:?jiǎn)?dòng)計(jì)數(shù);=0:停止計(jì)數(shù)。IE0/IE1和IT0/IT1:管理外部中斷(前面已介紹過(guò))。TF1TR1TF0TR0IE1IT1IE0IT0TCON:GATE:門(mén)控位
=0:軟件控制即由TR0控制啟/停。
=1:硬件控制 由INT0
和TCON中TR0組合控制啟/停。工作方式寄存器TMOD
GATEC/TM1M0GATEC/TM1M0T1T0同時(shí)為1:?jiǎn)⑷我粸?:停定時(shí)器計(jì)數(shù)器工作方式寄存器TMODGATEC/TM1M0GATEC/TM1M0T1T0C/:定時(shí)方式/計(jì)數(shù)方式選擇位。
=1:選擇計(jì)數(shù)器工作方式,對(duì)T0/T1引腳輸入的外部事件的負(fù)脈沖計(jì)數(shù);
=0:選擇定時(shí)器工作方式,對(duì)機(jī)器周期脈沖計(jì)數(shù)定時(shí)。M1,M0:工作方式選擇位。
=00:13位定時(shí)器/計(jì)數(shù)器;
=01:16位定時(shí)器/計(jì)數(shù)器(常用);
=10:可自動(dòng)重裝的8位定時(shí)器/計(jì)數(shù)器(常用);
=11:T0分為2個(gè)8位定時(shí)器/計(jì)數(shù)器;僅適用于T0。3.3.2定時(shí)器/計(jì)數(shù)器的工作方式四種工作模式,以T0為例介紹,T1與T0的工作原理相同工作方式0(M1M0=00,13位定時(shí)器/計(jì)數(shù)器)
TH0的8位和TL0的低5位共13位,13位計(jì)數(shù)滿(mǎn)溢出時(shí), TF0置“1”,產(chǎn)生中斷;最大計(jì)數(shù)M=2^13工作方式1
(M1M0=01,16位定時(shí)器/計(jì)數(shù)器)
由TH0和TL0構(gòu)成16位加1計(jì)數(shù)器,其他特性與工作方式0相同。最大計(jì)數(shù)M=2^16GATEC/TM1M0GATEC/TM1M0T1T0工作方式2(
M1M0=10,計(jì)數(shù)初值自動(dòng)重裝,8位)兩個(gè)8位寄存器TH0和TL0裝入相同初值,TL0作計(jì)數(shù)器,TH0作預(yù)置寄存器計(jì)數(shù)滿(mǎn)溢出時(shí),TF0置“1”,同時(shí)硬件使TL0=TH0應(yīng)用:串行數(shù)據(jù)通信的波特率發(fā)生器。3.3.2定時(shí)器/計(jì)數(shù)器的工作方式
GATEC/TM1M0GATEC/TM1M0T1T0工作方式3
(M1M0=11,2個(gè)8位定時(shí)器/計(jì)數(shù)器,僅適用于T0)TL0:8位定時(shí)器/計(jì)數(shù)器,和T0方式0或方式1完全相同。TH0:8位定時(shí)器,用T1的控制位TR1和TF1。不能對(duì)外計(jì)數(shù)。在方式3模式下,定時(shí)器/計(jì)數(shù)器0可以構(gòu)成兩個(gè)定時(shí)器或者一個(gè)定時(shí)器和一個(gè)計(jì)數(shù)器。
T0方式3下,T1方式2,定時(shí)初值能自動(dòng)恢復(fù),常用作波特率發(fā)生器。3.3.2定時(shí)器/計(jì)數(shù)器的工作方式
定時(shí)器/計(jì)數(shù)器初始化的步驟
(1)寫(xiě)TMOD,設(shè)置定時(shí)器/計(jì)數(shù)器的工作方式;(2)計(jì)算定時(shí)器/計(jì)數(shù)器的初值,寫(xiě)入TH0/TH1、TL0/TL1。(3)設(shè)置IE、IP,以開(kāi)放相應(yīng)的中斷和設(shè)定中斷優(yōu)先級(jí)。(4)置位TR0/TR1,啟動(dòng)計(jì)數(shù)。定時(shí)器/計(jì)數(shù)器的定時(shí)/計(jì)數(shù)范圍(1)工作方式0:13位定時(shí)器/計(jì)數(shù)器方式最大計(jì)數(shù)值=213=8192
(2)工作方式1:16位定時(shí)器/計(jì)數(shù)器方式最大計(jì)數(shù)值=216=65536
(3)工作方式2和工作方式3:8位的定時(shí)器/計(jì)數(shù)器方式最大計(jì)數(shù)值=28=2563.3.3定時(shí)器/計(jì)數(shù)器的應(yīng)用
計(jì)數(shù)器初值的計(jì)算
方法:用最大計(jì)數(shù)量減去需要的計(jì)數(shù)次數(shù)。即:
TC=MC
其中:TC:計(jì)數(shù)器需要預(yù)置的初值;
M:計(jì)數(shù)器的模值(最大計(jì)數(shù)值);
方式0:M=213;方式1:M=216; 方式2,3:M=28;
C:計(jì)滿(mǎn)回0所需的計(jì)數(shù)值,即設(shè)計(jì)任務(wù)要求計(jì)數(shù)值。3.3.3定時(shí)器/計(jì)數(shù)器的應(yīng)用
計(jì)數(shù)器初值的計(jì)算例題例:流水線上一個(gè)包裝是12盒,要求每到12盒就產(chǎn)生一個(gè)動(dòng)作,用計(jì)數(shù)器來(lái)實(shí)現(xiàn)控制,請(qǐng)計(jì)算應(yīng)當(dāng)預(yù)置的初值。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位定時(shí)器初值的計(jì)算
定時(shí)時(shí)間的計(jì)算公式為:
T=(MTC)×T0(或TC=MT/T0)其中:T——定時(shí)器的定時(shí)時(shí)間,即設(shè)計(jì)任務(wù)要求的定時(shí)時(shí)間;
T0——計(jì)數(shù)器計(jì)數(shù)脈沖的周期,即單片機(jī)系統(tǒng)主頻周期的12倍;
M——計(jì)數(shù)器的模值;
TC——定時(shí)器需要預(yù)置的初值。若設(shè)初值TC=0,則定時(shí)器定時(shí)時(shí)間為最大。若設(shè)單片機(jī)系統(tǒng)主頻為12MHz,則各種工作方式定時(shí)器的最大定時(shí)時(shí)間為:工作方式0:
Tmax=213×1s=8.192ms工作方式1:
Tmax=216×1s=65.536ms工作方式2和3:Tmax=28×1s=0.256ms3.3.3定時(shí)器/計(jì)數(shù)器的應(yīng)用
定時(shí)器/計(jì)數(shù)器應(yīng)用舉例Li_333_1:利用定時(shí)器T0定時(shí),在P1.7端輸出一方波,方波周期為20ms,已知晶振頻率為12MHZ.解:周期為20ms,定時(shí)為10ms=10000us
方式1(TMOD=01H):16位 2^16-10000=55536=0D8F0H
TH0=0D8H;TL0=0F0H3.3.3定時(shí)器/計(jì)數(shù)器的應(yīng)用
Li_333_1定時(shí)器/計(jì)數(shù)器應(yīng)用舉例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 ;開(kāi)中斷,T0開(kāi)中斷
SETB TR0 ;啟動(dòng)T0 HERE: SJMP HERE ;循環(huán)等待 INTT0:
MOV TL0,#0F0H MOV TH0,#0D8H CPL P1.7 RETI定時(shí)器/計(jì)數(shù)器應(yīng)用舉例2
設(shè)發(fā)光二極管LED和8051的P1.0腳相連。當(dāng)P1.0腳是高電平時(shí),LED發(fā)亮;當(dāng)P1.0腳是低電平時(shí),LED不亮。編制程序用定時(shí)器來(lái)實(shí)現(xiàn)發(fā)光二極管LED的閃爍功能,設(shè)置LED每1s閃爍一次。已知單片機(jī)系統(tǒng)主頻為12MHz。解:最長(zhǎng)定時(shí)是65.536ms,無(wú)法實(shí)現(xiàn)1s的定時(shí)。需要采用軟件計(jì)數(shù)器來(lái)進(jìn)行設(shè)計(jì)。1s=1000ms=5*200=10*100=20*50=25*403.3.3定時(shí)器/計(jì)數(shù)器的應(yīng)用
設(shè)計(jì)思想:
先做一個(gè)50ms的定時(shí)器,完成20次定時(shí)中斷則為1s。軟件計(jì)數(shù)器單元30H,每50ms軟件計(jì)數(shù)器的值加1,完成20次則P1.0取反,軟件計(jì)數(shù)器清零,否則直接返回。定時(shí)時(shí)間就為50×20=1000ms=1s。
工作方式1,TMOD=00000001B=01H其初值為:21650ms/1s=6553650000=15536=3CB0H
若:5ms定時(shí),方式0:2135ms/1s=81925000=3192=C78HC78H=0110001111000B→01100011000
11000=6318H方式0,5ms定時(shí),初值為:6318H,計(jì)數(shù)器計(jì)到200時(shí)P1.0取反。定時(shí)器/計(jì)數(shù)器應(yīng)用舉例2程序如下:(LI3_6_2.asm)
ORG0000H AJMPSTART;轉(zhuǎn)入主程序
ORG000BH ;定時(shí)器/計(jì)數(shù)器0的中斷服務(wù)程序入口地址
AJMPTIME0;跳轉(zhuǎn)到定時(shí)器中斷服務(wù)程序處
ORG0030H START:MOVSP,#60H;設(shè)置堆棧指針
MOVP1,#00H;關(guān)發(fā)光二極管LED(使其滅)
MOV30H,#00H;軟件計(jì)數(shù)器預(yù)清0 MOVTMOD,#01H;定時(shí)器/計(jì)數(shù)器0工作于方式1 MOVTH0,#3CH;設(shè)置定時(shí)器/計(jì)數(shù)器的初值
MOVTL0,#0B0H
SETBEA ;開(kāi)總中斷允許
SETBET0 ;開(kāi)定時(shí)器/計(jì)數(shù)器0中斷允許
SETBTR0 ;啟動(dòng)定時(shí)器/計(jì)數(shù)器0LOOP:AJMPLOOP ;循環(huán)等待定時(shí)器/計(jì)數(shù)器應(yīng)用舉例2定時(shí)器/計(jì)數(shù)器T0的中斷服務(wù)程序如下:
TIME0:PUSHACC ;保護(hù)現(xiàn)場(chǎng)
PUSHPSW ;將PSW和ACC推入堆棧保護(hù) INC30H ;軟件計(jì)數(shù)器加1 MOVA,30H CJNEA,#20,LP2 ;軟件計(jì)數(shù)器單元中的值到了20了嗎?到了,繼續(xù)執(zhí)行;否則,轉(zhuǎn)入LP2LP1:CPLP1.0 ;到了,P1.0取反
MOV30H,#00H ;清軟件計(jì)數(shù)器
LP2:MOVTH0,#3CH ;重置定時(shí)器/計(jì)數(shù)器的初值
MOVTL0,#0B0H
SETBTR0 ;重新啟動(dòng)定時(shí)器/計(jì)數(shù)器0
POPPSW ;恢復(fù)PSW和ACC POPACC RETI ;中斷返回
END 定時(shí)器/計(jì)數(shù)器應(yīng)用舉例2(LI3_6_2.asm)定時(shí)器/計(jì)數(shù)器應(yīng)用舉例3(Li333-3)用定時(shí)器1按方式1工作,每50ms中斷一次,通過(guò)P1口控制8個(gè)發(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個(gè)全亮第8秒:8個(gè)全滅以后循環(huán)實(shí)現(xià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個(gè)全亮FFH第8秒:8個(gè)全滅00H代碼-1:主程序 ORG0000H AJMPSTART;轉(zhuǎn)入主程序
ORG0001BH ;定時(shí)器/計(jì)數(shù)器1的中斷服務(wù)程序入口地址
AJMPTIME1;跳轉(zhuǎn)到定時(shí)器1中斷服務(wù)程序處
ORG0030H START:MOVSP,#60H;設(shè)置堆棧指針
MOVP1,#00H;關(guān)發(fā)光二極管LED(使其滅)
MOVR0,#00;用于計(jì)次序
MOVR1,#20;軟件計(jì)數(shù)器20 MOVTMOD,#10H;定時(shí)器/計(jì)數(shù)器1工作于方式1 MOVTH0,#3CH;設(shè)置定時(shí)器/計(jì)數(shù)器的初值:延時(shí)50ms
MOVTL0,#0B0H SETBEA ;開(kāi)總中斷允許
SETBET1 ;開(kāi)定時(shí)器/計(jì)數(shù)器1中斷允許
SETBTR1 ;啟動(dòng)定時(shí)器/計(jì)數(shù)器1LOOP:JMP$ ;循環(huán)等待代碼-2:中斷服務(wù)程序TIME1:PUSHACC ;保護(hù)現(xiàn)場(chǎng) PUSHPSW PUSHDPL PUSHDPH CLRTR1 ;停T1 MOVTH1,#3CH ;延時(shí)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定時(shí)器/計(jì)數(shù)器應(yīng)用舉例4用定時(shí)器1方式2計(jì)數(shù),要求每計(jì)滿(mǎn)100次,將P1.0端取反。解:解題意設(shè)置TMOD計(jì)算初值X1、TMOD=60H
2、方式2具有初值自動(dòng)裝入功能,初始化后不必再置初值。
3、初值X=256-100=156D=9CH
4、TH1=TL1=9CH5、計(jì)數(shù)信號(hào)由T1(P3.5)腳引入,下
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑設(shè)計(jì)合同三方協(xié)議書(shū)
- 中央廚房分租合同范本
- 醫(yī)療衛(wèi)勤戰(zhàn)略合作協(xié)議書(shū)
- 陽(yáng)江復(fù)印機(jī)租賃協(xié)議書(shū)
- 農(nóng)村商鋪加工合同范本
- 公司公章使用保密協(xié)議書(shū)
- 宅地基糾紛協(xié)議書(shū)
- 化妝品轉(zhuǎn)讓協(xié)議書(shū)
- 山東國(guó)資委協(xié)議書(shū)
- 鄭州家教吧退款協(xié)議書(shū)
- 大規(guī)模多語(yǔ)言平行語(yǔ)料庫(kù)的構(gòu)建方法
- 《中國(guó)書(shū)法簡(jiǎn)史》課件
- 餐飲服務(wù)量化分級(jí)評(píng)定規(guī)范
- 腰椎間盤(pán)突出癥的護(hù)理查房課件
- 四川省公路工程試驗(yàn)檢測(cè)收費(fèi)標(biāo)準(zhǔn)
- 仿真標(biāo)準(zhǔn)與規(guī)范化
- 七年級(jí)下冊(cè)語(yǔ)文5月月考試卷及答案
- 河南大學(xué)課件模板
- DB15T 374-2023主要造林樹(shù)種苗木質(zhì)量分級(jí)
- 醫(yī)院電子病歷系統(tǒng)應(yīng)用水平分級(jí)評(píng)價(jià) 4級(jí)實(shí)證材料基礎(chǔ)項(xiàng)
- 小學(xué)英語(yǔ)-PEP五年級(jí)下冊(cè) Unit 1My day Read and write教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
評(píng)論
0/150
提交評(píng)論