摘要
遥控器是一种用于远端控制机械的装置,采用单片机进行遥控系统的应用设计,具有硬件接口的简单方便,编程灵活多样,操作码个数可随意设定等优点。本设计遥控发射电路主要有单片机AT89C52控制电路、行列式操作键盘、红外线发射、遥控接收电路构成。通过单片机软件解码实现对一个电灯的调光,以及对继电器的控制功能。本设计的红外遥控系统具有节能和环保的特点,有家庭或工业控制现场。一些手动操作不太方便的场合可以通过设置代替手动操作,利用该遥控器控制其他设遥控功能的电路。如电灯、计算机、电脑、饮水机等,可极大方便人们生活。
关键字: 单片机;红外线发射器;遥控接收器。
I
邵阳学院毕业设计(论文)
目录
摘 要 .................................................................................................................. I 第1章 绪论 ..................................................................................................... 1 第2章 功能要求 ............................................................................................. 1 第3章 方案论证 ............................................................................................. 2 第4章 系统硬件电路的设计 ......................................................................... 3 4.1 遥控发射器的电路设计 ..................................................................... 3 4.2 遥控接收系统的电路设计 ................................................................. 5 第5章 系统程序的设计 ............................................................................... 10 5.1 系统功能的实现方法 ....................................................................... 10 5.2 遥控发射及接收控制程序设计流程图 ........................................... 11 第6章 调试及性能分析 ............................................................................... 12 6.1 调试 ................................................................................................... 12 6.2 性能指标 ........................................................................................... 13 第7章 控制源程序清单 ............................................................................... 13 第8章 总结 ................................................................................................... 22 参考文献 ......................................................................................................... 22 致谢 ................................................................................................................. 23
邵阳学院毕业设计(论文)
第1章 绪论
随着计算机的不断发展,它的一个重要分支——单片机的应用正在不断地走向深入,现在单片机越来越广泛地用于智能仪表、工业控制、日常生活等许多领域。随着移动通信设备的日益普及,红外线遥控已成为目前广泛使用的一种通信和遥控手段,许多电器装置上纷纷采用红外线遥控,给人们的工作,生活带来了方便。因此进行基于单片机的红外线遥控设计有着十分重要的现实意义。论文结合当前红外钱遥控的技术和单片机的应用技术,研究设计了一个基于单片机的红外遥控电脑系统,实现了红外线遥控电脑的基本功能。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。
第2章 功能要求
单片机遥控应用系统要求用单片机作为控制芯片制作一个遥控器,另一个单片机控制系统能被遥控操作, 本单片机制作十五路电器遥控器,可以分别控制十五个电器的电源开关,并且可对一路电灯进行亮度的遥控。采用脉冲个数编码,4×8键盘开关,可扩充到对32个电器的控制。
1
邵阳学院毕业设计(论文)
第3章 方案论证
目前市场上一般设备系统采用专用的遥控编码及解码集成电路。此方案具有制作
简单容易等特点,但由于功能键数及功能受到特定的限制,只适合用于某一专用电器产品的应用,应用范围受到限止。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随意设定等优点。本单片机遥控应用系统采用红外线脉冲个数编码、单片机软件解码实现了对十五个小灯的开关控制,其中一路为一个交流电灯,可以进行亮度的遥控。图3.1和图3.2为该应用系统的遥控器设计原理框图及接收控制系统设计原理框图。
图3.1 单片机遥控器设计原理框图
2
邵阳学院毕业设计(论文)
图3.2 接收控制系统设计原理框图
第4章 系统硬件电路的设计
单片机遥控应用系统电路分遥控发射器电路和遥控接收系统电路。
4.1遥控发射器的电路设计
图4.1.1为该系统遥控发射器的电路原理图,其中P 1口和P0口作键扫描端口,具有32个功能操作键。第(9)脚为单片机的复位脚,采用简单的RC上电复位电路,(15)脚作为红外线遥控码的输出口,用于输出40KHz载波编码。(18)、(19)脚接12M晶振。P0口需接上拉电阻。
3
邵阳学院毕业设计(论文)
图4.1.1 遥控发射器电原理图
1 AT89C52单片机
遥控电路的主芯片采用美国ATMEL公司的AT89C52 FLASH 单片机,它具有8K字节可重编程闪速存储器,使用5V电源电压、256×8位的内部RAM,3个16位定时器/计数器,7个中断源以及空闲和掉电方式等功能。遥控器如用AT89C52中的LV低电压系列,可用2节1.5V电池供电。
2 行列式操作键盘
4
邵阳学院毕业设计(论文)
行列式操作键盘又称为矩阵式键盘。用I/O线组成行、列结构,按键设置在行列的交点上,行列线分别连接到按键开关的两端,键盘中有无按键按下是由列线送入扫描字、行线读入行线状态来判断的,有键按下时通过查键并执行键功能程序。
3 红外线发射电路
遥控器信息码由AT89C52单片机的定时器1中断产生40KHZ红外线方波信号,由P3.5口输出,经过三极管9013放大,由红外线发射管发送。电阻R1的大小可以改变发射距离。
4.2遥控接收系统的电路设计
图4.2.1为该遥控系统的接收器主电路原理图,控制系统主要由AT89C52单片机、+5V电源电路、红外接收电路、50HZ交流电过零检测电路、电灯亮灭及调光控制电路等组成。遥控器发射的红外信号经红外接收处理传送给单片机,单片机根据不同的信息码进行对十五个端口的控制操作。其中P1.1—P1.2作为数码管的二进制数据输出,显示数字为0—7,7代表最亮,0代表最暗,采用4511集成块硬件译码显示数值。P0.0—P0.7以及P2.0—P2.6作为15个电器的电源控制输出,接口可以用继电器或可控硅,在本电路中,P2.0口控制一个电灯的亮灭。P2.7为可控硅调光灯的调光脉冲输出。第10脚P3.0口为50HZ交流市电相位基准输入,第(12)脚为中断输入口,P3.1用于接收红外遥控码输入信号。
5
邵阳学院毕业设计(论文)
图4.2.1 十五路电器控制器电原理图
1. 电源电路
电源电路由桥式整流、虑波电容、7805稳压器及电源指示灯组成。交流电经过桥式整流变成直流电,再经过电容滤波,7805集成稳压器稳压成为稳定的+5V电源,用一个发光二极管指示灯指示电源状态,图4.2.2为电源电路图。
6
邵阳学院毕业设计(论文)
图4.2.2 控制器电源电路图。
2. 50HZ交流电过零检测电路 交流电过零检测电路如图4.2.3所示。
图4.2.3 交流电过零检测电路图
7
邵阳学院毕业设计(论文)
过零检测电路由桥式整流电路和2个9013三极管组成。当UA=UBE>=0.7V时,T1三极管导通,T2三极管截止,B点为低电平,C点(P3.0)为高电平;当UA=UBE<0.7V时,T1三极管截止,T2三极管导通,B点变高电平,C点(P3.0)为低电平。
50HZ交流电过零检测电路图中各点电压波形如图4.2.4所示。
图4.2.4交流电过零检测电路图中各点电压波形图
3.电灯开关及亮度控制电路
图4.2.5为可控硅光亮控制电路设计原理图。电灯的开关受P2.0口控制,也可由可控硅的导通角控制。AT89C52产生可控硅控制的移相脉冲,移相角的改变实现导通角的改变,即当移相角较大时,可控硅的导通角较小,输出电压较低,电灯较暗;当移相角较小时,可控硅的导通角较大,输出电压较高,电灯较亮。
8
邵阳学院毕业设计(论文)
图4.2.5 可控硅光亮控制电路图
当AT89C52的P2.7位低电平时,9012三极管导通,三极管集电极电流驱动光电耦合器导通,使可控硅的G极产生脉冲信号触发可控硅导通;当AT89C52的P2.7位高电平时,9012三极管、光电耦合器、可控硅都处于截止状态。可控硅导通角控制电路中各点波形如图4.2.6所示。
图4.2.6 可控硅导通角控制电路中各点波形图
9
邵阳学院毕业设计(论文)
第5章 系统程序的设计
5.1系统功能的实现方法
(1)遥控码的编码格式
遥控采用脉冲个数编码,不同的脉冲个数代表不同的码。最小为2个脉冲,最大为17个脉冲。为了使接收可靠,第一位码宽为3mS,其余为1mS,遥控码数据帧间隔大于10mS(图5.1.1)。
图5.1.1 P3.5端口输出编码波形图
(2)遥控码的发射
当某个操作按键按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,再调制成40KHZ方波由红外线发光管发射出去。P3.5端口的输出调制波如图8.10。
(3)数据帧的接收处理
当红外线接收器输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收数据帧。在数据帧接收时,将对第一位(起始位)码的码宽进行验证,若第一位低电平码的脉宽小于2mS,将作为错误码处理,当间隔位的高电平脉宽大于3mS时,
10
邵阳学院毕业设计(论文)
结束接收,然后根据累加器A中的脉冲个数,执行相应输出口的操作。图5.1.2为红外线接收器输出的一帧遥控码波形。
图5.1.2 红外线接收器输出的一帧遥控码波形图
5.2 遥控发射及接收控制程序设计流程图
图5.2.1遥控发射器主程序、键扫程序、遥控码发射程序流程图
11
邵阳学院毕业设计(论文)
图5.2.2 遥控接收器主程序、中断程序流程图
第6章 调试及性能分析
6.1 调试
系统在完成硬件的检查后主要进行软件的调试,对遥控器的调试主要是用示波器观察能否在遥控接收器中输出图8.11所示的波形,另外调整发射电阻的大小可以改变红外线发射的作用距离。电灯亮度控制系统的调试主要是对可控硅延时时间的调整,电灯按0-7共八档进行亮度的调整,控制延时经调试后确定如下:
最最暗时的移相角控制延时: 256μS×26H=9728μS 最暗移相角控制延时:256μS×1CH=7168μS 次暗移相角控制延时:256μS×19H=6400μS 中间亮移相角控制延时:256μS×16H=5632μS 次亮移相角控制延时:256μS×12H=4608μS 最亮移相角控制延时:256μS×0EH=3584μS
12
邵阳学院毕业设计(论文)
遥控接收头在安装时应注意尽量靠表面,以扩大接收的角度,不同厂家的遥控接收头的灵敏度也不一致,应选择确定。
6.2 性能指标
调试后系统性能指标测试如下: 1.最大遥控距离: 10米 2.发射接收角:水平最大90度 3.遥控器发射时工作电流: 8 mA 4.遥控器静态电流: 0.6 mA 5.电灯最亮电压:交流200V 6.电灯最暗电压:交流10V
采用红外线遥控方式时,距离、角度等使用效果受一定的限制,如果采用调频或调幅发射接收,则发射距离会更远,接收将不受角度的影响。本单片机遥控编码及解码方案适合一切需要应用到遥控的电器系统,是自行设计带遥控功能的控制系统首选理想方案。
第7章 控制源程序清单
以下是遥控器及接收系统单片机控制C源程序清单:
/*********************************************************************/
// send.c // 遥控发射器 // LRM 2004.10.22
/*********************************************************************/
//使用AT89C52单片机,12MHZ晶振, //
//#pragma src(E:\\remote.asm) #include \"reg51.h\"
#include \"intrins.h\" //_nop_();延时函数用
13
邵阳学院毕业设计(论文)
//
#define uchar unsigned char #define uint unsigned int #define key0 P0 //键列线 #define key1 P1 //键行线 //
sbit remoteout=P3^5; // 遥控输出口 // //
uint i,j,m,n,k,s;
uchar keyvol; //键值存放
uchar code keyv[8]={1,2,4,8,16,32,64,128}; // ////
/*********1毫秒延时程序**********/ delay1ms(uint t) {
for(i=0;i remoteout=0; //关遥控输出 IE=0x00; IP=0x01; TMOD=0x22; //8位自动重装模式 TH1=0xf3; //40KHZ初值 14 邵阳学院毕业设计(论文) TL1=0xf3; EA=1; //开总中断 } // // // /**********发射函数************/ sed() { ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=0;//40KHZ发3 毫秒 for(m=keyvol;m>0;m--) { delay1ms(1); //停1毫秒 ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0;//40KHZ发1毫秒 } delay1ms(10); } // tx() { switch(keyvol) { case 0:keyvol=keyvol+1;sed();break; case 1:keyvol=keyvol+1;sed();break; case 2:keyvol=keyvol+1;sed();break; case 3:keyvol=keyvol+1;sed();break; case 4:keyvol=keyvol+1;sed();break; case 5:keyvol=keyvol+1;sed();break; case 6:keyvol=keyvol+1;sed();break; 15 邵阳学院毕业设计(论文) case 7:keyvol=keyvol+1;sed();break; case 8:keyvol=keyvol+1;sed();break; case 9:keyvol=keyvol+1;sed();break; case 10:keyvol=keyvol+1;sed();break; case 11:keyvol=keyvol+1;sed();break; case 12:keyvol=keyvol+1;sed();break; case 13:keyvol=keyvol+1;sed();break; case 14:keyvol=keyvol+1;sed();break; case 15:keyvol=keyvol+1;sed();break; default:break; } } // // /**********键功能函数************/ keywork() { keyvol=0x00;key1=0xf0;if(key0!=0xff) {delay1ms(20);if(key0!=0xff) {while(key0!=0xff); key1=0xfe;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i;tx();}} } else{key1=0xfd;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+8;tx();}} }} // key1=0xfb;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+16;tx();}} } // key1=0xf7;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+24;tx();}} } } 16 邵阳学院毕业设计(论文) } } // // /***********主函数***************/ main() { clearmen(); //初始化 while(1) { keywork(); //按键扫描 } } // // /*********40KHZ发生器***********/ //定时中断T1 void time_intt1(void) interrupt 3 { remoteout=~remoteout; } // // //*********************结束**************************// /*********************************************************************/ // incept.c // 遥控接收处理器 // LRM 2004.10.22 /*********************************************************************/ 17 邵阳学院毕业设计(论文) //使用AT89C52单片机,12MHZ晶振, // //#pragma src(E:\\remote.asm) #include \"reg51.h\" #include \"intrins.h\" //_nop_();延时函数用 // #define uchar unsigned char #define uint unsigned int #define disout P1 //显示输出 // sbit remotein=P3^1; // 遥控输入 sbit sin=P3^0; //基准正弦波相位输入 sbit AA=P0^0; sbit BB=P0^1; sbit CC=P0^2; sbit DD=P0^3; sbit EE=P0^4; sbit FF=P0^5; sbit GG=P0^6; sbit HH=P0^7; sbit II=P2^0; sbit JJ=P2^1; sbit KK=P2^2; sbit LL=P2^3; sbit MM=P2^4; sbit NN=P2^5; sbit PP=P2^6; sbit QQQ=P2^7; // // uint i,j,m,n,k,s=1; 18 邵阳学院毕业设计(论文) uint keyvol; //值存放 // //// /*********1毫秒延时程序**********/ delay1ms(uint t) { for(i=0;i EA=1; //开总中断 } // // // /**********函数************/ loop() { switch(disout&0x07) { case 0:{s=1;break;} case 1:{s=2;break;} case 2:{s=3;break;} case 3:{s=4;break;} case 4:{s=5;break;} case 5:{s=6;break;} 19 邵阳学院毕业设计(论文) case 6:{s=7;break;} case 7:{s=8;break;} default:break;} } // // /***********主函数***************/ main() { clearmen(); //初始化 loop(); P2=0xfe; while(1) { while(sin==1); delay1ms(s); QQQ=0;delay1ms(1);QQQ=1; } } // // /************外中断遥控接收函数**************/ //外中断0 void intt0(void) interrupt 0 { EX0=0;keyvol=0; if(remotein==0) {delay1ms(1); if(remotein==0) {while(1) {while(remotein==0); 20 邵阳学院毕业设计(论文) keyvol++;k=0; while(remotein==1){delay1ms(1);k++;if(k>2){ OOUUTT;};} } OOUUTT: switch(keyvol) { case 2:{AA=~AA;break;} case 3:{BB=~BB;break;} case 4:{CC=~CC;break;} case 5:{DD=~DD;break;} case 6:{EE=~EE;break;} case 7:{FF=~FF;break;} case 8:{GG=~GG;break;} case 9:{HH=~HH;break;} case 10:{PP=~PP;break;} case 11:{NN=~NN;break;} case 12:{MM=~MM;break;} case 13:{LL=~LL;break;} case 14:{KK=~KK;break;} case 15:{JJ=~JJ;break;} case 16:{II=~II;break;} 17:{if(disout==0x00){disout=0xff;}else{disout--;}loop();break;} default:break; } } } EX0=1; } // 21 goto case 邵阳学院毕业设计(论文) // //*********************结束**************************// 第8章 总结 课程设计锻炼同学们独立动手能力,发现问题,解决问题的重要环节。对于同学们能力的提高具有很大的作用。一方面他能帮助同学们巩固学过的知识,另一方面又能帮助我们学到一些新的知识。因此,它是非常有意义的。 在刚拿到这个题目的时候,脑袋里还是一塌糊涂,根本还不知道到底该如何动手,但在老师的精心指导下。发现他并不是之前想象的那么难。很多大的问题把它化解成小问题,再把小问题逐个解决后,大的问题也就没有了。其中还发现一个很大的问题:就是很难将书本上的东西灵活地运用到这里面来,自己的动手能力还有待提高。 这次课程设计终于顺利完成了,在设计中遇到了很多问题,这在平时的学习当中是没有法相的,比如数模转换器的应用以及它的附加电路,平时就没有和足以到。这次的课程设计业相当于对自己学过的知识进行了一次比较全面的总结于检查,他涉及到很多方面的知识,如:电路,汇编语言,单片机等,对学生的动手能力要求比较高。最后我要对在这次课程设计中的指导老师表示感谢同时也对所有帮助过我的同学们表示衷心的感谢! 参考文献 [1] 李泉溪,单片机原理与应用实例仿真,北京,北京航空航天大学出版社,2009 [2] 江世明,基于protues的单片机应用技术,北京,电子工业出版社,2009 [3] 张克农,数字电子技术,高等教育出版社,北京,2009 22 邵阳学院毕业设计(论文) 致谢 本设计是在黄同成老师的悉心指导下完成的,老师渊博的知识,严谨的治学态度,一丝不苟的工作作风,平易近人的性格都是我学习的楷模。在论文的研究及整理期间,老师给了我很大的支持和鼓励,才使得论文得以顺利的完成,在此谨向老师表示忠心的感谢和崇高的敬意。 同时感谢老师,他们给我们提供了必要的实验器材,提供了很大的方便 感谢同组的学生,在作论文期间,他们不仅在学习上对我有很大的帮助,还在生活上提供方便。在这期间,我和他们相处的是非常愉快的。 最后,感谢各位评委能在百忙之中对我的论文进行审察,由于本人知识有限,不足之处在所难免,还请各位评委指正。 23 因篇幅问题不能全部显示,请点此查看更多更全内容