电路设计,软件开发,专业项目团队承接电子产品开发!


ISPRO下载型编程器
火爆销售中

RS232/TTL转换器
全IC串口窃电

RS232/TTL转换线
全IC串口窃电

ByteBlasterMV Cable
CPLD/FPGA并口下载线

ByteBlaster II Cable ISPRO下载型编程器
支持S51/AVR/PIC
超级51开发板套件
前卫实用超值

PC/MCU/CPLD
三合一学习套件

全新万年历方案
AVR单片机开发板
 

Min51单片机仿真机
迷你型

ARM7开发板
仅售260元!
 

RS-232/RS-485双向接口电平转换器  

51单片机升级STM32
火爆销售中
MPLAB-ICD2
火爆销售中
LED51开发板
玩具又名图文显示棒

面板模块/开发板
经济危机明智决择

       

GSM MODEM GSM猫

SMS短信模块 工业级/全自动
火爆销售中

大功率数传电台

高速数传电台

您当前位置:电子技术资料 -> 外围驱动 -> 遥控器 ->

祝您阅读愉快!

ISPRO下载型编程器

RS232 TO TTL转换器
↑↑本文相关产品介绍↑↑

红外线接收程序编程方法及遥控器键码接收解码程式


类别:技术文章
来源:未知
作者:未知
关键字:遥控器
加入日期:2010-8-7

红外线接收程序如何写?

方法很多
1:用门控法,设定一个计数器,用外部遥控电平控制开关
2:采样法,如每2ms采样一次,小于3次为4.5ms,大于3次为9ms
3:中断法,遥控信号在翻一次相,元信号和反相后的信号分别接到两个中断上
让一个计数器计时
;*************************************************************************
*
; 文 件 名 : REMOTE.A51 *
; 芯片型号 : AT89C2051 MCU @6Mhz *
; 发射芯片 : PT2222 OR PT2213 *
; 功 能 : 遥控器键码接收解码程式 *
;**************************************************************************
//中国电子网 www.EC66.com
ir_rec_ok bit 00h
ir_first bit 01h

stack equ 50h
custom_code equ 21h
key_code equ 23h

custom_id data 0eh

leader_code data 11h ; 引导码
end_code data 5ch ; 尾码
code_0 data 02h ; "0" 码
code_1 data 04h ; "1" 码

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

org 0000h
jmp initial
org 0003h
jmp ir_recever

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

org 0030h
initial: mov r0,#02h
mov r1,#7fh
clr_reg: mov @r0,#00h
inc r0
djnz r1,clr_reg

mov sp,#stack
mov tmod,#00000001b
mov ip,#00000001b
mov tcon,#00000001b
clr et0
mov ie,#10000001b

main_pro: nop
jb ir_rec_ok,key_pro
nop
jmp main_pro

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

key_pro: nop
nop
nop
nop
clr ir_rec_ok
jmp main_pro

;************** 红外接收解码程式入口 *************************************

ir_recever: push acc
push psw
setb rs0
clr rs1
mov a,th0
mov r2,a
mov tl0,#00h
mov th0,#00h
setb tr0
cjne a,#leader_code,chk_end1
mov r0,#20h
setb ir_first

int_return: clr ie0
pop psw
pop acc
reti

chk_end1: jnb ir_first,int_return
cjne a,#end_code,read_code
jmp int_return

read_code: mov a,r2
cjne a,#code_0,receive_1
jmp receive_0

receive_1: cjne a,#code_1,int_return
setb c
jmp encode

receive_0: clr c

encode: mov a,key_code+1
rrc a
mov key_code+1,a
mov a,key_code
rrc a
mov key_code,a
mov a,custom_code+1
rrc a
mov custom_code+1,a
mov a,custom_code
rrc a
mov custom_code,a
djnz r0,int_return

mov a,custom_code
cjne a,#custom_id,ir_exit_int

mov a,key_code
cpl a
xrl a,key_code+1
jnz ir_exit_int
setb ir_rec_ok
jmp ir_ok_exit

ir_exit_int: clr ir_rec_ok
ir_ok_exit: clr tr0
mov tl0,#00h
mov th0,#00h
clr ir_first
pop psw
pop acc
reti

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

db " ver. 2.00 zhou 00-10-17 16:57 "
end

您可能还会关注的相关技术资料:

中国电子网
www.EC66.com
QQ:34740080 EMAIL:iloveaoe@163.com
最佳浏览:1024*768
Copyright (C) 2001-2010 EC66.COM All Rights Reserved
Aoe/帝国 制作维护
粤ICP备18061901号