日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

51單片機(jī)定時(shí)系統(tǒng)

 共同成長(zhǎng)888 2015-07-13

51單片機(jī)定時(shí)系統(tǒng) 

        定時(shí)/計(jì)數(shù)器和中斷源的多少直接決定單片機(jī)的性能。MCS-51單片機(jī)內(nèi)部有兩個(gè)可編程的16位定時(shí)/計(jì)數(shù)器和5個(gè)中斷源,具有較強(qiáng)的實(shí)時(shí)處理能力和對(duì)外部應(yīng)急事件的處理能力。要充分發(fā)揮單片機(jī)的功能,必須充分利用定時(shí)和中斷。 
定時(shí)器/計(jì)數(shù)器
一、定時(shí)和延時(shí)的區(qū)別
在單片機(jī)程序清單中,經(jīng)??吹窖訒r(shí)子程序和定時(shí)(中斷)子程序。它們都能使單片機(jī)間隔一段時(shí)間后再做另一件事。例如,控制兩組燈的交替閃亮。以1999年第38期九版圖13為例,下面分別是用延時(shí)和定時(shí)方法的源程序。
程序1: 
ORG 0000H
AJMP MAIN
ORG 50H
MAIN:MOV P1,#0AAH;第一組燈亮
ACALL DELAY ;調(diào)延時(shí)子程序
MOV P1,#55H ;第二組燈亮
ACALL DELAY ;調(diào)延時(shí)子程序
AJMP MAIN ;循環(huán)
DELAY:MOV R0,#08H ;延時(shí)子程序,當(dāng)fc=6MHz時(shí),約延時(shí)1秒
L1:MOV R1,#0FFH ;
L2:MOV R2,#0FFH;
L3:DJNZ R2,L3
DJNZ R1,L2
DJNZ R0,L1
RET
END
程序2:
ORG 0000H
AJMP MAIN
ORG 0 WT0;轉(zhuǎn)T0中斷服務(wù)子程序
ORG 50H
MAIN:MOV 21 TL0,#6;裝入定時(shí)初值
MOV TH0,#6;裝入重置定時(shí)初值
MOV TMOD,#02H;設(shè)T0為工作方式2
SETB EA;允許CPU中斷
SETB ETO;允許TO中斷
SETB TRO;允許TO計(jì)數(shù)
MOV P1,#55H;
CLR 00H
M:P1,#55H;CPU去執(zhí)行其他任務(wù)
JNB 0 P1;定時(shí)到1秒,燈的狀態(tài)翻轉(zhuǎn)
CLR 0 M;循環(huán)
WTO:PUSH ACC;定時(shí)中斷服務(wù)子程序
PUSH PSW;
INC 21H
MOV A,21H
CJNE A,#200,TORETI
MOV 21 22 A,22H
CJNE A,#10,TORETI
MOV 22 0 PSW
POP ACC
RETI
END
       程序1中,點(diǎn)亮一組燈后,調(diào)用延時(shí)子程序,延時(shí)子程序結(jié)束后再點(diǎn)亮另一組燈,循環(huán)進(jìn)行,單片機(jī)除能交替點(diǎn)亮兩組燈以外,全部時(shí)間都在運(yùn)行延時(shí)子程序,別的什么事件都不能做了。程序2中,單片機(jī)絕大部分時(shí)間都在做其它事,只在定時(shí)到1秒鐘時(shí)改變燈的工作狀態(tài),充分發(fā)揮了單片機(jī)的功能。因此,在實(shí)際應(yīng)用中,“延時(shí)”只適用于特定的場(chǎng)合,而“定時(shí)”是靈活多變的。
