T1為定時(shí)模式,定時(shí)65.536ms,P2.0對(duì)應(yīng)的LED等閃爍一次,T0計(jì)數(shù)模式,計(jì)數(shù)脈沖從P3.4腳用按鍵輸入,按一次,記一次,所以計(jì)數(shù)初值為0FFFFh,沒(méi)按一次,產(chǎn)生一個(gè)溢出,P2.5對(duì)應(yīng)的LED閃爍,同時(shí)數(shù)碼管加1顯示。
一、定時(shí)/計(jì)數(shù)器終端模式
org 0000h
ljmp bb ;跳轉(zhuǎn)到主程序入口bb處
org 000bh ;定時(shí)器0中斷響應(yīng)從這里開(kāi)始執(zhí)行
cjne r2,#9d,xx
mov r2,#00h
ljmp xx11
org 001bh ;定時(shí)器1中斷響應(yīng)從這里開(kāi)始執(zhí)行
ljmp xxx
mov tmod,#05h ;05h=0000 0101B設(shè)置T1定時(shí)T0計(jì)數(shù)模式,0定時(shí),1計(jì)數(shù)
;00是13位二進(jìn)制計(jì)數(shù)模式0,高4位控制T1
;01是16位二進(jìn)制計(jì)數(shù)模式1,低4位控制T0
mov dptr,#0300h ;查表入口地址存放
mov r2,#00h
setb et0 ;和setb 0afh效果相同
setb ea ;和setb 0abh相同
setb et1 ;和setb 0a9h相同
setb tr1
mov th0,#0ffh ;計(jì)數(shù)器0的計(jì)數(shù)初值的高8位
mov tl0,#0fdh ;計(jì)數(shù)器0的計(jì)數(shù)初值的低8位(第一次開(kāi)始計(jì)數(shù)初值)
sjmp $ ;程序執(zhí)行時(shí),原地踏步等待語(yǔ)句,在沒(méi)有中斷請(qǐng)求時(shí),
;在此位置原地踏步計(jì)數(shù)定時(shí)計(jì)數(shù),有請(qǐng)求時(shí)跳到中斷入口執(zhí)行中斷
xx: inc r2
xx11: mov th0,#0ffh ;計(jì)數(shù)器0的計(jì)數(shù)初值的高8位
mov tl0,#0fdh ;計(jì)數(shù)器0的計(jì)數(shù)初值的低8位(第二次以后開(kāi)始計(jì)數(shù)初值)
mov a,r2
movc a,@a+dptr
cpl p2.5
mov p1,a
reti
mov tl1,#00h ;計(jì)數(shù)器1的計(jì)數(shù)初值的低8位
cpl p2.0
reti
db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
end
二、定時(shí)/計(jì)數(shù)器查詢(xún)模式
org 0000h
ljmp bb ;跳轉(zhuǎn)到主程序入口bb處
;設(shè)置T1定時(shí)模式,工作在計(jì)數(shù)方式0,設(shè)置T0計(jì)數(shù)模
;式工作在計(jì)數(shù)方式1
clr et0 ;關(guān)定時(shí)/計(jì)數(shù)器0中斷
setb ea ;和setb 0abh相同,開(kāi)總中斷開(kāi)關(guān)
setb et1 ;和setb 0a9h相同,開(kāi)定時(shí)/計(jì)數(shù)器1中斷
setb tr0
setb tr1
mov th0,#0ffh ;計(jì)數(shù)器0的計(jì)數(shù)初值的高8位
mov tl0,#0ffh ;計(jì)數(shù)器0的計(jì)數(shù)初值的低8位(第一次開(kāi)始計(jì)數(shù)初值)
CX: JBC TF0, xx ;查詢(xún)定時(shí)/計(jì)數(shù)器0溢出標(biāo)志位,有溢出跳轉(zhuǎn)xx執(zhí)行
JBC TF1, xxx ;查詢(xún)定時(shí)/計(jì)數(shù)器1溢出標(biāo)志位,有溢出跳轉(zhuǎn)xxx執(zhí)行
sjmp CX ;無(wú)溢出,跳CX繼續(xù)查詢(xún)
;溢出是在THi和TLi計(jì)數(shù)滿(mǎn),超過(guò)FFFFH時(shí),TFi被自動(dòng)置1,中斷和查詢(xún)都是根
;據(jù)這個(gè)標(biāo)志是否為1來(lái)響應(yīng)的。
xx: mov th0,#0ffh ;計(jì)數(shù)器0的計(jì)數(shù)初值的高8位
mov tl0,#0ffh ;計(jì)數(shù)器0的計(jì)數(shù)初值的低8位(第二次以后開(kāi)始計(jì)數(shù)初值)
cjne r2,#10d,xx11
mov r2,#00h
xx11: mov a,r2
movc a,@a+dptr ;查表,用七段碼顯示計(jì)數(shù)數(shù)字
cpl p2.5 ;并讓P2.5上的LED有閃爍效果
mov p1,a ;顯示數(shù)字效果從P1口輸出
inc r2 ;加1計(jì)數(shù)
ret
mov tl1,#00h ;計(jì)數(shù)器1的計(jì)數(shù)初值的低8位
cpl p2.0 ;t0定時(shí)模式,定時(shí)到讓P2.0取反,LED達(dá)到閃爍效果
ret
db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
end