深圳市华胄科技有限公司 >> MCU专题 >> MCU单片机


MCU51学习例程----红外遥控读码器-定时中断数码管显示



提交者 华胄斑竹  在  2008-6-23 14:08:16 

上一篇 下一篇
;=================================================
; 红外遥控读码器-定时中断数码管显示加遥控
;=================================================
; 可用来测试常用家电遥控器的码
;=================================================
;
; mcu51实验板配套学习例程
;
;=================================================
LED1 EQU 10H
LED2 EQU 11H
LED3 EQU 12H
LED4 EQU 13H
LED5 EQU 14H
LED6 EQU 15H
LED7 EQU 16H
LED8 EQU 17H
LED9 EQU 18H
LED10 EQU 19H


IrDataA EQU 1AH
IrDataB EQU 1BH
IrDataC EQU 1CH
IrDataD EQU 1DH


LedT0 EQU 1EH
LedJS EQU 1FH


ORG 0000H
LJMP START;转入主程序


ORG 000BH ;定时器0中断入口


INT_TO:
PUSH ACC
PUSH PSW
SETB RS0


CLR TF0 ;清定时0中断标?
MOV TH0,#0F6H ;2.5MS
MOV TL0,#03DH ;


INC LedJS
MOV A,LedJS
CJNE A,#200,INT_TO_JS ;500MS
MOV LedJS,#00H


MOV R0,#LED1
MOV R1,#9
INT_T0_DDD:
INC R0
MOV A,@R0
DEC R0
XCH A,@R0
INC R0
MOV @R0,A
DJNZ R1,INT_T0_DDD

INT_TO_JS:


MOV A,#11110000B ;关数码管
ORL P2,A


MOV A,LedT0
CJNE A,#0,INT_T0_1
MOV A,LED1
MOVC A,@A+DPTR
MOV P0,A
CLR P2.7
MOV LedT0,#1
LJMP INT_T0_END
INT_T0_1:

MOV A,LedT0
CJNE A,#1,INT_T0_2
MOV A,LED2
MOVC A,@A+DPTR
MOV P0,A
CLR P2.6
MOV LedT0,#2
LJMP INT_T0_END
INT_T0_2:

MOV A,LedT0
CJNE A,#2,INT_T0_3
MOV A,LED3
MOVC A,@A+DPTR
MOV P0,A
CLR P2.5
MOV LedT0,#3
LJMP INT_T0_END
INT_T0_3:

MOV A,LED4
MOVC A,@A+DPTR
MOV P0,A
CLR P2.4
MOV LedT0,#0
LJMP INT_T0_END

INT_T0_END:


POP PSW
POP ACC


RETI


START:
MOV SP,#60H


MOV TMOD,#01H ;设定T0为十六位定时模式。
MOV TH0,#0F6H ;2MS
MOV TL0,#03DH ;
SETB TR0 ;开定时器0
SETB ET0 ;致能定时0中断
CLR TF0 ;清定时0中断标志
SETB EA ;开总中断


MOV LedT0,#00H
MOV LedJS,#00H
MOV DPTR,#TABLE


MOV LED1,#0EH
MOV LED2,#0EH
MOV LED3,#5H
MOV LED4,#1H
MOV LED5,#10H
MOV LED6,#08H
MOV LED7,#08H
MOV LED8,#08H
MOV LED9,#08H
MOV LED10,#11H


MAIN:


JNB P2.2,IR


LJMP MAIN


;以下为进入P3.2脚外部中断子程序,也就是解码程序
IR:
MOV R6,#9
SB:
ACALL DELAY882 ;调用882微秒延时子程序
JB P2.2,EXIT ;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序
DJNZ R6, SB ;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序
;以上完成对遥控信号的9000微秒的初始低电平信号的识别。
JNB P2.2, $ ;等待高电平避开9毫秒低电平引导脉冲
ACALL DELAY2400
JNB P2.2,IR_Rp ;
ACALL DELAY2400 ;延时4.74毫秒避开4.5毫秒的结果码
MOV R1,#IrDataA ;设定1AH为起始RAM区
MOV R2,#4
PP:
MOV R3,#8
JJJJ:
JNB P2.2,$ ;等待地址码第一位的高电平信号
LCALL DELAY882 ;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
MOV C,P2.2 ;将P3.2引脚此时的电平状态0或1存入C中
JNC UUU ;如果为0就跳转到UUU
LCALL DELAY1000
UUU:
MOV A,@R1 ;将R1中地址的给A
RRC A ;将C中的值0或1移入A中的最低位
MOV @R1,A ;将A中的数暂时存放在R1中
DJNZ R3,JJJJ ;接收地址码的高8位
INC R1 ;对R1中的值加1,换下一个RAM
DJNZ R2,PP ;接收完16位地址码和8位数据码和8位数据,存放在1AH/1BH/1CH/1DH的RA中


