咨询热线:036-901273071

单片机做红外遥控解码器“亚博登录官方网站”

本文摘要:家里有电视遥控器还是空调遥控器?你也想让它远程控制其他电器甚至你的电脑吗?好吧,和我一起做这个红外遥控解码器。这种小规模生产所需的元件很少:一个单片机TA89C2051、一个用于RS232模块电平和TTL电平切换的MAX232CPE、一个红外喷嘴、一个11.0592MHz的晶体振荡器、四个电解电容10uf、一个10uF、一个电阻1K1、一个约300欧姆、两个陶瓷电容30P2。 八个发光二极管。价格严重不足,20元。

亚博登录

家里有电视遥控器还是空调遥控器?你也想让它远程控制其他电器甚至你的电脑吗?好吧,和我一起做这个红外遥控解码器。这种小规模生产所需的元件很少:一个单片机TA89C2051、一个用于RS232模块电平和TTL电平切换的MAX232CPE、一个红外喷嘴、一个11.0592MHz的晶体振荡器、四个电解电容10uf、一个10uF、一个电阻1K1、一个约300欧姆、两个陶瓷电容30P2。

八个发光二极管。价格严重不足,20元。电路原理说明:主控单元为单片机AT89C2051,中断端口INT0接红外抑制管U1,接管红外信号的脉冲,8个发光二极管作为指示解码的输入(也可用于扩展与其他控制电路的连接),U3接电脑串口RS232时为电平切换芯片, 引脚9和10分别与单片机的引脚1和2相连(引脚1为串行接管,引脚2为串行传输)晶振采用11.0592MHz,通信波特率可超过9600b/s,计算机一般默认值为9600 B/s,8个数据位,1个暂停位,无校验位。

电路就是这么简单。现在分析一下显式编程过程。起始位为3.6ms低电平,然后为3.6ms高电平,然后数据表示为0.9ms低电平,0.9ms高电平周期为1.8ms响应0,0.9ms低电平2.4ms高电平周期为3.3ms响应1,写程序时,取高于3.8ms的小于3.4ms作为延续位,高于2.7ms高电平响应1的小于2.2ms,高于1.11的小于0.84ms。

所以我们主要是用单片机测量高电平的长度来确认是1还是0。定时器0的工作模式设置为模式1: movtmod,#09h,因此设置定时器0意味着将GATE更改为1,16位计数器,仅次于计数值为2的第16个动力机周期。

该模式由外部中断INT0控制,即当INT0为低电平时,允许计数器计数。例如:jbp3.2,$jbp3.2,$clrtr0可以测量一个高电平,然后加载计数值TH0,TL0可以区分是延续位还是1或0。

在确认码表之前,您可以在P0端口用8个指示灯指示代码。16位代码指示两次:movp0,keydataacalldelay _ 1s;//1ms延时子程序movp0,keydata 1ljmpmain根据p0连续两次指示的代码记录每个按键的代码,形成码表,即遥控代码解码完毕。码表确定后,接管遥控器的编码,与码表对比,查找给定的码项,将字节项对应的序号输入P0端口,将序号输入串口输入电脑。电脑接管数据后,串口软件要求如何处理。

程序不宽,以下是原程序和注释:(再看流程图)keydataequ30h//这个地址和31H地址用来存储遥控器的键码。org00hmain:movkeydata,# 0;//clear movtmod,# 09h//设置定点0模式1,GATE=1movr7,# 0;//计数器,用于统计8位movr6,#0是否剩余;//counter,用于统计是否还剩2个字节(16位编码)jbp3.2,$;//如果低,则再次://如果较低,则继续执行movtl0,# 0;//清除TL0movth0,# 0;//清除TH0setbtr0//打开定时器0jnbp3.2,$;//等待高层来jbp3。


本文关键词:单片机,做,红外,遥控,解码器,“,亚博登录,亚博,登录

本文来源:亚博登录-www.pycsalver.com