1、自学习型红外遥控器设计漓江学院2011电子信息工程11.引言2.工作原理3.模块化设计4 4.部分代部分代码码程序程序目目录录20101 引言引言3Introduction当今社会科学技术的发展与日俱增,人们的生活水平也是日益提高,为了减少人的工作量,所以对各种家用电器、电子器件的非人工控制的要求也是越来越高,针对这种情况,设计出一种集成度比较高的控制体系是必然的。单片机的集成很高,它具有体积小、质量轻、价格便宜、耗电少等突出特点。本课程设计介绍了基于单片机的一种学习型万能遥控器的设计与实现,可以对各种红外线遥控器发射的信号进行识别、存储和再现等功能,从而实现对各类家电的控制。学习型红外遥控器
2、由单片机、红外线接收、红外线发射、显示、存储、按键等部分组成。40202工作原理5Principle红外遥控器的工作原理外遥控器的工作原理利用单片机STC89C52对多个红外遥控编码的脉冲宽度进行测量,并原封不动地把发射信号中高、低电平的时间宽度记忆至扩展存储区的指定地址。当要发射红外信号时,从扩展存储区中还原出相应的红外遥控编码,并调制到38KHz的载波信号上,最后,通过三极管放大电路驱动红外发光二极管发射红外信号,达到学习和发射的目的,从而实现一个遥控器控制多种红外遥控设备。60303 模模块设计块设计7C Contentsontents基于STC89C52学习型红外线遥控器系统框图遥控器
3、由红外接收及红外发射电路、复位电路、控制器AT89S52、按键及状态指示电路组成8Module总电路路图9Module控制芯片选择AT89S52单片机,控制系统按最小化工作模式设计,P1.0接红外线发射,P1.6和P1.7接两个发光二极管用来指示遥控器的工作状态,P3.4和P3.5用来接收和发射红外线。红外接收采用一体化红外遥控接收器(HX1838)。10Module红外接收电路该电路主要的部分是一体化红外接收头,采用NB1838,对接收到得各种红外遥控编码信号进行放大、检波、整形,并调出编码,得到电平,输入单片机。11Module红外发送电路该电路主要由单片机内部的软件来产生38kHz载波信
4、号,并把遥控码调制到载波上后通过P1_ 1口输出已经调制好的红外遥控信号。采用二级放大电路是为了使遥控器的可遥控距离增大,满足用户的要求。12Module外存储电路自学习型遥控器所能存储代码的数量也是衡量一个自学习型遥控器性能好坏的重要指标。自学习型遥控器在学习完某个遥控器的代码后得把该代码存储起来,由于AT89C51内部的数据存储器RAM所能存储的数据有限而且不能掉电保护。所以就需要合适大小的外存储器来存储所学习到的代码。13Module软件流程图140404 代代码码程序程序15Program/*学习型红外遥控器C程序*/#include reg51.h#include intrins.h
5、define uchar unsigned char#define uint unsigned intsbit studylamp=P16;sbit lamp=P17;sbit studykey=P32;sbit remotein=P37;sbit remoteout=P10;sbit txkey=P33 ;uint i,j,m=255,n,k,s;uchar idata remotedata206;uint head;uint remdata;/*1毫秒延时程序*/delay1ms(uint t)for(i=0;it;i+)for(j=0;j120;j+);16Program/*初始化函数
6、/clearmen()studylamp=1;lamp=1;remoteout=1;remotein=1;for(i=0;i0;i-);remoteout=0;ET1=0;TR1=0;n=0;while(1)if(remotedatan=0 x00)delay1ms(10);break;for(i=remotedatan;i0;i-)_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();lamp=lamp;n+;ET1=1;TR1=1;for(i=remotedatan;i0;i-);remoteout
7、0;ET1=0;TR1=0;n+;18Program/*主函数*/main()clearmen();while(1)keywork();/*40KHZ发生器*/void time_intt1(void)interrupt 3 remoteout=remoteout;/*学习函数*/void intt0(void)interrupt 0 ET1=0;TR1=0;EX0=0;EA=0;head=0;studylamp=1;lamp=0;while(studykey=0);while(remotein=1);19Programhead=0;while(remotein=0)_nop_();_nop
8、);_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();head+;n=0;remdata=0 x0000;while(1)while(remotein=1)_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();remdata+;if(remdatam)
9、remotedatan=0 x00;EX0=1;EA=1;goto end;remotedatan=remdata;n+;remdata=0 x0000;while(remotein=0)20Program_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();remdata+;remotedatan=remdata;n+;remdata=0 x00;end:lamp=1;studylamp=0;/*结束*/21Thank youThank you漓江学院2011电子信息工程22






