按遙控器任意鍵數(shù)碼管加1--- 0--9循環(huán)
你家里是否有DVD或電視機(jī)遙控器呢,大多數(shù)遙控器都可以哦.....
按遙控器任意鍵數(shù)碼管加1---0--9循環(huán)顯示
平凡的實(shí)驗(yàn)板加一個(gè)接收頭直接使用,如下圖所示:
程序如下:
;********************************************************************
; *
;遙控器按任意鍵數(shù)碼管加1,顯示0--9依次循環(huán) *
; *
; 作者:LK811011 QQ:104076687 *
; *
;請(qǐng)各位大蝦多多指點(diǎn) *
; *
;***************************************************************
temp equ22h ;計(jì)數(shù)器數(shù)值存放內(nèi)存位置
;******************************************************************
start:movtemp,#0 ;初始化計(jì)數(shù)器,從0開始
MOVTMOD,#09H;設(shè)置定時(shí)0方式1,GATE=1
MOVP0,#28H ;數(shù)字0的代碼送顯示,開機(jī)顯示0
clrp2.6 ;開數(shù)碼管顯示
MAIN: JBP3.2,$ ;等待遙控信號(hào)
;*******以下是9MS和4.5MS遙控信號(hào)電平的識(shí)別************************************
remote: MOVTL0,#0 ;//清零TL0
MOVTH0,#0 ;//清零TH0
SETBTR0 ;//開啟定時(shí)器0
JNBP3.2,$ ;//等待高電平到來,避開遙控信號(hào)開始的9MS低電平
JBP3.2,$ ;//等待低電平,高電平到來,此時(shí)開始計(jì)數(shù)
CLRTR0;//高電平結(jié)束,停止計(jì)數(shù)
MOVA,TH0 ;//讀取TH0值,TL0忽略不計(jì)
CJNEA,#11H,exit;//A中的值應(yīng)該是11H即遙控信號(hào)4.5MS的高電平(4.5MS=1194H)=17(十進(jìn)制)
inctemp ;對(duì)計(jì)數(shù)器加1
mova,temp
cjnea,#10,exit ;判斷計(jì)數(shù)器是否滿10
movtemp,#0 ;滿10就清零重新開始
exit: setbp3.2
;顯示子程序
display:
mova,temp ;把當(dāng)前計(jì)數(shù)器值送A
movdptr,#numtab ;指定查表啟始地址
MOVCA,@A+DPTR ;查個(gè)位數(shù)的7段代碼
movp0,a ;送出個(gè)位的7段代碼
ajmpmain
;上的7段數(shù)碼管0~9各數(shù)字的顯示代碼
numtab:DB28H,7EH,0a4H,64H,72H,61H,21H,7CH,20H,60H
;****************************************************************
END
以上程序用平凡的新實(shí)驗(yàn)板加一個(gè)遙控接收頭就可以直接看到結(jié)果了