二、定時(shí)器的結(jié)構(gòu)
        初學(xué)者不必去深入研究單片機(jī)的內(nèi)部硬件電路,只要掌握單片機(jī)的使用方法,通過(guò)實(shí)際編程,充分發(fā)揮單片機(jī)的特定功能即可。與定時(shí)器有關(guān)的特殊功能寄存器之間的信號(hào)關(guān)系示于圖1。圖中,TLO、THO、TL1、TH1以及TMOD和TCON都是單片機(jī)的特殊功能寄存器。TLO和THO組成16位的定時(shí)/計(jì)數(shù)器(T0),TL1和TH1組成16位的定時(shí)/計(jì)數(shù)器(T1),TMOD是T0和T1的工作方式控制寄存器,TCON是T0和T1的運(yùn)行狀態(tài)控制寄存器,這些寄存器在程序2中已多次出現(xiàn)。在實(shí)際應(yīng)用時(shí),應(yīng)首先根據(jù)需要對(duì)這些寄存器進(jìn)行初始化,即設(shè)置T0和T1的工作方式并對(duì)T0和T1定時(shí)器裝入初始值以得到精確的定時(shí)時(shí)間。T0和T1的工作方式及運(yùn)行狀態(tài)是由TMOD和TCON兩個(gè)特殊功能寄存器控制的,而TMOD和TCON是由用戶(hù)所編的程序控制的。因此,學(xué)好用好定時(shí)/計(jì)數(shù)器必須掌握這些寄存器的功能及使用方法。
 
三、TMOD
TMOD是定時(shí)器的工作方式控制寄存器,其格式見(jiàn)表1。
表1 定時(shí)器工作方式寄存器格式

TMOD是8位的控制寄存器,低4位控制T0的工作方式,高4位控制T1的工作方式,其中:
M1、M0是工作方式選擇位。決定定時(shí)器的4種工作方式。
方式0:(M1=0、M0=0):13位定時(shí)/計(jì)數(shù)器
方式1:(M1=0、M0=1):16位定時(shí)/計(jì)數(shù)器
方式2:(M1=1、M0=0):8位定時(shí)/計(jì)數(shù)器(定時(shí)常數(shù)自動(dòng)裝入)
方式3:(M1=1、M0=1):把T0分為兩個(gè)8位計(jì)數(shù)器
C/T:定時(shí)/計(jì)數(shù)方式選擇位
C/T=0時(shí)為定時(shí)工作方式,在此方式下,計(jì)數(shù)脈沖來(lái)自單片機(jī)內(nèi)部,計(jì)數(shù)脈沖頻率為一個(gè)機(jī)器周期,機(jī)器周期的時(shí)間是固定的,所以就可根據(jù)計(jì)數(shù)值算出計(jì)數(shù)時(shí)間。如程序2中,TL0初值為6,256-6=250,當(dāng)計(jì)數(shù)器計(jì)250個(gè)脈沖后,計(jì)數(shù)器溢出。當(dāng)fc=6MHz時(shí),一個(gè)機(jī)器周期為2μs,因此T0溢出時(shí),時(shí)間為500μs,T0定時(shí)時(shí)間為500μs。
C/T=1時(shí)為計(jì)數(shù)工作方式,在這種方式下,計(jì)數(shù)脈沖來(lái)自外部引腳(T0對(duì)應(yīng)P3??4腳,T1對(duì)應(yīng)P3??5腳)。當(dāng)T0腳(或T1腳)發(fā)生從高電平到低電平的跳變時(shí),計(jì)數(shù)器加1。
GATE:計(jì)數(shù)器工作方式控制位,當(dāng)定時(shí) / 計(jì)數(shù)器工作在計(jì)數(shù)方式時(shí),由GATE設(shè)定計(jì)數(shù)器是否受外部控制。當(dāng)GATE=0時(shí),不受外部控制。當(dāng)GATE=1時(shí),計(jì)數(shù)器T0和T1分別受P3??2和P3??3腳上電平控制。當(dāng)P3??2(或P3??3)腳為低電平時(shí),計(jì)數(shù)器T0(或T1)開(kāi)始計(jì)數(shù),P3??2(或P3??3)腳為高電平時(shí),T0(或T1)停止計(jì)數(shù)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多