基于单片机的遥控器的设计与实现_第1页
基于单片机的遥控器的设计与实现_第2页
基于单片机的遥控器的设计与实现_第3页
基于单片机的遥控器的设计与实现_第4页
基于单片机的遥控器的设计与实现_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的遥控器的设计与实现Ⅰ 基于单片机的遥控器的设计与实现摘要:随着时代的发展,科技的进步,人们对遥控器的实用性和功能要求性越来越高,传统遥控器虽然制作简单,但是功能单一,只能够遥控某一指定电器产品,应用范围受到了极大的限制,远远满足不了人们的需求。为了跟上时代的需求,采用单片机进行系统遥控的应用设计,其功能强大,又便捷,将会引领时代的潮流。本设计以AT89S51单片机作为核心,应用大学课程中所学到的关于单片机的相关知识,然后通过上网和查阅书籍了解到了红外光的特点。综合了这些知识,设计一些简单的电路图如红外发射电路图和红外接收电路图,最后通过C语言编程,完成这次设计。关键词:遥控器;红外发射;红外接收Abstract:Withthedevelopmentofthetimesandtheprogressofscienceandtechnology,peoplearemoreandmoredemandingonthepracticabilityandfunctionoftheremotecontrol.Althoughthetraditionalremotecontrolissimple,thefunctionissingle,itcanonlyremotecontrolacertainelectricalappliance,andthescopeofapplicationhasbeengreatlyrestricted,soitcannotmeettheneedsofpeople.Inordertokeeppacewiththeneedsofthetimes,theapplicationdesignofremotecontrolsystemwithMCUispowerfulandconvenient.Itwillleadthetrendofthetimes.ThisdesigntakestheAT89S51singlechipasthecore,usestherelatedknowledgeaboutthesinglechipcomputerintheuniversitycourse,andthenunderstandsthecharacteristicsoftheinfraredlightthroughtheInternetandthebooks.Combiningtheseknowledge,somesimplecircuitdiagrams,suchasinfraredemissioncircuitdiagramandinfraredreceivingcircuitdiagram,arSedesigned.Finally,thedesigniscompletedbyprogramminginClanguage.基于单片机的遥控器的设计与实现全文共19页,当前为第1页。Keywords:Remotecontrol;Infraredemission;Infraredreception.基于单片机的遥控器的设计与实现全文共19页,当前为第1页。Ⅱ目录25206摘要 Ⅰ25206Abstract Ⅰ25206目录 ⅡTOC\o"1-3"\h\u18623绪论 页(共19页)绪论目前,红外遥控技术飞速发展,已经逐渐融入了人们的生活中。工业上,越来越多的机器设备使用红外遥控技术来实现智能化,减少了对人工的需求,在一些恶劣的环境里,通过远程操控,就可以避免人身伤亡。在比较常用的家用电器上,比如电视机、空调、电灯等使用了这种技术,给人们带来了极大的便利。当然,此设备的运用主要就是使用红外遥控器。在电视机、收音机以后,越来越多的小型设备使用数字信号完成。它操作简单却遥控功能强大,低消耗高收益。红外线有高传输效率,高反应速度,和提供稳定环境的优点,如今几乎所有的无线遥控器设备都基于红外遥控的方式制作而成的。加上在遥控系统中加进了单片机,电器设备得到了高速发展。在我看来,红外遥控的发展人们最能切身体会的就是看电视,再也不用手动切换频道了,可以躺在床上简单的操纵一下手中的遥控器就可以切换频道了。上世纪60年代初,很多西方国家开始着手研究遥控产品,但是由于当时实验室没有现在这么精确的实验仪器设备,遥控器的研究受到了很大的制约。直到80年代,由于集成电路和计算机技术逐渐成熟,遥控技术因而得到了较快的发展。总而言之,遥控器成功的从有线过度到了无线,极大的方便了人们的生活。过去的遥控设备通常使用电磁波信号传输,但是电磁波在传播过程中信号容易受到干扰,被更加实用的超声波取代了。现在,几乎所有遥控器都采用红外线方式了,此课题探讨的也是基于红外线方式制作出来的遥控器。1红外遥控红外线可以作为优秀的传播介质,我们可以通过控制光线的强弱调制从而达到信息的传输,接着信息调制红外线产生的载波,最后接收端去掉载波即可收收到信息。如今,几乎所有的红外遥控都采取这种方法。1.1红外通信原理

