c51学习型红外遥控器程序


本站首页 | 基础教程 |MCU设计实例 | 常用芯片 | 电子基础 | 本站论坛
当前位置: 单片机教程网 >>MCU设计实例 >> 浏览文章 今天是: 2010年8月4日 星期三 【 农历 6月24日 】
c51学习型红外遥控器程序
作者:佚名   来源:刘洪   点击数: 73 更新时间:2010年08月01日   【字体: 大 中 小 】
#include<AT89X51.H> //装入AT89X51头文件#include<ir.h> //装入红外解码程序#include<24c02.H> //装入24c02读写程序sbit key=P1^0; //定义按键IOsbit led=P0^0; //定义指示ledsbit rel=P0^1; //定义输出控制脚unsigned char kaver; //定义kaver为输出口状态缓存unsigned char iccdate,irdate; //定义24c02数据和解码数据//延时10ms函数,用于开关消抖等delay10ms() { unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); }//学习红外解码并写入24c02的函数study(){ IR_IN(); irdate=IRCOM[3]; iccdate=ReadIIC(W_cmd,0x00,R_cmd);if(irdate!=iccdate) //只在解码结果与读取结果不同时写入24C02{if(irdate!=0) //防止没有接收到红外信号,IRCOM[3]置零时,误写入0{WP=0;WriIIC(W_cmd,0x00,irdate);delay10ms();WP=1;led=0;while(key==0); //学习成功等待按键释放,led停止闪动作为指示} }}//进入学习状态时的led闪动函数flash(){ unsigned char i; while(key==0) { led=~led; for(i=50;i>0;i--) study(); }}//按键模式识别函数keymod(){unsigned char m=0;while(key==0) //如果按键按下,开始对按键时间进行计数{ delay10ms(); //计数时间延时m++;delay10ms(); //计数时间延时if(m>=90) //如果计数次数大于90次,等于按键按下时间大于约5秒后,进入led闪动学习模式{m=0;flash();} } if(m<90) //如果计数次数小于90,则按键作为开关使用 { m=0; kaver=~kaver; }}////////////////////主函数////////////////////////////////////main(){WP=1; //24c02写保护while(1){IRCOM[3]=0; IR_IN(); // 读4字节32位按键编码 ,前16位用户码为IRCOM[1]+IRCOM[2],8位键值码为IRCOM[3] irdate=IRCOM[3]; //8位键值反码为IRCOM[4] 这里只调用 IRCOM[3]键值码作为数据码iccdate=ReadIIC(W_cmd,0x00,R_cmd);if(irdate==iccdate) //如果解码结果与24C读取码相同,kaver翻转一次{irdate=0;kaver=~kaver;} if(key==0) keymod();rel=~kaver;led=kaver;}}
【 发表评论 】【 告诉好友 】【收藏此文 】【 关闭窗口 】
上一篇: 模电—音响放大器制作经验
下一篇:没有了
网友评论 : (第一页显示最新10条评论)
我来说两句 特别声明:发表内容只代表网友个人观点,与本站立场无关。
用户名: 匿名


匿名发表 注册
剩余字数: 400 提交发表 查看全部评论
 >> 推荐文章
单片机USB-ISP下载线制作
自制单片机实验板
单片机一键多功能按键识别设
 >> 阅读排行
keil教程
单片机DS18B20水温控制系

Word文档免费下载Word文档免费下载:c51学习型红外遥控器程序 (共2页,当前第1页)

你可能喜欢

  • 万能遥控器设计
  • 单片机红外遥控程序
  • 红外遥控单片机解码
  • 遥控器学习
  • 红外解码程序
  • 工程电路
  • 红外遥控器编码

c51学习型红外遥控器程序相关文档

最新文档

返回顶部