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