课程设计(论文)-单片机的红外遥控系统.docx_第1页
课程设计(论文)-单片机的红外遥控系统.docx_第2页
课程设计(论文)-单片机的红外遥控系统.docx_第3页
课程设计(论文)-单片机的红外遥控系统.docx_第4页
课程设计(论文)-单片机的红外遥控系统.docx_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

摘要 红外遥控技术是红外技术、红外通讯技术和遥控技术的结合。红外遥控的特点是不影响周边环境、不干扰其他电器设备,抗干扰性强,具有光波的直线传播特性,不易产生相互间的干扰,是很好的信息传输媒体。为了进一步学习了解红外遥控,我们决定基于51学习板,设计制作一个红外遥控器,可分析解读并显示红外信号。本设计综合运用单片机stc89c51的中断系统、定时器/计数器的相关知识对信号进行编码和解码。在发射端,通过三极管将调制好并已加在38khz载波上的信号进行放大,再通过发光二极管发射出去。在接收端,通过红外一体接收头接收信号,将其送入单片机进行解码,并最后在lcd屏上显示结果。在经过软件、硬件的正确调试后,在液晶屏上正确显示了输入红外信号的信息。实验结果验证了本装置设计的合理性。关键词:红外遥控 at89c51 编码和解码 abstractinfrared remote control technology is infrared technology, infrared remote control technology, communication technology and the combination. infrared remote control feature is not affecting the surrounding environment, without interfering with other electrical equipment, interference is strong, with a linear propagation characteristics of light, easy to produce mutual interference, is a good information transmission media. to learn more about infrared remote control, we decided to study based on 51 plates, designed an infrared remote control, can interpret and display the infrared signal analysis. the design of the integrated use of stc89c51 interrupt system, timers / counters knowledge of the signal encoding and decoding. in the transmitter, through the good and the modulation transistor has been added to 38khz carrier signal amplification, and then transmitted out through the light-emitting diodes. at the receiver, one receiver via infrared signal receiver will decode it into the microcontroller, and the final results displayed on the lcd screen. after the software and hardware debugging correctly, the lcd screen on the right shows the infrared signal input information. experimental results demonstrate the reasonableness of the device design.目录1前言22设计原理32.1发射部分设计原理32.2接收部分设计原理33、整体方案设计43.1整体方案设计43.2方案论证53.3方案的比较与选择54、单元模块设计54.1电源电路54.2、单片机最小系统64.3、键盘电路74.4、eeprom电路84.5、接收电路94.6、发射电路94.7、显示电路95、软件设计105.1设计思路105.2 设计流程图106、电路的测试146.1、硬件的测试146.2、软件测试157、总结与展望168、参考文献179、附件181. 前言上世纪八十年代开始红外线遥控技术在日本出现,该技术通过集成发射芯片来实现遥控码的发射而率先使用于电视机。随后,电子技术的飞速发展使多功能红外遥控器应运而生,极大地满足了人们的需求。如今,内部配置了一个动态编码库具备红外学习功能的遥控器,因其用户可根据自身的需求录入编码的人性化设计更是风靡全球。作为当代工科大学生,了解并自己制作具备学习功能的红外遥控器是一项必须掌握的基本知识。 本设计的红外遥控分析器应用了stc89c51单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外线的特点,外光接收频率的识别,判断出控制操作,来完成整个红外遥控发射、接收过程。其优点硬件电路简单,软件功能完善,性价比较高等,具有一定的使用和参考价值。2. 设计原理红外遥控系统一般由红外发射装置和红外接收设备两大部分组成。红外发射装置又可由键盘电路、红外编码芯片、电源和红外发射电路组成。红外接收设备可由红外接收电路、红外解码芯片、电源和应用电路组成。2.1 发射部分设计原理 通过矩阵键盘按下一键值,再通过红外编码芯片进行编码,为了提高信号的传输距离,将已编码的信号加到38khz的载波上,再通过发射二极管发射出去。原理图如下: 芯片编码、载波二极管发射矩阵键盘图12.2 接收部分设计原理 当红外线发射信号进入接收模块后,红外一体接收头对信号进行滤波,并在输出端输出低电平,再经过单片机解码程序进行解码,并在数码管上显示解码结果,从而完成红外线遥控的动作。原理图如下:接收信号芯片解码lcd屏显示图23. 整体方案设计根据该课程设计要求,基本功能为实现红外信号的接收,扩展功能要求结合红外遥控分析器,增加红外发射功能,使得其成为具有学习功能的红外遥控器。由此,首先构想出如图3所示的发射接收流程图。操作键盘单片机红外发射电 路红外接收头单片机lcd图33.1 整体设计思路根据图3的流程图思想,我们把该电路分为接收和发射两部分。接收部分:红外一体接收头是一种集红外线接收、放大、整形于一体的集成电路,不需要任何外接元件,就能完成从红外线接收到输出,并与ttl电平信号兼容的所有工作。没有红外遥控信号时为高电平,收到红外信号时为低电平。其out接口直接与int1相连,通过下降沿触发,发射部分:(发射信号输出)由三极管的基极输入,三极管采用共射的连接方式,发射二极管作为三极管的负载接在集电极,将已经调制好的红外信号发射出去。3.2 方案论证 由以上思路设计出发射电路和接收电路的以下不同方案。如图4和图5。 (a) (b)图4 (a) (b)图53.3 方案的比较与选择(1)、接收电路:图5-b中在接收头的vcc端和gnd端之间接入0.1uf的电解电容进行滤波,在vcc端和out端接入了一个20k的电阻,作分流用。但是经过测量,发现不加这两个元件所得结果和加上后测试结果之间误差很小,以至于可以忽略。然而,连个元件的接入不仅是电路复杂化了,而且在使用时需要考虑到该元件的参数,使用不方便。因此,综合考虑,我们决定选择更为简洁方便,易于控制的图5-a电路。(2)、发射电路:图4-b中的电路和图4-a中电路相比,多接入了两个20pf的电容和一个11.05926mhz的晶振构成了一个皮尔斯振荡电路,从而来产生发射所需的38khz的载波。而图5-b中直接通过程序控制来产生38khz的载波。图a中的晶振由于晶体自身的原因,只能点频工作,频率变化范围小;石英晶片的振动具有多谐性,会产生多次谐波干扰;另外,由于是通过硬件电路实现,需通过改变电路中元件的参数来实现,使用不方便;而且整个谐振回路增大了电路的功耗。综上因素考虑,我们决定使用图4-a中所示电路。4. 单元模块设计4.1、电源电路该系统使用干电池供电。单片机需要5v电源,a/d需要稳定5v电源。采用集成三端稳压芯片lm2904-5.0为系统提供稳定的电源需求。集成三端稳压器主要有两种:一种是线性稳压芯片,另一种是开关型稳压芯片。线性稳压芯片输出纹波小,电路简单,但功耗较大,效率较低,典型芯片为lm7805;开关稳压芯片则功耗小,效率高,但是输出纹波大,电路复杂,典型芯片为lm2596。对于单片机来说,单片机本身功耗低,但是它对电源要求相对较高。经过选型实验对比,lm2940性能较优。lm2940为最大输出1a低压差线性稳压器件。能为单片机及a/d芯片提供稳定的5v电压。4.2、单片机最小系统图6本系统采用89c51单片机,89c51是一种带4k字节闪烁可编程可擦除只读存储器(fperom-falsh programmable and erasable read only memory)的低电压、高性能coms8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。开关键、大电容c3和电阻r5构成复位电路。小电容c1、c2和晶振组成晶振回路,为单片机的正常工作提供时钟信号。本系统主要起到对信号的编码和解码的作用。采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。 一个完整的全码=引导码+用户码+用户码+数据码+数据反码。 其中,引导码高电平9ms,低电平4.5ms;系统码8位,数据码8位,共32位;其中前 16 位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后 16 位为 8 位的操作码和 8位的操作反码,用于核对数据是否接收准确。4.2.1、编码原理当矩阵键盘按下某一键值时,单片机从eeprom中取出该值的八位二进制数,将该调制信号与38khz的载波进行相“与”运算,再把相与后的信号从p1.4口逐位传输给发射电路。其波形图如图7所示。图74.2.2、解码原理 接收方一般使用一体化红外线接收器进行接收解调,当接收到38khz红外信号时,输出端输出低电平,否则为高电平。该输出的波形是与发射波形是反向的,如图8所示。外中断口1接收低电平,单片机对其进行二进制编码,之后转换为十六进制,通过p1.1,p1.2,p1.3口和p2口送入lcd显示屏进行显示。图84.3、键盘电路图9该键盘采用行扫描。其原理是:使第一行线为低电平,如果这条列线上没有闭合键,则各条线的状态都为高电平,如果行线上有闭合键,则相应的那条列线即变为低电平。于是就可以根据按行线号和列线号求得闭合键的键码。行号分别接到了p00,p01,p02 ,p03列号分别接到了p04,p05,p06,p07做成了4*4的矩阵式键盘。4.4、eeprom电路图10 该电路选用了at24c04a。它由4096位串行的电可擦除可编程只读存储器(eeprom)构成。它们组成512个字节,每个字节8位。具有低功耗,低电压的优点。at24c04,at24c04a提供两个电压版本:1.8v(1.85.5v),2.7v(2.75.5v)。当wp引脚连接到vcc时,at24c04a上半部被写保护,at24c04支持全部写保护。可在低电压和标准电压下工作1.8v(vcc=1.85.5v)2.7v(vcc=2.75.5v)内部组织:4k位(512x8)接口:2线串行接口输入端带施密特触发器,可抑制杂波双向数据传输协议100khz(1.8v),400khz(2.7v,5v)可通过写保护引脚进行数据保护页面写操作:每页16字节写操作允许操作部分页高性能4.5、接收电路本设计采用了红外一体接收头(光敏二极管)进行接收,由于该接收头内部已经装配了一个调幅器,带通滤波器,比较器,积分器和施密特触发器,所以外接电路只需在vcc加一个100欧姆的电阻进行限流。当红外监测二极管监测到红外信号,把信号送入调幅器和带通滤波器进行调幅、检波、滤波,然后通过积分器进行波形变换,接着送入比较器进行比较,最后通过施密特触发器的脉冲整形作用形成ttl低电平输出。图114.6、发射电路 将载波携带信号经由三极管放大后由发光二极管发射出去。图124.7、显示电路图13 电路采用的是1602 lcd液晶显示屏。5、软件设计5.1设计思路1.接收部分,通过外部中断检测遥控器发出的波形,接收到数据后通过单片机进行一些列处理,包括接收数据,转化为二进制,转化为十六进制,供lcd显示。接收数据时用外部中断检测,用定时器0的8位自动重装模式计数,判断接收到的是引导码,数据的0或则1。2.发射部分,通过定时器1产生38khz脉冲,提取数据后,与载波相与发射。3.键盘扫描,分为学习扫描,与发射扫描,两种扫描用独立键发射与学习进行选择,学习扫描时,接收到数据后,按下相应键存入指定地址,发射扫描时,则根据按键,从相应地址提取数据并发射。4显示部分,通过lcd1602进行数据显示,初始化时,第一行不变,显示“ir analysis”,第二行前四位显示不变为“code”,在处理完数据后,调用lcd显示字符串函数,显示32位数据(16进制),例:“code 40 bf 01 fe”。5.学习部分,通过独立按键选择后,遥控器发出数据,一体管接收,处理数据暂时装入长度为4的数组中,键盘扫描后,存入at24c04,按发射键后,提取刚才存入的数据,处理后发射。5.2 设计流程图开始5.2.1接收流程图外部中断1,,定时器0初始化检测下降沿,进入中断,t0清零,记下t0时间 小于5ms判断前两次下降沿时间(前导码)大于5ms准备接收后三十二位数据,继续检测外部中断一次接收完后,存入数组,待处理数据处理,存入显示数组,准备显示数据接收完成图145.2.2发射流程图开始定时器1初始化调用maichong子函数,产生载波及延时,发前导码发送数据8位数据发完n四字节数据发完yn发送完成y图15开始5.2.3键盘扫描p0口赋初值p0=0xfe通过swtich语句执操作p0口高位有低电平扫描下一行n四行扫描完成扫描完成图165.2.4显示部分程序开始1602初始化(光标显示位置,清屏等)等待数据送入1602显示n显示结束图17开始5.2.5学习部分学习键按下 n发射键按下准备接收遥控器信号数据接收处理,暂存键盘扫描键盘扫描从at24c04中取出对应数据将数据存入at24c04对应地址发射结束图186、电路的测试6.1、硬件的测试6.1.1、线路测试在线路测试中,主要就是测试焊接完成的电路板线路是否短路,各引脚是否连接正确。断开信号源,把经过准确测量的电源接入电路,用万用表电压档监测电源电压,观察有无异常现象:如冒烟、异常气味、手摸元器件发烫,电源短路等,如发现异常情况,立即切断电源,排除故障。对于各引脚是否正确则就采取先模块后整体的方法:先对照原理图检查实际电路的各个模块是否连接正确,若各个模块内部连接完好,则就检查各个模块之间的线路连接是否正确。6.1.2、电压测试 在一个设计中,电压是很关键的一部分,电压的稳定与否直接影响着整个设计能否正常运行。在本设计中,主要对lm2094-5.0芯片的工作电压也就是5v电压进行测试。利用万用表进行测试。测试时,首先把电压表调到直流电压区,为了保证测量的精确度,测5v时打到20v挡,然后把红色表笔与电源脚相连,黑色表笔与地相连。通过万用表显示数值判断电源电路是否工作正常。6.1.3、功能测试将已经检查无误的电路板通过usb接口与电脑连接,运行已经编译好无错误的正确程序,电路实现其发射或接收功能。在遥控板上按下某一数值,则在lcd显示屏上会显示相应的数值。例如,按下“5”,则出现如图所示结果:图19此时说明该红外遥控分析器的接受功能已经正常实现。发射时,通过键盘矩阵输入一个键值,则在另外的一块电路板的显示器上显示相应的键值。例如,输入键值“4”,则有如下结果:图20由此,说明该遥控器的学习功能已经正常实现。6.2、软件测试6.2.1接收程序测试软件测试通过仿真软件proteus进行仿真.测试接收程序时,利用信号源产生类似红外线脉冲,由单片机接收口输入,通过液晶显示相应的波形数值。仿真模型如图21,波形设置如图22图21图226.2.2发射程序测试用示波器接在发射电路的发射端,仿真时,通过程序发射红外波形,在示波器上观察波形图。如图23图237、总结与展望本次课程设计要求基于51单片机,设计制作一个红外遥控器,可分析解读并显示红外信号,扩展电路要求制作具有学习功能的红外遥控器。从接到任务要求开始,我们便开始进行相关资料的查阅,同时初步考虑制作方案。随后,认真研究了红外一体接收头的内部原理,如何用单片机分析出接收到的信号,以及lcd液晶屏的显示,从而最终拟定了接收方案的电路,并开始写作程序。接收电路完成后,便开始对发射电路进行研究。通过查阅资料,明白了发射原理,并且设计出了发射电路图,用程序实现。当顺利分别实现发射和接收功能后,再将两个程序综合的过程中,遇到了难题:发射功能不能实现了。经过请教同学,最终完成了整个要求的电路功能。这次实验不仅让我们进一步了解了红外遥控技术,增强自己动手能力,最重要的是让我们学会了团队协作,为了共同的目标努力,大家一起查阅资料,探讨设计,遇到难题总是一起寻求解决的方法,当有想放弃的不良情绪产生时,相互鼓励打气。尤其是答辩前最后几天,为进行最后的攻坚,大家同吃同睡,一起熬夜,相互解惑,加深了彼此之间的感情。随着科学技术的飞速发展,红外遥控技术必将有进一步的飞跃,其运用领域也将大大扩展。无论是在军事还是民用,起作用都将日益增大。其发展前景会相当美好。8、参考文献1 胡汉才. 单片机原理及接口技术m 北京: 清华大学大学出版社,20102 严后选 ,孙建国,张天宏,无线红外智能遥控器的设计j 测控技术,2003,22(3)3裴彦纯,陈志超,基于单片机系统的红外遥控器应用j 现代电子技术,2004,44冯成德,刘栋,基于keil c51的红外遥控器解码设计j 自动化与仪器仪表,2003,69、附件附件一: 仿真电路图附件二:实物图 附件二:程序#include #include#include#define uint unsigned int#define uchar unsigned char#define yhm 0x40 /用户码 sbit irin=p33; /红外接收口(int1)sbit irout=p14; /红外发射口sbit rs = p10; /指令数据选择sbit rw = p11; /读写选择sbit e = p12;/lcd使能sbit led=p13; /指示灯sbit scl=p36; /at24c02时钟sbit sda=p37; /at24c02数据sbit learn=p15; /学习键sbit fashe=p16; /发射键char code tab16=0123456789abcdef;char data timenum= ;char data test1= ;uchar irtime;/红外用全局变量bit irpro_ok,irok;uchar ircord4; /处理后的红外码,分别是 客户码,客户码,数据码,数据码反码uchar irdata33; /33个高低电平的时间数据/*初值*/#define m9 (65536-9000) #define m4_5 (65536-4500) #define m1_6 (65536-1630) #define m_65 (65536-580) #define m_56 (65536-560) #define m40 (65536-40000) #define m56 (65536-56000) #define m2_25 (65536-2250)/*/* 函数声明 */*/void ir_work(void);void ircordpro(void);void showstring (uchar line,char *ptr);void irfa(uchar temp);void date(uchar temp);void maichong(bit op,uint temp);/*/* 定时器0中断服务函数 */*/void tim0_isr() interrupt 1 /定时器0中断服务函数 irtime+; /用于计数2个下降沿之间的时间/*/* 外部中断0函数 */*/void ex0_isr (void) interrupt 2 using 0/外部中断0服务函数 uchar i; /接收红外信号处理static bit startflag; /是否开始处理标志位static if(startflag) if(irtime=33)/引导码 9ms+4.5ms i=0; irdatai=irtime;/存储每个电平的持续时间,用于以后判断是0还是1 irtime=0; i+; if(i=33) irok=1; i=0; elseirtime=0;startflag=1;/*/* 定时器0初始化 */*/void tim0init(void)/定时器0初始化 tmod=0x02;/定时器0工作方式2,th0是重装值,tl0是初值 th0=0x00; /重载值 tl0=0x00; /初始化值 et0=1; /开中断 tr0=1; void tim1init(void)tmod=0x01;/*/* 外部中断初始化 */*/void ex1init(void) it1 = 1; /指定外部中断1下降沿触发,int1 (p3.3) ex1=1; /使能外部中断 ea = 1; /开总中断/*/* 红外键值处理 */*/void ir_work(void) /红外键值散转程序 timenum5 = tabircord0/16; /处理客户码并显示 timenum6 = tabircord0%16; timenum8 = tabircord1/16; /处理客户码并显示 timenum9 = tabircord1%16; timenum11 = tabircord2/16; /处理数据码并显示 timenum12 = tabircord2%16; timenum14 = tabircord3/16; /处理数据反码并显示 timenum15 = tabircord3%16; showstring(1,timenum);/显示处理过后的码值 irpro_ok=0; /处理完成后复位标志位 /*/* 红外解码函数处理 */*/void ircordpro(void)/红外码值处理函数 uchar i, j, k; uchar cord,value; k=1; for(i=0;i4;i+) /处理4个字节 for(j=1;j1; if(cord7)/跟晶振有关 value=value|0x80; k+; ircordi=value; value=0; irpro_ok=1;/处理完毕标志位置1 /*/* 微秒延时函数 */*/void delayus(uchar us)/delay us uchar uscnt; uscnt=us1;/*晶振12mhz*/ while(-uscnt);/*/* 毫秒函数声明 */*/void delayms(uchar ms)/delay ms while(-ms) delayus(250); delayus(250); delayus(250); delayus(250); /*/* 写入命令函数 */*/void write_com(uchar date) delayms(5);/操作前短暂延时,保证信号稳定 e=0; rs=0; rw=0; _nop_(); e=1; p2=date; e=0;/*/* 写入数据函数 */*/void write_data(uchar date) delayms(5); /操作前短暂延时,保证信号稳定 e=0; rs=1; rw=0; _nop_(); e=1; p2=date; e=0; rs=0;/*/* 写入字节函数 */*/void showchar(uchar pos,uchar c) uchar p; if (pos=0x10) /每行只有80字节 p=pos+0xb0; /是第二行则命令代码高4位为0xc else p=pos+0x80; /是第一行则命令代码高4位为0x8 write_com(p);/写命令(位置) write_data(c); /写数据/*/* 写入字符串函数 */*/void showstring (uchar line,char *ptr) uchar l,i; l=line4; /行处理 for (i=0;i16;i+) showchar (l+,*(ptr+i);/循环显示16个字符/*/* 初始化函数 */*/void initlcd() delayms(15); /write_com(0x38); /display mode /write_com(0x38); /display mode write_com(0x38); /display mode write_com(0x06); /显示光标移动位置 write_com(0x0c); /显示开及光标设置 write_com(0x01); /显示清屏/*发射*/void irfa(uchar temp)/发射主程序maichong(1,m9);/高9msmaichong(0,m4_5);date(yhm);date(yhm);date(temp);date(temp);maichong(1,m_65);maichong(0,m40);void date(uchar temp)/发八位数据uchar i;for(i=0;i=1;void maichong(bit op,uint temp)th1=temp8;tl1=temp;tf1=0;tr1=1;if(op=0)while(!tf1);else while(1)irout=0;if(tf1)break;irout=1; if(tf1)break; if(tf1)break; if(tf1)break;if(tf1)break; if(tf1)break; if(tf1)break; if(tf1)break; if(tf1)break; if(tf1)break;if(tf1)break; tr1=0; /关闭定时器1 tf1=0; /标志位溢出则清0 irout=1; /脉冲停止后,发射端口常态为高电平/*at24c02*/void delay();void init()sda=1;delay();scl=1;delay();void start()sda=1;delay();scl=1;delay();sda=0;delay();void stop()sda=0;delay();scl=1;delay();sda=1;delay();void respons()uchar i;scl=1;delay();while(sda=1)&(i250)i+;scl=0;delay();void write_byte(unsign

温馨提示

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

评论

0/150

提交评论