基于单片机的遥控器的设计与实现全文共19页,当前为第3页。红外通信是无线通信的一种常用方式,顾名思义,它是通过红外线作为载体进行传播数据。发射端将被二进制处理过后的脉冲序列,引起发射端发射出信号。然后接收端将其接收到的信息转化成为电信号并且放大,经过滤波调解电路处理过后,最后将它还原成为二进制信号输出。基于单片机的遥控器的设计与实现全文共19页,当前为第3页。如图1-1所示:用“0”和“1”进行二次调制。图1-11.2红外发射下图是通过红外发光二极管发射器框图:图1-2可以看出,当按下开关,编码电路会产生编码信号,然后通过调制电路的调制和驱动电路驱动,最后得到的编码信号经过发射电路发射出去。1.3红外接收红外接收过程框图如下:图1-3可以看出,红外接收电路接收到信号之后,然后经过放大电路和调节电路,接着该信号经过译码电路并译码,最后译码信号被送入驱动电路和执行电路来实现。基于单片机的遥控器的设计与实现全文共19页,当前为第4页。基于单片机的遥控器的设计与实现全文共19页,当前为第4页。2总体方案设计为了完成设计,我们可以拟出两种方案。2.1简易红外遥控电路此方案制作简单且材料便宜,就是一个常规的集成电路。方案框图如下:遥控器发射部分:图2-1遥控器接收部分:图2-22.2红外遥控开关电路下面是利用单片机制作的遥控开关电路。其框图如下:红外发射部分:图2-3可见,按下单片机的遥控按钮,单片机会向外面发射出红外信号。红外接收部分:图2-4当开关接收到信号,然后经过选择,再传递给单片机,受控电路立即对电器发出控制。基于单片机的遥控器的设计与实现全文共19页,当前为第5页。3单片机基于单片机的遥控器的设计与实现全文共19页,当前为第5页。单片机本质就是一种由中央处理器、RAM、ROM等组成的集成电路,从诞生至今,经历了四十多年的发展,从起初的低位单片机已经发展成为了现在的32位甚至更高位的高端单片机。起初,能应用的环境单一简单,但现在被广泛应用于电脑甚至直接作为只能手机核心处理器。随着时代的发展,单片机已经可靠性越来越高,运用范围越来越广,目前得到了人类的亲睐,已经成为人类生活不可或缺的。因此,为了单片机能有进一步的发展,为了单片机更好的服务于人类,我们应该好好了解并学好它,为以后开发功能更强大的单片机做准备。3.1单片机系统下图是组成单片机系统的基本结构。如图3-1所示:图3-1下图是单片机内部的基本原件及结构,如图3-2所示。图3-2基于单片机的遥控器的设计与实现全文共19页,当前为第6页。基于单片机的遥控器的设计与实现全文共19页,当前为第6页。3.2AT89S51单片机此单片机具有耗能低,有flash存储器和高位微控制器的优点。AT89S51的引脚图如下所示:图3-3AT89S51单片机引脚注释:VCC:接电源端。GND:接地端。P0口:P0口为双向I/O输出口,每位能够驱动8个TTL电平。P1口:P1口为双向I/O,具有内部上拉电阻,P1输出缓冲器能驱动4个TTL逻辑电平。P2口:P2口为双向I/O口,具有内部上拉电阻,可以作为输入口使用。P2口输出P2锁存器的内容。P3口:P3口为双向I/O口,具有内部上拉电阻,p2输出缓冲器能驱动4个TTL逻辑电平。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。基于单片机的遥控器的设计与实现全文共19页,当前为第7页。XTAL2:振荡器反相放大器的输出端。基于单片机的遥控器的设计与实现全文共19页,当前为第7页。3.3系统复位复位是指通过某种操作让单片机的所有寄存器的值成为初始值。外部按键复位和上电复位是复位操作的两种基本方式。如图3-4所示:图3-451单片机复位后,ALE在复位期间将输出高电平,但片内RAM存放的内容不会受复位的影响。程序计数器PC和特殊功能寄存器复位的状态如表3-1所示。表3-1基于单片机的遥控器的设计与实现全文共19页,当前为第8页。3.4晶振电路基于单片机的遥控器的设计与实现全文共19页,当前为第8页。晶振电路的重要组成部分为石英晶体,内含震荡电路和分频电路。作为单片机合格的时钟信号流,众所周知,此电路的性能影响着整个单片机的性能,所以它是单片机重要的组成电路。由于电容的大小对振荡频率有微小的影响,所以可以设计出一个电路图用来微调频率。振荡电路如图3-5所示:图3-5系统的时钟信号是以经过二分频后的振荡脉冲为标准的,使P0口的低8位地址送入锁存器的ALE信号是时钟信号经过三分频产生的。3.5按键电路

