红外线接收控制器的制作
[10-10 20:38:44] 来源:http://www.88dzw.com 电子制作 阅读:8247次
文章摘要:70h,70h,0x90,0x6f, //0键70h,70h, 0x00,0xff, //1键……70h,70h, 0xd0,0x2f //power 键 根据以上数据分析得,每键码为4字节,前2字节固定不变,为用户识别码,后2字节均不同,是操作码。将遥控器上的各键键值码测出后,根据这些数据可以根据制作需要进行编程了。因键值码为4字节太长,不利于编程,需要将各键键值转为相对应的1字节的数据,如:70h,70h,0x90,0x6f,对应于0 ,70h,70h, 0x00,0xff对应于1…… 转换方法: 建立一个数组,将上述测得的各键码按顺序放入数组中(去掉用户识别码)code
红外线接收控制器的制作,标签:电子小制作,http://www.88dzw.com70h,70h,0x90,0x6f, //0键
70h,70h, 0x00,0xff, //1键
……
70h,70h, 0xd0,0x2f //power 键
根据以上数据分析得,每键码为4字节,前2字节固定不变,为用户识别码,后2字节均不同,是操作码。将遥控器上的各键键值码测出后,根据这些数据可以根据制作需要进行编程了。因键值码为4字节太长,不利于编程,需要将各键键值转为相对应的1字节的数据,如:70h,70h,0x90,0x6f,对应于0 ,70h,70h, 0x00,0xff对应于1……
转换方法:
建立一个数组,将上述测得的各键码按顺序放入数组中(去掉用户识别码)
code Byte arr[][2]=
{
0x90,0x6f, //0,尽可能按键0、键1……的先后顺序放,以符合习惯
0x00,0xff, //1
……
0x10,0xef, //9
0xd0,0x2f //power 13
};
在接收红外线的外部中断1函数中编写如下的键码转换语句:
DATA Byte arrtmp[4];
DATA Byte Keytmp; //转换后的键值寄存变量
DATA Byte Keyval=NOKEY;
bit KeyOk;// 键值转换完成与否的标志
bit d_Ok;//接收到一个完整的键码标志
void Ex_int(void) interrupt 2
{
Byte i;
Byte (*p)[2];
……
if(d_Ok) //若接收到完整的键码
{
d_Ok=0; //清除
if(arrtmp[0]==0x70&&arrtmp[1]
==0x70){ //键码转换
for(p=arr,i=0;i<14;i++,p++)
{ if(arrtmp[2]==*(*p+0)&&arrtmp[3]
==*(*p+1))
{ Keytmp=i; KeyOk=1; //键值
转换成功标志
break;
} else {Keytmp=NOKEY; } //未
接收到完整的键值
}
}else { Keytmp=NOKEY; }
}
}
经过转换后的Keytmp为0、1、2……的整数,然后再编写主函数、调速函数(参源程序),来进行电风扇调速。
有关电路的一些解释:单片机U1(AT89C2051)P37脚输出高低电平通过R13控制光耦可控硅MOC3041(参数可在《电子制作》网站查找)通断,通过控制其通断时间比来达到电风扇调速。
有关红外周期检测和电风扇调速实例的源程序可在本刊网站上下载。
Tag:电子制作,电子小制作,维修教程知识 - 电子制作
- 上一篇:又一款555制作的水位控制器
《红外线接收控制器的制作》相关文章
- › 红外线接收控制器的制作
- › 基于AT89C2051的红外线接收控制器的制作
- › 自制PC机红外线接口(Irda)
- › BL20106红外线接收前置放大集成应用电路图
- 在百度中搜索相关文章:红外线接收控制器的制作
- 在谷歌中搜索相关文章:红外线接收控制器的制作
- 在soso中搜索相关文章:红外线接收控制器的制作
- 在搜狗中搜索相关文章:红外线接收控制器的制作
编辑推荐
最新更新
热门排行