文档库 最新最全的文档下载
当前位置:文档库 › 用查询方式实现车载MP3红外遥控器解码程序

用查询方式实现车载MP3红外遥控器解码程序

/*********************************************************************************************
程序名: 用查询方式实现车载MP3红外遥控器解码程序
编写人:
编写时间: 2010年8月8日
硬件支持: AT89S51 外部12MHZ晶振
接口说明: P1.1口接红外接收管,P1.3口接蜂鸣器,P2口数码管位选,P0口数码管段位,
将按键的码值通过P0口的8个LED显示出来
修改日志:
NO.1- 
/*********************************************************************************************

ORG 0000H
JMP MAIN

MAIN:
JNB P1.1,IR ;遥控扫描
LJMP MAIN ;在正常无遥控信号时,一体化红外接收头输出是高电平,程序一直在循环。

;=================================================
; 解码程序
;=================================================
IR:

;以下对遥控信号的9000微秒的初始低电平信号的识别
MOV R6,#10
IR_SB:
ACALL DELAY882 ;调用882微秒延时子程序
JB P1.1,IR_ERROR ;延时882微秒后判断P1.1脚是否出现高电平如果有就退出解码程序
DJNZ R6,IR_SB ;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序


;以上完成对遥控信号的9000微秒的初始低电平信号的识别。
JNB P1.1, $ ;等待高电平避开9毫秒低电平引导脉冲
ACALL DELAY2400 ;延时4.74毫秒避开4.5毫秒的结果码


mov r7,#16 ;忽略前16位系统识别码
jjja:jnb p1.1,$
lcall DELAY882
mov c,p1.1
jnc uuua
LCALL DELAY1000 ;检测到高电平1的话延时1毫秒等待脉冲高电平结束
uuua:djnz r7,jjja


mov r1,#1AH
MOV R2,#2
PP:MOV R3,#8

JJJJ: JNB P1.1,$ ;等待地址码第一位的高电平信号
LCALL DELAY882 ;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
MOV C,P1.1 ;将P1.1引脚此时的电平状态0或1存入C中
JNC UUU ;如果为0就跳转到UUU
LCALL DELAY1000 ;检测到高电平1的话延时1毫秒等待脉冲高电平结束
UUU: MOV A,@R1 ;将R1中地址的给A
RRC A ;将C中的值0或1移入A中的最低位
MOV @R1,A ;将A中的数暂时存放在R1数值的内存中
DJNZ R3,JJJJ ;接收满8位换一个内存
INC R1
DJNZ R2,PP
MOV A,1aH
CPL A
CJNE A,1BH,IR_ERROR

JMP IR_GOTO



IR_ERROR:
;错语退出
LJMP MAIN ;退出解码子程序

;=================================================
;遥控执行部份
;===========================

======================
IR_GOTO:

MOV A,1AH
MOV P0,A ;将按键的键值通过P0口的8个LED显示出来!
CLR P2.0
CLR P1.3 ;蜂鸣器鸣响-嘀嘀嘀-的声音,表示解码成功
LCALL DELAY2400
LCALL DELAY2400
LCALL DELAY2400
SETB P1.3 ;蜂鸣器停止

;清除遥控值使连按失效
MOV 1AH,#00H
MOV 1BH,#00H
MOV 1CH,#00H
MOV 1DH,#00H
LJMP MAIN

;-----------------延时子程序--------------;
DELAY882: MOV R4,#20 ;延时子程序1,精确延时882微秒
D1: MOV R5,#20
DJNZ R5,$
DJNZ R4,D1
RET

DELAY2400: MOV R4,#10; ;延时子程序2,精确延时4740微秒
D2: MOV R5,#235
DJNZ R5,$
DJNZ R4,D2
RET

DELAY1000: MOV R4,#2 ;延时程序3,精确延时1000微秒
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
RET
END

相关文档
相关文档 最新文档