此次设计用到的键盘是2*8矩阵键盘,如图3-6所示。该键盘成本且好用,键盘的原理也十分简单易懂。当调用程序扫码时,就能锁定按键位置。唯一的缺点就是按下按键时,产生的波形会有抖动,因而产生误差。这里调用一个10ms的延迟程序来解决抖动问题。图3-63.6中断系统基于单片机的遥控器的设计与实现全文共19页,当前为第9页。3.6.1中断基于单片机的遥控器的设计与实现全文共19页,当前为第9页。当CPU工作时,CUP反应速度快于外设。就会浪费CPU资源。中断的产生就是用于解决这个问题,达到减小CPU资源的浪费目的。中断过程是指中断发生、中断响应、中断服务和中断返回四个过程。3.6.2中断控制(1)IE(A8H):中断允许寄存器中断允许寄存器(IE)决定CPU是否开放或屏蔽中断系统所有中断和某个中断源。IE各位的定义如下表所示:表3-2EA:中断允许总控制位。EA=0,中断被禁止,总是禁止一切中断;EA=1,允许中断。EX0和EX1:外部中断允许控制位。ET0和ET1:定时器/计数器中断允许控制位。ES:串行中断允许控制位。(2)中断优先级控制寄存器(IP)其位地址和位符号如下表所示:表3-3PX0:外部中断0优先级设定位;PT0:定时中断0优先级设定位;基于单片机的遥控器的设计与实现全文共19页,当前为第10页。PX1:外部中断1优先级设定位;基于单片机的遥控器的设计与实现全文共19页,当前为第10页。PT1:定时中断1优先级设定位;PS:串行中断优先级设定位。(3)定时器控制寄存器(TCON)寄存器的位地址和位符号如下表所示:表3-4IE0和IE1:外中断请求标志位。TR0和TR1:定时器运行控制位。TF0和TF1:计数溢出标志位。4电路设计4.1遥控发射单元的电路设计下图是遥控发射单元,其框图如下所示:图4-14.2遥控接收单元的电路设计基于单片机的遥控器的设计与实现全文共19页,当前为第11页。遥控接收单元的电路如下图所示:基于单片机的遥控器的设计与实现全文共19页,当前为第11页。图4-25系统设计5.1硬件设计5.1.1红外遥控发射单元原理单片机将发射端需要的信号调制为特定脉冲序列,经过P1.0口发出用三极管功率放大后,再驱动红外发射管LED1完成发射过程。图5-1是遥控发射单元的发射原理图,其中P1口是键盘扫描口,具有16个功能键,15脚是红外输出口,用于38MHZ载波编码,18、19脚12MHZ晶振。图5-15.1.2红外遥控接收原理基于单片机的遥控器的设计与实现全文共19页,当前为第12页。红外接收单元由AT89S51芯片、控制接收电路和各自的控制电路组成。具有3个引脚,使用起来非常方便和可靠。基于单片机的遥控器的设计与实现全文共19页,当前为第12页。下图为原理图,图中P0口为输出口,由数码管组成,数码管由七个发光管组成,输出的数据为二进制数据,第9脚是单片机复位脚,第18、19是晶振脚。图的右边有若干个LED灯,作为显示灯,整个图还有若干电阻和电容。图5-25.2软件设计5.2.1红外遥控发射流程程序开始之前要进行简单的初始化设置,该发射过程如图所示:基于单片机的遥控器的设计与实现全文共19页,当前为第13页。图5-3基于单片机的遥控器的设计与实现全文共19页,当前为第13页。5.2.2红外遥控接收流程遥控接收程序流程图如图所示:图5-45.2.3红外遥控发射端程序/*****************************************************************文件名:发射端程序 ****************************************************************/#include<reg51.h>#include<instrins.h>#defineuintunsignedint#defineucharunsignedcharucharcount=0;/*****************************************************************名称:delay_1ms()*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)****************************************************************/voiddelay_1ms(uinti){基于单片机的遥控器的设计与实现全文共19页,当前为第14页。 ucharx,j;基于单片机的遥控器的设计与实现全文共19页,当前为第14页。 for(j=0;j<i;j++) for(x=0;x<=148;x++) }/****************************************************************名称:time0_init()*功能:定时器的初始化,定时10ms****************************************************************/voidtime0_init(){ TMOD=0x01; IE=0x82; TH0=0x15; TL0=0xA0; }/*****************************************************************名称:time0_int()*功能:定时器中断****************************************************************/voidtime0_int()interrupt1{ count++; TH0=0x15; TL0=0xA0;}/*****************************************************************名称:keyscan()*功能:实现按键的读取****************************************************************/ucharkeyscan(void){ uchari,j,temp,buffer[4]={0xef,0xdf,0xbf,0x7f}; for(j=0;j<4;j++) { P1=buffer[j]; /*以下三个_nop_();作用为让P1口的状态稳定*/ _nop_(); _nop_(); _nop_(); temp=0x01; for(i=0;i<4;i++) { if(!(P1&temp)) {基于单片机的遥控器的设计与实现全文共19页,当前为第15页。 return(i+j*4); //返回取得的按键值基于单片机的遥控器的设计与实现全文共19页,当前为第15页。 } temp<<=1; } }}/*****************************************************************名称:main()*功能:主函数****************************************************************/voidmain(void){ ucharkey_value;//读出的键值 while(1) { P1=0xf0; if(P1!=0xf0) { delay_1ms(15); //按键消抖 if(P1!=0xf0) { key_value=keyscan()+1; //key_value是键码加1 } time0_init(); TR0=1; while(1) { uchari; for(;count<10;) //发射首部 P2=0x00; count=0; for(;count<10;) P2=0xff; count=0; for(i=0;i<key_value;i++) //发射数据 { for(;count<5;) P2=0x00; count=0; for(;count<5;) P2=0xff; count=0; }基于单片机的遥控器的设计与实现全文共19页,当前为第16页。 TR0=0;基于单片机的遥控器的设计与实现全文共19页,当前为第16页。 break; } } }}/*****************************************************************文件名:接收端程序****************************************************************/#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharcount=0; //定时器计时uchartime=0; //脉冲计时ucharnum=0;//键码值ucharreceive=0;//只有当值为1时才是正在接收数据状态voidreceive();/*****************************************************************名称:delay()*功能:延时,延时时间为****************************************************************/voiddelay(uintk){ uinti,j; for(i=0;i<k;i++) for(j=0;j<1800;j++) ;}/*****************************************************************外部中断0初始化inter0_init()****************************************************************/voidinter0_init(){ EA=1; PX0=0; IT0=1;//下降沿触发}/*****************************************************************外部中断0inter0_int()****************************************************************/voidinter0_int()interrupt0{ TR0=1;基于单片机的遥控器的设计与实现全文共19页,当前为第17页。while(P3^1==0);基于单片机的遥控器的设计与实现全文共19页,当前为第17页。 TR0=0; time=5*count; if(time>450&&time<750) { receive=1;//等于1开始接收数据 EX0=0; num=0; } count=0; }/*****************************************************************定时器0初始化****************************************************************/voidtime0_init(){ EA=1; ET0=1; PT0=1; TH0=0xEC; TL0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论