CLR P2.3 ;蜂鸣器鸣响-嘀嘀嘀-的声音,表示解码成功
LCALL DELAY2400
LCALL DELAY2400
LCALL DELAY2400
SETB P2.3;蜂鸣器停止


MOV A,IrDataA
ANL A,#11110000B
SWAP A
MOV LED1,A


MOV A,IrDataA
ANL A,#00001111B
MOV LED2,A


MOV A,IrDataB
ANL A,#11110000B
SWAP A
MOV LED3,A


MOV A,IrDataB
ANL A,#00001111B
MOV LED4,A


MOV A,IrDataC
ANL A,#11110000B
SWAP A
MOV LED6,A


MOV A,IrDataC
ANL A,#00001111B
MOV LED7,A


MOV A,IrDataD
ANL A,#11110000B
SWAP A
MOV LED8,A


MOV A,IrDataD
ANL A,#00001111B
MOV LED9,A


MOV LED5,#10H
MOV LED10,#11H


MOV LedJS,#201


LJMP MAIN


IR_Rp:
LJMP MAIN


EXIT:
LJMP MAIN ;退出解码子程序


;=============================882
DELAY882: ;1.085x ((202x4)+5)=882
MOV R7,#202
DELAY882_A:
NOP
NOP
DJNZ R7,DELAY882_A
RET
;=============================1000
DELAY1000: ;1.085x ((229x4)+5)=999.285
MOV R7,#229
DELAY1000_A:
NOP
NOP
DJNZ R7,DELAY1000_A
RET
;=============================2400
DELAY2400: ;1.085x ((245x9)+5)=2397.85
MOV R7,#245
DELAY2400_A:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,DELAY2400_A
RET


TABLE:
DB 00101000B ;0
DB 11101011B ;1
DB 00110010B ;2
DB 10100010B ;3
DB 11100001B ;4
DB 10100100B ;5
DB 00100100B ;6
DB 11101010B ;7
DB 00100000B ;8
DB 10100000B ;9
DB 01100000B ;A
DB 00100101B ;b
DB 00111100B ;C
DB 00100011B ;d
DB 00110100B ;E
DB 01110100B ;F
DB 11110111B ;-
DB 11111111B ;
END



单片机教程,五系列(55讲)电子书全集下载

