×
单片机 > 单片机程序设计 > 详情

按遥控器任意键数码管加1--- 0--9循环

发布时间:2020-06-04 发布时间:
|

你家里是否有DVD或电视机遥控器呢,大多数遥控器都可以哦.....

按遥控器任意键数码管加1--- 0--9循环显示

平凡的实验板加一个接收头直接使用,如下图所示:

 


程序如下:
;********************************************************************
;     *
;        遥控器按任意键数码管加1,显示0--9依次循环             *
;     *
;     作者:LK811011 QQ:104076687     *
;     *
;                   请各位大虾多多指点     * 
;     *
;***************************************************************

temp  equ 22h  ;计数器数值存放内存位置

;******************************************************************
start:  mov temp,#0 ;初始化计数器,从0开始
MOV TMOD,#09H           ;设置定时0方式1,GATE=1
MOV P0,#28H ;数字0的代码送显示,开机显示0
clr p2.6 ;开数码管显示

MAIN: JB P3.2,$ ;等待遥控信号

;*******以下是9MS和4.5MS遥控信号电平的识别************************************

remote: MOV TL0,#0 ;//清零TL0
MOV TH0,#0 ;//清零TH0
SETB TR0 ;//开启定时器0
JNB P3.2,$ ;//等待高电平到来,避开遥控信号开始的9MS低电平
JB P3.2,$         ;//等待低电平,高电平到来,此时开始计数
CLR TR0                 ;//高电平结束,停止计数
MOV A,TH0         ;//读取TH0 值,TL0忽略不计 
CJNE A,#11H,exit        ;//A中的值应该是11H即遥控信号4.5MS的高电平(4.5MS=1194H)=17(十进制)  

inc temp ;对计数器加1
mov a,temp
cjne a,#10,exit ;判断计数器是否满10
mov temp,#0 ;满10就清零重新开始
exit: setb p3.2

;显示子程序

display: 
mov a,temp  ;把当前计数器值送A
mov dptr,#numtab  ;指定查表启始地址
MOVC A,@A+DPTR   ;查个位数的7段代码
mov p0,a  ;送出个位的7段代码
ajmp main

;上的7段数码管0~9各数字的显示代码

numtab: DB 28H,7EH,0a4H,64H,72H,61H,21H,7CH,20H,60H

;**************************************************************** 

END

以上程序用平凡的新实验板加一个遥控接收头就可以直接看到结果了





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机中高阻态的实质及意义