版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、重庆三峡学院课程设计(论文)题目: 基于单片机红外遥控开关设计 院 系 电子与信息工程学院 专 业 电子与信息工程 年 级 2011级3班 学生姓名 学生学号 指导教师 完成课程设计(论文)时间 2014 年 12 月 目录一、系统硬件部分设计21、系统硬件设计原理及要求22、系统工作原理32.1红外遥控的基本原理32.2 遥控发射器及其编码42.3红外解码思路53、相关器件简介63.1单片机STC89C5163.2红外接收头183874、硬件系统相关电路图84.1系统整体原理图84.2单片机控制系统电路94.4继电器触控电路114.5关于继电器驱动的问题11二、系统软件部分设计121、主程序
2、流程122、 模块化程序简介123、相关程序代码133.1、主程序模块133.2、红外解码程序143.3、继电器控制程序153.4、所用相关延时程序16三、设计调试161、调试前不加电源的检查172、静态检测与调试173、动态检测与调试17四、结论18附 录119附 录220基于单片机红外遥控开关设计一、系统硬件部分设计1、系统硬件设计原理及要求在进行系统硬件设计时,首先需要保证的便是整个系统的功能性与稳定性,将各个硬件电路模块进行认真仔细的分析,在通电之前,需要排除断路与短路现象的存在,以保证系统调试安全性,避免上述问题造成的硬件系统损坏等的不良结果,同时还需考虑到成本的客观因素,以使本设计
3、简单易懂而又经济实用。2、系统工作原理遥控器发出的红外遥控信号经红外接收器1838接收转化成TTL信号后送给STC89C51的中断口1,单片机采集到这些数据后产生外部中断,进入解码程序,对其进行红外解码处理并获得对后置电路所需的控制信息,这些控制信息可直接从I/O口输出,当I/O输出高电平是,使得本设计电路中的三极管9012导通,继电器线圈导通形成磁场,吸住弹片,常闭断开,常开闭合,连通后置电路中的供电电源。继电器控制模块遥控发射模块单片机解码模块红外接收模块值得注意的是,由于继电器的控制线圈有电感,在关断的瞬间会产生较大的反电势,因此需要在继电器线圈上反向并联一个二极管,以保护驱动三极管不被
4、击穿,该设计采用的二极管是IN4148,系统框图如图所示:遥控发射模块:在本设计中应用到的是普通的成品遥控发射器,用来发射含有键码值的红外线,供红外接收头接收。红外接收模块:接收遥控器发射含有键码值信息的红外线,经过接收、放大、整形之后转化成可供单片机识别的TTL电平信号,并送往单片机并被单片机解码。单片机解码模块:单片机对红外接收头传递来的TTL电平信号进行解码处理,得到遥控器的键码值,从而执行后置继电器电路的控制功能。继电器控制模块:单片机驱动继电器的通断工作,从而对后置电路中的供电电源实现开关通断功能控制。2.1红外遥控的基本原理红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外
5、光波,红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射的红外光转换为相应的电信号,再送后置放大器。发射机一般由指令键(或操作杆)、指令编码系统、调制电路、驱动电路、发射电路等几部分组成。当按下指令键或推动操作杆时,指令编码电路产生所需的指令编码信号,指令编码信号对载波进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定的指令编码信号。接收电路一般由接收电路、放大电路、调制电路、指令译码电路、驱动电路、执行电路(机构)等几部分组成。接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号
6、。指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令的操作控制(机构)。如图所示发射部分包括键盘矩阵、编码调制、LED红外发送器,接收部分包括光电转换放大、解调、解码电路,而整个接收部分将完全由上述的1838红外一体化收头来完成,本设计的发射部分采用成品遥控器来发送控制信号。红外遥控器键盘接收、放大、检波、整形编码和调制红外接收头光电放大解调解码单片机红外遥控系统框图2.2 遥控发射器及其编码遥控发射器专用芯片很多,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以WD6122遥控发射器专用芯片组成发射电路为例说明编码原理,该芯片类型的遥控发射器成品键码值如图所
7、示。 本设计使用的成品遥控器键码图当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图所示。遥控编码的“0”和“1”上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射。WD6122 产生的遥控编码是连续的32位二进制码组,所发射的一帧码含有一个引导码,1
8、6位用户编码和八位数据编码,数据编码的反码也同时被传送,编码结构如图所示: 遥控器发射的32位码组图引导码由一个9ms的载波波形和一个4.5ms的关断时间构成,它作为随后发射码的引导码,这样当接收系统是由微处理器构成的时候,能更有效的处理码的接受与检测及其他各项控制之间的时序关系。编码采用脉冲位置调制方式(PPM),利用脉冲之间的时间间隔来区分“0”和“1”。每次8位的码被传送之后,他的反码也被传送,减少了系统的误码率,这也为后续的解码程序的编写提供了自行检测是否误码的手段。2.3红外解码思路遥控器将按键信息进行编码后调制到红外线的某个频率通过发光二极管发射出去,红外接收管接收到发射管发出的红
9、外信号后对该信号进行解调原始编码信息,红外遥控接收头解调出的编码是串行二进制码,包含着遥控按键信息,但它还不便于CPU读取识别,因此需要先对这些二进制码进行解码。当遥控器上任意一个按键按下超过36ms时,控制芯片的振荡器使芯片激活,将发射一个特定的同步码头,对于接收端而言就是一个9ms的低电平,和一个4.5ms的高电平,这个同步码头可以使程序知道从这个同步码头以后可以开始接收数据。 解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”
10、。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右即可。 根据红外编码的格式,程序应该等待9ms的起始码和4.5ms的结果码完成后才能读码。单片机把解码所得的二进制存入相应的存储单元,这样就完成了某一按键的红外解码操作,同样地,按此可以实现其它按键的红外解码,最后形成遥控器按键相应的键值表。就这样单片机程序就可以识别遥控器相应的功能键
11、,通过遥控器向单片机发出相应的命令,单片机接收到命令后通过驱动电路使继电器动作从而实现用电设备的开关。3、相关器件简介本章将对设计中所涉及到的单片机STC89C51、红外遥控接收头1838以及电磁继电器进行简单介绍。3.1单片机STC89C51STC89C51单片机学习板是一款基于8位单片机处理芯片STC89C52RC的系统。3.1.1 STC89C51的特点(1)增强型1T 流水线/精简指令集结构8051 CPU(2)工作电压:3.4V-5.5V (5V单片机)/ 2.0V-3.8V (3V 单片机(3)工作频率范围:0 -35 MHz,相当于普通8051 的0420MHz.实际工作频率可达
12、48MHz.(4)用户应用程序空间12K / 10K / 8K / 6K / 4K / 2K字节(5)片上集成512 字节RAM(6)通用I/O 口(27/23个),复位后为:准双向口/ 弱上拉(普通8051 传统I/O 口)可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/高阻,开漏每个I/O 口驱动能力均可达到20mA,但整个芯片最大不得超过55mA(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片(8)EEPROM 功能(9)看门狗(10)内部集成MAX810 专用复位电路(外部晶体20M
13、以下时,可省外部复位电路)(11)时钟源:外部高精度晶体/ 时钟,内部R/C 振荡器。用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/ 时钟。常温下内部R/C 振荡器频率为:5.2MHz 6.8MHz。精度要求不高时,可选择使用内部时钟,因为有温漂,请选4MHz 8MHz(12)有2个16 位定时器/ 计数器(13)外部中断2 路,下降沿中断或低电平触发中断,Power Down 模式可由外部中断低电平触发中断方式唤醒(14)PWM( 4 路)/ P C A(可编程计数器阵列),也可用来再实现4个定时器或4个外部中断(上升沿中断/ 下降沿中断均可支持)(15)STC89Cc5
14、16AD具有ADC功能。10 位精度ADC,共8 路(16)通用异步串行口(UART)(17)SPI同步通信口,主模式/ 从模式(18)工作温度范围:0 -75/ -40 -+853.1.2 STC89C51的DIP封装40引脚分布STC89C51单片机的DIP封装拥有40个引脚,其中P0P1P2P3四组I/0口,总共32个I/O口引脚,另外包括一个电源VCC引脚,两个晶振引脚一个接地端引脚,一个复位引脚,以及EA引脚、ALE引脚、PSEN引脚,总共40个引脚,引脚分布如图所示。3.2红外接收头1838红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单
15、片机识别的TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。在本设计中采用红外一体化接收头1838,在用小功率发射管发射信号情况下,其接收距离可达15m。它能与TTL、COMS 电路兼容,接收红外信号频率为38 kHz,同时能对信号进行放大、检波、整形,得到TTL 电平的编码信号。三个管脚分别是地(GND)、5 V 电源(VCC)、解调信号输出端(接单片机外部中断)。红外一体化接收头的测试:可以在1838 的电源端与信号输出端之间接上一只二极管及一只发光二极管后,再配上规定的工作电源(为5V),当手拿遥控器对着接收头按任意键时,发光二极管会闪烁,说明红外接收头和遥控器工
16、作都正常;如果发光二极管不闪烁发光,说明红外接收头和遥控器至少有一个损坏。只要确保遥控器工作正常,很容易判断红外接收头的优劣。由于供电电源存在干扰,应该对电源端进行滤波处理,处理方法为:电源端与接地端之间连接一个100左右的电阻以及一个47uF左右的电容,本设计采用0.1uF电容滤波同样能够满足设计要求。1838的经典应用原理图如图所示:1838 OUTPUT 单片机I/O口GND C1 VCC(+5V) R24、硬件系统相关电路图 提供该设计中所涉及到的系统整体原理图以及模块电路的原理图,如红外接收模块、USB供电模块、单片机解码控制模块等。4.1系统整体原理图整个原理图中包括,单片机解码模
17、块,红外接收头模块,继电器控制模块,USB供电模块,而本设计的红外发射模块采用市面上普通的成品遥控发射器。4.2单片机控制系统电路单片机接收红外接收头输出的电平信号产生中断,处理中断服务程序即红外解码程序并完成对继电器的驱动控制,实现电源开关控制功能,如图所示。4.3红外接收头电路遥控器发出的红外遥控信号经红外接收器1838接收处理后直接送给单片机的中断口1,如图所示。4.4继电器触控电路采用5V电磁继电器,在单片机的I/O口输出一个高电平的时候,将驱动晶体三极管9013导通,使得电磁继电器的控制线圈通断形成磁场,可是应该在继电器线圈上加二极管阻断线圈反电势以保护三极管9012,如图所示。4.
18、5关于继电器驱动的问题在整个硬件设计过程中,所遇上的主要问题是如何驱动继电器工作,由于单片机的I/O口在直接连接继电器控制线圈引脚上不足使得继电器线圈以产生拉动弹片的磁场,所以需要对输入的驱动电流进行放大,而在继电器驱动电路上添加一个三极管,则可以解决这个问题。当然,为了避免后置电路中的电源对整个控制系统造成干扰,如有条件,更好的是在三极管与单片机之间增加一个光耦进行光电隔离,值得注意的是,光耦不能够与整个控制电路共用同一个电源,不然不能够实现隔离效果,所以加上隔离光耦为使得系统更加稳定,则还需要设计一独立电源。如图2.18所示,图中两个+5V电源不能为同一个供电电源,R1-R3使用的阻值为1
19、K左右,3、4引脚接后置电路即可。二、系统软件部分设计1、主程序流程 循 环 判 断 主程序开始初始化中断继电器控制程序是否按键?红外解码程序中断返回中断开始 图3.1 系统软件工作流程流程说明:在遥控器按下键码的时候,发射的红外线被一体化接收头接收后输出TTL电平信号,对单片机造成外部中断,进而单片机对红外接收头传来含有编码信息的TTL电平信号进行解码,然后程序中处理得到的键码码值再传至控制程序,如本设计中的继电器控制程序,处理继电器控制程序以实现本设计所要求的开关控制功能,当没有按键按下,程序返回到主程序的最开始,重新进行键码判断。2、 模块化程序简介模块化程序设计即模块化设计,简单地说就
20、是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。逐步求精的结果是得到一系列以功能块为单位的算法描述。以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化,而在模块化C程序设计的过程中包含*.c和*.h两种重要的文件。3、相关程序代码本节将介绍整个系统设计中所涉及到的软件程序代码,包括主程序模块代码、红外解码代码、继电器控制代码以及应用到的主要延时功能代码。3.1、主程序模块#include<reg
21、52.h>#include<intrins.h>#include"macroandconst.h"#include"infr.h" /红外解码程序头文件声明#include"Control.h" /继电器控制程序头文件声明void Inital() IE = 0x84; /允许总中断中断,使能 INT1 外部中断; TCON = 0x04; Main()Inital();P2=0x00; /驱动晶体管是高电平,所以一开始将while(1) / I/O的电平拉低;if(PassWord!=0)/PassWord在红外解
22、码的头文件当中定义,可/以直接在此引用。 Relay(); /继电器控制程序; void Exter1() interrupt 2 /外部中断程序; IR_IN(); /红外解码功能子程序调用; 3.2、红外解码程序#include<reg52.h>#include"macroandconst.h"#include"Delay.h" /延时程序头文件声明;#include"Control.h"sbit IRIN=P33;uchar IRCOM7;uchar PassWord=0;/*函数名称:红外解码程序 函数功能:对红外
23、接收头输出信号进行解码并编码*/void IR_IN() /红外解码程序unsigned char j,k,N=0; EX1 = 0; /关断外部中断,一面再次接接收, delay(15); / 造成程序混乱; if (IRIN=1) /引导码是以低电平开始,所以一开始得检测 EX1 =1;/再次打开外部中断,接收系统码和数据码以及 return;/ 数据反码确认IR信号出现 while (!IRIN) /等IR变为高电平,跳过9ms的前导低 /电平信号。 delay(1); while (IRIN) /等 IR 变为低电平,跳过4.5ms的前导 /高电平信号。 delay(1); for (
24、j=0;j<4;j+) /收集四组数据 for (k=0;k<8;k+) /每组数据有8位 while (!IRIN) /等 IR 变为高电平 delay(1); while (IRIN) /计算IR高电平时长 delay(1); N+; if (N>=30) /判断是否超时 EX1=1; return; /0.14ms计数过长自动离开。 /高电平计数完毕 IRCOMj=IRCOMj >> 1; /数据最高位补“,不是接 if (N>=8) /收串口数据,而是根据脉 /冲的延时来判断1和0;COMj = IRCOMj | 0x80; /数据最高位补1 N=0
25、; if (IRCOM2!=IRCOM3) /判断接受的数据与其反码是 /否相等,相等则重新接收; EX1=1; return; PassWord=IRCOM2; /将接收到的按键码值赋值给变量; EX1 = 1; 3.3、继电器控制程序#include<reg52.h>#include"macroandconst.h" /附录1中包含文件信息;#include"InfR.h"#include"Delay.h"sbit Relay_1=P20;sbit Relay_2=P21;sbit Relay_3=P22;sbit R
26、elay_4=P23;/sbit P2_0=P20;/*函数名称:继电器控制程序函数功能:实现对继电器的红外控制*/void Relay()switch(PassWord) case 0x0c: /遥控器1键的键码;Relay_1=Relay_1; /实现I/O口的高低电平 /转换,控制制驱动晶体管的 /通断,从而控制继电器开合。break;case 0x18: /遥控器2键的键码;Relay_2=Relay_2;break;case 0x5e: /遥控器3键的键码;Relay_3=Relay_3;break;case 0x08: /遥控器4键的键码;Relay_4=Relay_4;break
27、;PassWord=0;/每次处理完控制程序之后需要将其值清零;3.4、所用相关延时程序#include<intrins.h>#include"macroandconst.h"/*函数名称:延时函数 函数功能:实现x*0.14MS的延时 */void delay(uchar x) /x*0.14MS uchar i; while(x-) for (i = 0; i<13; i+) 三、设计调试控制电路板的安装与调试在整个电路的设计中占有重要位置,它是把理论付诸实践的过程,也是把纸面设计转变位实际产品的必经阶段。对试验阶段的电路板的安装一般有两种方式即焊接方
28、式和面包板插接方式。使用面包板焊接更加方便,容易更换线路和器件,而且可以多次使用。本设计常用的调试仪器有:万用表、稳压电源、示波器、信号发生器等。1、调试前不加电源的检查对照电路图和实际线路检查连线是否正确,包括错接、少接、多接等;用万用表电阻档检查焊接和接插是否良好;元器件引脚之间有无短路,连接处有无接触不良,二极管、三极管、集成电路和电解电容的极性是否正确;电源供电包括极性、信号源连线是否正确;电源端对地是否存在短路(用万用表测量电阻)。经过上述检查,我们发现我们所设计的电路存在错接和连接处不良接触的问题,经过细心的检查后,解决了上述的一些电路上的问题。2、静态检测与调试断开信号源,把经过
29、准确测量的电源接入电路,用万用表电压档监测电源电压,观察有无异常现象:如冒烟、异常气味、手摸元器件发烫,电源短路等,如发现异常情况,立即切断电源,排除故障;我们的电路在此项测试中如无异常情况,接着我们又分别测量各关键点直流电压,如静态工作点、放大电路输入、输出端直流电压等是否在正常工作状态下,结果有个别电路不符,经过调整电路元器件参数、更换元器件,使电路最终工作在合适的工作状态;对于放大电路我们还用示波器观察是否有自激发生。结果一切正常。3、动态检测与调试动态调试是在静态调试的基础上进行的,调试的方法地在电路的输入端加上所需的信号源,并循着信号的注射逐级检测各有关点的波形、参数和性能指标是否满
30、足设计要求,如必要,要对电路参数作进一步调整。发现问题,要设法找出原因,排除故障,继续进行。我们所设计的遥控器电路是采用码分制遥控方式,我们用示波器对发射电路输出端及接收电路输入端的信号波型的进行了检查,发现当按下不同的开关按钮时所显示的波型是不同的。这说明了此电路是工作在正常状态的。四、结论 本设计通过了试验,基本上符合设计要求,论文涉及的相关理论的得到了进一步的验证。系统采用软件解码具有电路简单、经济实用、操作简单、适用性强等特点,单片机采用STC89C51,充分利用了它的资源。系统的功能还有很大的扩展空间,比如在程序里集成多个解码程序,让系统自适应不通种类的遥控器,如果系统加入语音芯片还
31、可以在设置语音提示,使之功能更加完美。附 录1文件名 MacroAndConst.h其内容如下:#ifndef _MACRO_AND_CONST_H_#define _MACRO_AND_CONST_H_typedef unsigned int uint16;typedef unsigned int UINT;typedef unsigned int uint;typedef unsigned int UINT16;typedef unsigned int WORD;typedef unsigned int word;typedef
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工现场新冠肺炎疫情防控措施
- 公司股权转让协议(内部转让)
- zc初级中学教学楼墙涂刷工程承包合同
- 合伙购买股票协议书
- 设立有限责任公司合同
- 秋冬季防风防火防雪应急预案范例(3篇)
- 行政部2025年工作计划(2篇)
- 幼儿园小班公开课教案方案样本(5篇)
- 秩序部夜班人员工作制度(4篇)
- 生产车间电器安全操作规程模版(3篇)
- 文史哲与艺术中的数学智慧树知到期末考试答案章节答案2024年吉林师范大学
- 知识图谱智慧树知到期末考试答案章节答案2024年浙江大学
- 《灰尘的旅行》导读
- 高血压患者不遵医饮食行为的原因分析及对策
- 60周岁以上的老年人换领C1驾照三力测试题答案
- 社区依法执业培训课件
- ISO50001能源管理体系管理评审报告OK
- 输送机械安全培训
- 人教版六年级上册计算题专项练习1000题及答案
- 农村文化建设培训
- 教育理念和教育方法
评论
0/150
提交评论