论坛精选:
单片机教程,MCS51单片机从零开始 第一讲:初识单片机
http://bbs.huazhoucn.com/Topic.aspx?id=2539
单片机教程,MCS51单片机从零开始 第二讲:MCS-51单片机简述
http://bbs.huazhoucn.com/Topic.aspx?id=2540
单片机教程,MCS51单片机从零开始 第三讲:单片机相关常用名词解释
http://bbs.huazhoucn.com/Topic.aspx?id=2541
单片机教程,MCS51单片机从零开始 第四讲:计算机中数的表示及运算
http://bbs.huazhoucn.com/Topic.aspx?id=2542
单片机教程,MCS51单片机从零开始 第五讲:常用逻辑电路
http://bbs.huazhoucn.com/Topic.aspx?id=2544
单片机教程,MCS51单片机从零开始 第六讲:51单片机的结构及其组成
http://bbs.huazhoucn.com/Topic.aspx?id=2545
单片机教程,MCS51单片机从零开始 第七讲:51单片机的引脚
http://bbs.huazhoucn.com/Topic.aspx?id=2546
单片机教程,MCS51单片机从零开始 第八讲:8051单片机I/O引脚工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2547
单片机教程,MCS51单片机从零开始 第九讲:8051单片机的存储器结构
http://bbs.huazhoucn.com/Topic.aspx?id=2548
单片机教程,MCS51单片机从零开始 第十讲:编码及译码器工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2549
单片机教程,MCS51单片机从零开始 第十一讲:存储器的存储原理
http://bbs.huazhoucn.com/Topic.aspx?id=2550
单片机教程,MCS51单片机从零开始 第十二讲:51单片机的特殊功能寄存器
http://bbs.huazhoucn.com/Topic.aspx?id=2551
单片机教程,MCS51单片机从零开始 第十三讲:51单片机CPU的内部结构
http://bbs.huazhoucn.com/Topic.aspx?id=2552
单片机教程,MCS51单片机从零开始 第十四讲:定时器/计数器的基本结构及工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2553
单片机教程,MCS51单片机从零开始 第十五讲:51单片机的中断系统
http://bbs.huazhoucn.com/Topic.aspx?id=2554
单片机教程,MCS51单片机从零开始 第十六讲:51单片机的复位
http://bbs.huazhoucn.com/Topic.aspx?id=2555
单片机教程,MCS51单片机从零开始 第十七讲:51单片机执行指令的过程
http://bbs.huazhoucn.com/Topic.aspx?id=2556
单片机教程,MCS51单片机从零开始 第十八讲:51单片机的延时及时序分析
http://bbs.huazhoucn.com/Topic.aspx?id=2557
单片机教程,MCS51单片机从零开始 第十九讲:汇编语言基础
http://bbs.huazhoucn.com/Topic.aspx?id=2558
单片机教程,MCS51单片机从零开始 第二十讲:汇编语言及汇编过程
http://bbs.huazhoucn.com/Topic.aspx?id=2556
单片机教程,MCS51单片机从零开始 第二十一讲:汇编程序的基本结构
http://bbs.huazhoucn.com/Topic.aspx?id=2560
单片机教程,MCS51单片机从零开始 第二十二讲:51单片机的寻址方式
http://bbs.huazhoucn.com/Topic.aspx?id=2561
单片机教程,MCS51单片机从零开始 第二十三讲:数据传送类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2562
单片机教程,MCS51单片机从零开始 第二十四讲:算术运算类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2563
单片机教程,MCS51单片机从零开始 第二十五讲:逻辑运算及移位指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2564
单片机教程,MCS51单片机从零开始 第二十六讲:控制转移类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2565
单片机教程,MCS51单片机从零开始 第二十七讲:布尔变量操作指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2566
单片机教程,MCS51单片机从零开始 第二十八讲:伪指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2567

1 楼  提交者:Guest 在 2008-6-23 16:58:07
红外遥控读码器
2 楼  提交者:Guest 在 2008-7-15 20:39:24
无内容
3 楼  提交者:Guest 在 2008-7-17 11:12:02
vb
4 楼  提交者:Guest 在 2008-7-20 3:50:54
kk
5 楼  提交者:Guest 在 2008-7-21 15:35:25
6 楼  提交者:txyuseing 在 2008-7-22 9:23:14
7 楼  提交者:Guest 在 2008-7-22 23:17:40
8 楼  提交者:Guest 在 2008-7-23 18:02:10
很好的
9 楼  提交者:Guest 在 2008-7-23 23:26:48
10 楼  提交者:Guest 在 2008-7-25 9:58:26
11 楼  提交者:Guest 在 2008-7-27 1:17:44
das
12 楼  提交者:Guest 在 2008-7-28 13:59:44
红外遥控读码器
13 楼  提交者:xjl 在 2008-7-31 13:32:20
这个名字有点长
14 楼  提交者:Guest 在 2008-8-1 15:21:50
红外遥控读码器
15 楼  提交者:haitiantt 在 2008-8-26 17:37:41
回帖不是问题。内容不好就劈死你
16 楼  提交者:Guest 在 2008-9-16 14:18:17
无内容
17 楼  提交者:Guest 在 2008-9-16 14:18:22
无内容
18 楼  提交者:Guest 在 2008-9-18 14:52:20
jj
19 楼  提交者:winkle 在 2008-10-17 21:05:32
谢谢lz的分享
20 楼  提交者:Guest 在 2008-10-18 13:31:16
21 楼  提交者:桂贵平 在 2008-10-19 18:21:17
看看
22 楼  提交者:Guest 在 2008-11-18 19:40:17
sdfsdfsdfdfdf
23 楼  提交者:Guest 在 2008-12-3 8:24:54
学习学习!
24 楼  提交者:Guest 在 2008-12-10 19:10:11
25 楼  提交者:天涯怪客 在 2009-1-7 13:28:14
无内容
26 楼  提交者:王喜明 在 2009-1-29 21:11:12
27 楼  提交者:Guest 在 2009-2-1 17:02:57
呵呵 看看
28 楼  提交者:Guest 在 2009-2-1 17:03:01
呵呵 看看
29 楼  提交者:Guest 在 2009-2-1 17:03:07
呵呵 看看
30 楼  提交者:Guest 在 2009-2-1 17:03:09
呵呵 看看
上一篇 下一篇
当前第〖1〗页 共有3页 转到第 1 2 3