按遥控器任意键数码管加1--- 0--9循环
扫描二维码
随时随地手机看文章
你家里是否有DVD或电视机遥控器呢,大多数遥控器都可以哦.....
按遥控器任意键数码管加1---0--9循环显示
平凡的实验板加一个接收头直接使用,如下图所示:
程序如下:
;********************************************************************
; *
;遥控器按任意键数码管加1,显示0--9依次循环 *
; *
; 作者:LK811011 QQ:104076687 *
; *
;请各位大虾多多指点 *
; *
;***************************************************************
temp equ22h ;计数器数值存放内存位置
;******************************************************************
start:movtemp,#0 ;初始化计数器,从0开始
MOVTMOD,#09H;设置定时0方式1,GATE=1
MOVP0,#28H ;数字0的代码送显示,开机显示0
clrp2.6 ;开数码管显示
MAIN: JBP3.2,$ ;等待遥控信号
;*******以下是9MS和4.5MS遥控信号电平的识别************************************
remote: MOVTL0,#0 ;//清零TL0
MOVTH0,#0 ;//清零TH0
SETBTR0 ;//开启定时器0
JNBP3.2,$ ;//等待高电平到来,避开遥控信号开始的9MS低电平
JBP3.2,$ ;//等待低电平,高电平到来,此时开始计数
CLRTR0;//高电平结束,停止计数
MOVA,TH0 ;//读取TH0值,TL0忽略不计
CJNEA,#11H,exit;//A中的值应该是11H即遥控信号4.5MS的高电平(4.5MS=1194H)=17(十进制)
inctemp ;对计数器加1
mova,temp
cjnea,#10,exit ;判断计数器是否满10
movtemp,#0 ;满10就清零重新开始
exit: setbp3.2
;显示子程序
display:
mova,temp ;把当前计数器值送A
movdptr,#numtab ;指定查表启始地址
MOVCA,@A+DPTR ;查个位数的7段代码
movp0,a ;送出个位的7段代码
ajmpmain
;上的7段数码管0~9各数字的显示代码
numtab:DB28H,7EH,0a4H,64H,72H,61H,21H,7CH,20H,60H
;****************************************************************
END
以上程序用平凡的新实验板加一个遥控接收头就可以直接看到结果了