❶ 关于单片机 发射红外线遥控电视机疑问
是电视机遥控器?还是机顶盒遥控器?
还有写程序之前需要确认电视机遥控器的编码方式,否则一切都是白搭。
是NES编码?还是SAA3010T编码?……
如果你不知道就说说你电视机的品牌型号吧。
比如我家的:
电视机是长虹,长虹遥控器的编码方式是SAA3010T。
机顶盒遥控器的编码方式是NES。
艾诺MP4V8000遥控器的编码方式也是NES。
红外遥控插排遥控器的编码方式也是NES。
几个遥控器挺麻烦的,所以我就用STC11L04做了一个4和1遥控器,很方便的!
STC1205A32S2比传统51单片机有所改进,有很多扩展功能,只要你将它的各项功能大概了解,上面的程序只是小问题了。
不建议:
使用中断产生38K载波。
推免驱动发射二极管。
用软件或者PWM产生38K载波更好:
方便调制,可以调节占空比,提高脉冲电流峰值,实现低功耗发射远的目的。
推免驱动允许最大电流20mA,一般6米左右也是可以的,
但是,加个三极管,发射距离比推挽远的多,为什么不用,反正又不复杂。
下面是PNP三极管驱动电路(占空比使用约3:4)
❷ 单片机红外遥控器键值
红外编码一般组成是:低8位用户码、高8位用户码、8位数据码、8位数据码反码。用户码用于区分遥控器和不同接收设备的对应关系(就是一个遥控器对应一个接收设备),8位数据码是告诉接收设备你是按的哪个键,8位数据码反码是接收设备验证收到的8位数据码的正确性。你所说的单片机红外遥控器键值就是指8位数据码,确定遥控器各个按键和接收设备各个功能的对应关系。回答完毕,希望对你有所帮助。
❸ C51的单片机做红外空调编码发送的问题 就是现在单片机发送的波形和空调遥控器发送的波形基本上是一样的
是38KHZ的载波频率,占空比1/3,一般正负1kHZ没什么问题。
首先你要先确定空调是采用什么编码格式,(现在常用的是NEC,飞利浦等编码格式)。然后还要确定空调接收的按键键值(数据)所执行的功能,编码格式很重要,不然空调是接受不到按键键值(数据)的,注意发送的数据是要加到载波上面去。
❹ 单片机控制红外遥控编码解码中定时器和外部中断的作用是什么红外遥控编码解码的大致步骤是什么
同时使用上定时器 跟 外中断 的红外程序,只有解码程序。而且该方式,只能解析 使用不同时间长度代表数据“0”、“1” 的波形(如数据‘1’的时间长度 2倍于数据‘0’的时间)。
解析原理:外部中断接 红外输入,当有 红外信号的时候,该引脚会有波形输入(N多下降沿),触发外部中断,通过记录 每2次中断的时间间隔,可以判断此段时间对应的数据(0/1)。一般“数据”长度为32位数据
注意点:
①初次产生外中断的时候,并无 时间记录,不需要进行时间判断;
②第二次中断与第一次中断 之间 的时间,是 红外的引导码,该时间一般多倍于数据时间(一般为ms级时间);
③第三次中断与第二次中断的时间,即为 第一个数据 的时间;
④第34次中断与第33次中断的时间间隔,即为 第32个数据的时间;
⑤后面 可能存在 停止位,是否存在,由遥控器决定;不过,一般都直接忽略该位,除非该位是由自己制作的遥控器 发出 的校验位;
⑥后面 可能存在 连发码,是否存在,由遥控器决定;
另外:一般红外数据的每个字节都是LSB在前,MSB在后的( 低位先发,高位后发)
软件要处理以下情况:
①干扰的处理,有些红外接收头不仅仅对38KHz频率光有反应,可能对人体红外、日光灯红外一样有反应,那就存在干扰。如果它只产生一次干扰,就会使系统卡在引导码接收阶段;
②引导码时间过短、过长 的处理;
③接收数据位数不足的处理;
④完成32位数据接收后,处理接收烂尾:后面不会有中断(如果需接收停止位、连发码,就增加对应数据长度),需要停止计时。
⑤进行数据校对,一般第一字节跟第二字节互为反码,第三字节跟第四字节互为反码,而且第一字节 代表 一个地址、一个密码,只有地址、密码正确,才能算合法的操作。
❺ 求单片机红外遥控解码识别长按和短按键的C语言例子
以NEC格式为例:
按键一次: 依次发送 引导码 + 地址 + 地址取反 + 数据 + 数据取反
长按键: 隔110ms左右发一次引导码(重复),并不带任何数据(全部为高电平)
所以根据这个特点可以识别长按键:
程序接收一帧数据后,提取出地址和数据,然后判断
......
//有地址和数据的,为一次按键
.....
//地址和数据为空的,为重复按键
if((ir_addr_code==0xffff)&&(ir_origin_data==0xff)&&(ir_data==0xff))
{
repeat=1;
key= last_key;
}
❻ 遥控器中使用的编码器芯片,与单片机是什么关系单片机可以用软编码那么解码芯片,存在的意义是什么
简单说,编解码器等等程控芯片就是个专用的单片机,就是对通用的单片机进行裁剪,把不需要的功能和端口裁掉,并增强某部分的功能;