Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138756
  • 博文数量: 35
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 289
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-21 20:39
文章分类

全部博文(35)

文章存档

2010年(35)

我的朋友

分类: 嵌入式

2010-06-22 22:23:30

项目中要用到红外遥控,要先学习遥控器的编码,然后在发出去,也就是万能遥控器的功能,想着很麻烦,就在淘宝上买了个万能遥控器,想回来改装,买回来了,发现一改装,咋看咋不专业,客户肯定不满意,跟拼凑别人的产品似的,算了,还是自己整吧,嘿嘿,不说废话了,还是看我咋做的红外遥控学习机的吧
1 、功能:利用单键学习型遥控器可以学习任何遥控器的某种按键功能,编码保存在 24C 02 中,保证掉电之后,编码不丢失
2 、使用方法:按下学习键,学习灯亮,用遥控器对准红外遥控接收头,学习完成之后,学习灯熄灭,状态等亮,说明可以发射了,按发射键,就可以发射学习到的编码
3 、系统硬件设计
使用 89C 52 单片机 12M 晶振
sbit studylamp=P2^7;    // 学习指示灯       
sbit lamp=P2^6;         // 状态指示灯          
sbit studykey=P3^2;     // 学习键      (外部中断)   
sbit remotein=P1^1;      // 信号输入       
sbit remoteout=P1^0;     // 信号输出      
sbit txkey=P0^0;          // 发射键            
4 、软件设计
( 1 )初始化
studylamp=1;   // 学习灯不亮                
   lamp=1;        // 发射灯不亮                 
   remoteout=0;   // 关遥控输出                    
   remotein=1;        // 输入位
       IE=0x00;// 关闭中断
       IP=0x01;// 设定优先级 外部中断优先级高
       TMOD=0x22; // 定时器控制寄存器设置串口工作方式   模式 2 自动装入计数器
       TH0=0xf3; // 设定定时器 1 初值        40KHZ 初值
       TL0=0xf3;
       PCON=0x00;// 设定串口 波特率不加倍
       IT0=1;// 外部中断   脉冲触发 边沿触发
       EX0=1;// 允许外部中断 0
       EA=1; // 打开总中断
  ( 2 )学习功能
学习功能的程序可以完成遥控编码的起始位识别、遥控码的宽度计数功能、结束位的识别功能,遥控码的帧间歇位宽度在 10MS 以上,起始位码宽度在 100us----20ms 之间,编码位在 100us-------5ms 之间
确定起始位:高电平宽度超过 5.355ms ,接着是低电平码,就是起始位
读遥控编码:对高电平或者低电平进行脉宽计数,点评掉变的时候计数计数,将计数值保存,确定结束位:在高电平计数,如果超过 5.355ms ,则判断为结束帧位,写入 0x00 作为结束标志
( 3 )编码发射
遥控码发送处理程序利用计数器计数中断功能,实现 40KHz 载波的发送,利用接收的电平时间,控制载波的发送时间
( 4 )向 24c 02 中写数据
void WrToROM(unsigned char Data[],unsigned char Address,unsigned char Num)
参数:要写入的数据、要写入的地址、要写入的数据的个数
( 4 )读 24c 02 中写数据
void RdFromROM(unsigned char Data[],unsigned char Address,unsigned char Num)
参数:读出来的数据要存放的地址、要读的地址、要读的数据的个数
( 5 )延时程序
用于键盘的消抖操作
5 、主程序
// 主函数
void main()
{
     clearmen();// 初始化
       while(1)
       {
              key_tx();      // 发射按键扫描
       }
}
学习按键是外部中断 0      发射编码的时候用的是定时 0 中断
/----------------------------------------------------------------------------------------
作者:宇帆 cfanlwn
阅读(437) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~