基于AT89C2051的红外线接收控制器的制作

[05-30 04:13:38]   来源:http://www.88dzw.com  单片机电路图   阅读:8115

文章摘要: 根据以上数据分析得.每键码为4字节.前2字节固定不变,为用户识别码。后2字节均不同,是操作码。将遥控器上的各键键值码测出后,根据这些数据可以根据制作需要进行编程了。因键值码为4字节太长。不利于编程,需要将各键键值转为相对应的1字节的数据,如:70h,70h,0x90,0x6f,对应于O,70h,70h,0x00,0xff对应于1..…· 转换方法: 建立一个数组,将上述测得的各键码按顺序放入数组中(去掉用户识别码) code Byte arr[][2]={0x90,0x6f.//0,尽可能按键0、键1..·…的先后顺序放,以符合习惯0x00,0xff,//1……Oxl0,0xef.

基于AT89C2051的红外线接收控制器的制作,标签:电路图讲解,电路图练习,http://www.88dzw.com
    根据以上数据分析得.每键码为4字节.前2字节固定不变,为用户识别码。后2字节均不同,是操作码。将遥控器上的各键键值码测出后,根据这些数据可以根据制作需要进行编程了。因键值码为4字节太长。不利于编程,需要将各键键值转为相对应的1字节的数据,如:70h,70h,0x90,0x6f,对应于O,70h,70h,0x00,0xff对应于1..…·
  转换方法:
  建立一个数组,将上述测得的各键码按顺序放入数组中(去掉用户识别码)
code Byte arr[][2]=
{
0x90,0x6f.//0,尽可能按键0、键1..·…的先后顺序放,以符合习惯
0x00,0xff,//1
……
Oxl0,0xef.//9
0xd0, Ox2f //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,bO:i<14:i++。p++)
    {if(arrtmp[2]==*(*p+0)&&arrtmp[3]
    ==*(*p+1))
    { Keytmp=i:KeyOk=1;//键值
    转换成功标志
    break;
    }else{Keytmp=NOKEY;l//未
    接收到完整的键值
    }
  }eIse{Keytmp=NOKEY;}
  } l
    经过转换后的Keytmp为0、1、2……的整数.然后再编写主函数、调速函数(参源程序)。来进行电风扇调速。
    有关电路的一些解释:单片机U1(AT89C2051)P37脚输出高低电平通过R13控制光耦可控硅MOC3041(参数可在《电子制作》网站查找)通断.通过控制其通断时间比来达到电风扇调速。
    有关红外周期检测和电风扇调速实例的源程序可在本刊网站上下载。

上一页  [1] [2] 


Tag:单片机电路图电路图讲解,电路图练习电子电路图 - 单片机电路图