51单片机毕业设计基于单片机设计的红外线遥控器.docx
- 文档编号:25883358
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:32
- 大小:139.77KB
51单片机毕业设计基于单片机设计的红外线遥控器.docx
《51单片机毕业设计基于单片机设计的红外线遥控器.docx》由会员分享,可在线阅读,更多相关《51单片机毕业设计基于单片机设计的红外线遥控器.docx(32页珍藏版)》请在冰豆网上搜索。
51单片机毕业设计基于单片机设计的红外线遥控器
基于单片机的遥控器设计
姓名:
王许朋
学号:
45
院系:
工学院机械系
班级:
2011级机电一班
日期:
2014年11月8日
摘要
本设计主要应用了AT89C2051单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外光的优点。
文章首先介绍了红外遥控的基本原理和应用范围,再对AT89C2051单片机的结构和性能给出简单的说明,接着给出了遥控器的编码格式,及遥控发射器,遥控接受器的电路设计。
对于遥控操作的不同,遥控发射器通过对红外光发射频率的控制来区别不同的操作;遥控接收器通过对红外光接收频率的识别,判断出控制操作,来完成整个红外遥控发射、接收过程。
最后分别详细介绍遥控系统的发射部分和接收部分的电路原理图和程序流程图。
关键词:
单片机;红外线;发射;接受
绪论………………………………………………………………………1
第1章设计方案论述……………………………………………………………3
设计目的与原理……………………………………………………………3
单片机红外遥控发射器设计原理…………………………………………3
单片机红外遥控接收器设计原理…………………………………………4
第2章遥控器硬件电路设计……………………………………………………5
单片机AT89C2051介绍……………………………………………………5
简介……………………………………………………………………5
引脚介绍………………………………………………………………5
红外线遥控电路设计………………………………………………………5
信号发射电路…………………………………………………………6
信号接收电路…………………………………………………………8
CPU时钟电路………………………………………………………………9
独立式按键结构……………………………………………………………10
掉电保护与低功耗设计……………………………………………………10
低功耗的实现方法……………………………………………………10
掉电保护与低功耗设计………………………………………………11
系统完整电路设计图………………………………………………………13
红外发射电路图………………………………………………………13
红外接收电路图………………………………………………………14
第3章遥控器软件设计…………………………………………………………15
遥控发射器程序设计………………………………………………………15
遥控接收器程序设计………………………………………………………20
结束语
参考文献
绪论
红外线遥控是目前使用最广泛的一种通信和遥控手段。
由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。
工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。
从光学的角度而言,红外光是频率低于红色光的不可见光,在无线光谱的整个频率中占有很小一个频率段,波长为—100微秒之间,其中—3微秒之间的红外光称为近红外,3—30微秒之间的红外光称为中红外,30—100微秒之间的称为远红外。
红外光就其性质而言很简单,与普通光线的频率特性没有很大的区别,但是,由于任何有热量的物体均有能量产生,所以红外的利用非常广泛,而且不可取代,能否检测红外、能测到多少红外或者红外检测的技术是否可以应用于任何自然的或想象的场合是红外应用技术的关键。
当今红外技术的一个重要分支是红外通信技术的应用,这个应用的发展非常迅速,尤其是红外通信应用于计算机设备中,近几年的发展已经表现出其非常成熟的特性。
第1章设计方案论述
设计目的与原理
目前市场上一般采用的遥控编码及解码集成电路。
此方案具有制作简单、容易等特点,但由于功能键数及功能受到特定的限制,只适合用某一专用电器产品的应用,应用范围受到限制。
而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随意设定等优点。
本单片机遥控应用系统采用红外线发射频率的不同,来识别不同的遥控功能。
当我们按下某一个按键的时候,由单片机识别出该按键后,由CPU向接有红外发射管的端口发射一定频率的脉冲,该脉冲与38KHz左右的载波脉冲进行调制,然后将已调制的脉冲进行缓冲放大,激励红外发光二极管将电能转化为光能,使得红外发光二极管发射出一定频率的红外线,当接收控制系统接收到该红外光后,由单片机内定时/计数器得到该红外光的频率,然后将该频率送往CPU,由CPU对该信号进行反编码,识别出控制信号,从而对控制电路实施控制功能,完成整个遥控功能。
单片机红外遥控发射器设计原理
单片机红外遥控发射器主要有单片机、行列式键盘、低功耗空闲方式控电路、红外管发射电路以及单片机的一些电源、复位、震荡子电路组成。
单片机不工作时一直处于低功耗状态,采用了空闲节电工作方式。
当遥控器的某一按键被按下以后,外部中断1产生中断,唤醒单片机进入工作状态,查询键盘按下的是哪一个按键,当确认按键后,控制软件启动定时器T0、T1,T1作为发射时间控制器,T0作为红外线发射频率控制器,T0定时溢出时中断程序使红外管接口电平反转一次,写入定时器的初值不同,在输出端口就得到不同的发射频率。
T1定时溢出时中断程序关闭T0定时器,停止红外线发射。
其设计原理框图如图2-1。
AT89C2051
单片机
+5V电源
行列式键盘
低功耗空闲方式
控制电路
红外管发射电路
图1-1单片机遥控发射器设计原理图
单片机红外遥控接收器设计原理
单片机红外遥控接收器主要有单片机、红外遥控接收电路、状态指示电路、控制电路以及单片机的一些外围电路组成。
利用单片机中的T0作为红外脉冲计数器,T1作为计数时间控制器。
当电路中红外接收管接收到第一个红外脉冲时,外部中断1被触发,启动计数器T0和定时器T1。
定时溢出,中断程序关闭计数器T0,读入计数值并进行判断,确定操作对象(遥控按键)对其进行反转操作,控制电路对所控制的负载进行开或关。
还可对接收电路实行上锁功能,对控制电路上锁后,遥控器不能对控制电路实施遥控功能。
其设计原理方框图如图2-2。
AT89C2051
单片机
红外接收电路
状态指示电路
控制电路
+5V电源
图1-2红外接收遥控电路原理框图
第2章硬件电路设计
单片机AT89C2051介绍
简介
AT89C2051是一个低电压,高性能CMOS8位单片机。
片内含有2KB可反复擦写的只读存储器(EPROM)和128B的随机存取存储器(RAM),器件采用ATMEL的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储器,功能强大。
AT89C2051只有20个双向输入/输出(I/O)端口,其中P1是完整的8位双向I/O口,两个外中断,2个16位可编程定时/计数器,两个全双向串行通信口,一个模拟比较放大器。
此外,AT89C2051的时钟频率可为零,即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入工作状态,省电模式中,片内RAM将被冻结,时钟停止震荡,所有功能停止工作,直至系统被硬件系统复位方可继续工作。
引脚介绍
Vcc:
接+5V电源正端
GND:
接+5V电源地端
—:
完整的双向串行通信接口,与还有第二种功能
—:
除外,双向I/O口,除外,均有第二功能,第二功能与MCS-51系列单片机基本相同
XTAL1:
震荡器反向放大器内部工作时钟输入端
XTAL2:
震荡器反向放大器的输出端
RST:
复位引脚,震荡器工作时,该引脚上两个机器周期的高电平复位
图AT89C2051引脚图
主要功能特性
●兼容MCS51指令系统
●15个双向I/O口
●两个16位可编成定时/计数器
●时钟频率0—24MHz
●两个外部中断源
●可直接驱动LED
●低功耗睡眠功能
●可编程URRL通道
●2KB可反复擦写FlashROM
●6个中断源
●—宽工作电压范围
●128*8位内部RAM
●两个串行中断
●两级加密位
●内置一个模拟比较放大器
●软件设置睡眠和唤醒功能
红外线遥控电路设计
信号发射电路
发射部分包括键盘矩阵、编码调制、LED红外发送器。
发射采用脉宽调制的串行码,以脉宽为、间隔、周期为的组合表示二进制的“0”;以脉宽为、间隔、周期为的组合表示二进制的“1”,其波形如图2-2所示。
图2-2遥控码的“0”和“1”
上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。
然后再通过红外发射二极管产生红外线向空间发射。
编码器产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。
芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。
遥控信号编码波形图如图2-3所示。
图2-3遥控信号编码波形图
遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。
一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图2-4为遥控信号的周期性波形图。
图2-4遥控信号的周期性波形
当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。
如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码()组成。
根据红外发射管本身的物理特性,必须要有载波信号与即将发射的信号相“与”,然后将相“与”后的信号送发射管,才能进行红外信号的发射传送,而在频率为38KHz的载波信号下,发射管的性能最好,发射距离最远,所以本设计采用38KHz的晶振产生载波信号,与发射信号进行逻辑“与”运算后,通过三极管的功率驱动到红外发光二极管上。
红外发送电路由4001MOS或非门38KHz振荡器,单片机发送控制电路和红外发送管驱动输出电路组成,当单片机口输出为“0”时,发射管不发光,当单片机口输出为“1”时,红外发送管发出38KHz调制红外线。
具体的发射波形如下图所示。
图2-6调制过程中的波形
红外线通过红外发光二极管发射出去,红外发光二极管是特殊的发光二极管,其内部材料和普通发光二极管不同,因而在其两端施加一定电压时,它发出的是红外线而不是可见光。
目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通发光二极管相同。
如图2-7,为信号发射电路硬件连接图。
图2-7信号发射电路硬件连接图
信号接收电路
红外遥控接收可采用较早的红外接收二极管加专用的红外处理电路的方法。
如CXA20106,此种方法电路复杂,现在一般不采用。
较好的接收方法是用一体化红外接收头,一体化红外线接收头是一种集红外线接收和放大于一体,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。
它将红外接收二极管、放大、解调、整形等电路做在一起,只有三个引脚,分别是+5V电源、地、信号输出。
红外接收头的信号输出接单片机的INTO或INTl脚。
如图3-8,红外接收电路专门采用集成电路RPM6938,RPM6938有三个引脚,一个接电源一个接地,另外一个接信号端,它集光电转换,解调和放大于一体。
当收到38KHz调制红外线时,RPM6938输出为“0”,平时输出为“1”。
信号脚接到和脚上,当RPM6938收到第一个红外脉冲时,触发INT1产生中断,使单片机退出低功耗状态,进入工作状态,同时使记数器0和定时器1开始工作。
图2-8红外接收电路
遥控信号的解码算法及程序编制:
平时,遥控器无键按下,红外发射二极管不发出信号,遥控接收头输出信号
1。
有键按下时,0和1编码的高电平经遥控头倒相后会输出信号0。
由于与单片机的中断脚相连,将会引起单片机中断(单片机预先设定为下降沿产生中断)。
单片机在中断时使用定时器0或定时器1开始计时.到下一个脉冲到来时,即再次产生中断时,先将计时值取出。
清零计时值后再开始计时,通过判断每次中断与上一次中断之间的时间间隔。
便可知接收到的是引导码还是0和1。
如果计时值为9ms,接收到的是引导码,如果计时值等于,接收到的是编码0。
如果计时值等于.接收到的是编码1。
在判断时间时,应考虑一定的误差值。
因为不同的遥控器由于晶振参数等原因,发射及接收到的时间也会有很小的误差。
解码方法如下:
(1)设外部中断0(或者1)为下降沿中断,定时器0(或者1)为16位计时器。
初始值均为O。
(2)第一次进入遥控中断后,开始计时。
(3)从第二次进入遥控中断起,先停止计时。
并将计时值保存后,再重新计时。
如果计时值等于前导码的时间,设立前导码标志。
准备接收下面的一帧遥控数据,如果计时值不等于前导码的时间,但前面已接收到前导码,则判断是遥控数据的0还是1。
(4)继续接收下面的地址码、数据码、数据反码。
(5)当接收到32位数据时,说明一帧数据接收完毕。
此时可停止定时器的计时,并判断本次接收是否有效。
如果两次地址码相同且等于本系统的地址,数据码与数据反码之和等于0FFH,则接收的本帧数据码有效。
否则丢弃本次接收到的数据。
(6)接收完毕,初始化本次接收的数据,准备下一次遥控接收。
CPU时钟电路
时钟电路用于产生单片机工作所需要的时钟信号。
时钟信号可以有两种方式产生:
内部时钟方式和外部时钟方式。
1、内部时钟方式
AT89C2051单片机有一个高增益反向放大器,用于构成振荡器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟发生器,见图3-8,外接晶振时,C1、C2值通常选择为30pF左右;外接陶瓷振荡器时,C1、C2约为47pF。
C1、C2对频率有微调作用,震荡频率范围是—12MHz。
为了减少寄生电容,更好的保证振荡器稳定可靠的工作,谐振器和电容应尽可能安装的与单片机芯片靠近。
内部时钟发生器实质上是一个二分频的触发器,其输出信号是单片机工作所需的时钟信号。
2、外部时钟方式
外部时钟方式是采用外部振荡器,外部振荡信号由XTAL2端接入后直接送至内部时钟发生器。
输入端XTAL1应接地,由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上拉电阻。
一般情况下,单片机时钟输入均采用内部时钟方式,外接一个震荡电路,本设计采用内部时钟方式,晶振采用12MHz,其电路如图2-9。
图2-9AT89C2051时钟电路
独立式按键结构
独立式按键是指直接用I/O线构成的单个按键电路,每个独立式按键占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其他I/O口线的工作状态,其结构简单,但I/O口线浪费较大。
独立式按键配置灵活,软件结构简单,上拉电阻保证了按键断开时,I/O口线有确定的高电平,其电路原理图如图2-10。
图2-10独立式按键电路
掉电保护和低功耗的设计
低功耗的实现方法
AT89C2051单片机的CPU有两种节电工作方式即空闲方式和掉电方式,遥控器采用了空闲节电方式。
当CPU执行完IDL=1(=1)指令后,系统进入空闲工作方式,这时内部时钟不向CPU提供,而只供给中断、串行口、定时器部分。
遥控器退出低功耗空闲方式电路由与门来实现。
当有键按下时,由与门触发外部中断1发生中断,单片机退出空闲工作方式,进入键盘和红外发射程序,结束后又进入低功耗空闲方式待机。
使用过程中单片机基本上都处于空闲工作方式,功耗相当低,从而为使用电池电源提供保障。
掉电保护和低功耗的设计
1.掉电保护
在单片机工作时,供电电源如果发生停电或瞬间停电,将会使单片机停止工作。
待电源恢复时,单片机重新进入复位状态,停电前RAM中的数据全部丢失,这种现象对于一些重要的单片机应用系统是不允许的。
在这种情况下,需要进行掉电保护处理。
掉电保护具体操作过程如下:
单片机应用系统的电压检测电路检测到电源电压下降时,触发外部中断INT0或INT1,在中断服务子程序中将外部RAM中的有用数据送入内部RAM保存。
因单片机电源入口的滤波电容的储能作用,可以有足够的时间来完成中断操作。
备用电源自切换电路属于单片机内部电路。
它由两个二极管组成,当电源电压高于VPD引脚的备用电源电压时,VD1导通,VD2截止,单片机由电源供电;当电源电压降到比备用电源电压低时,二极管VD1截止,VD2导通,单片机由备用电源供电。
备用电源只为单片机内部RAM和专用寄存器提供维持电流,这时单片机外部的全部电路因停电而停止工作,时钟电路也停止工作,CPU因无时钟也不工作。
当电源恢复时,备用电源还会继续供电一段时间,大约10ms,以确保外部电路达到稳定状态。
在结束掉电保护状态时,首要的工作是将被保护的数据从内部RAM中恢复过来。
当用户检测到一个掉电保护电路时,立即通过外部中断输入线INT0来中断单片机现行操作。
外部中断0服务程序将有关数据信息送入片内RAM保存,然后向写入0,输出的这个低电平触发单稳态电路MC755。
它输出的脉宽取决于R、C的数值及VCC是否以掉电。
如果当单稳态定时输出后,若VCC仍然存在,这是一个假掉电报警,并从复位开始重新操作;若VCC已掉电,则断电期间由单稳态电路给RESET/VPD供电,维持片内RAM处于“饿电流”供电状态保存信息,一直维持到VCC恢复为止。
80C2051的掉电保护过程则不同。
当电压检测电路检测到电源电压降低时,也触发外部中断,在中断服务子程序中,除了要将外部RAM中的有用数据保存以外,还要将特殊功能寄存器的有用内容保护起来,然后对电源控制寄存器PCON进行设置。
PCON寄存器的各位定义如表2-1。
表2-1PCON寄存器的各位定义
D7D6D5D4D3D2D1D0
SMOD
—
—
—
GF1
GF0
PD
IDL
其中,SMOD是波特率倍增位,在串行通信中使用。
GF1、GF0:
通用标志,由软件置位、复位。
PD:
掉电方式控制位,PD=1,则进入掉电方式。
IDL:
待机方式控制位,IDL=1,则进入待机方式。
由软件将PD置1,就可以使单片机进入掉电保护状态。
这时,单片机的一切工作都停止,只有内部RAM和专用寄存器的内容被保存。
掉电保护时的备用电源是通过VCC引脚接入的。
当电源恢复正常后,系统要维持10ms的恢复时间后才能退出掉电保护状态,复位操作将重新定义专用寄存器,但内部RAM的内容不变,可将被保护的内容恢复。
如图2-11,为掉电保护电路。
图2-11掉电保护电路
2.低功耗设计
在很多情况下,单片机要工作在供电困难的场合,如野外、井下和空中,对于便携式仪器要求用电池供电,这时都希望单片机应用系统能低供耗运行。
以CMOS工艺制造的80C31/80C51/87C51型单片机提供了空闲工作方式。
空闲工作方式(通常也指待机工作方式)是指CPU在不需要执行程序时停止工作,以取代不停的执行空操作或原地踏步等待操作,达到减小功耗的目的。
空闲工作方式是通过设置电源控制寄存器PCON中的IDL位来实现的。
用软件将IDL位置1,系统进入空闲工作方式。
这时,送往CPU的时钟被封锁,CPU停止工作,但中断控制电路、定时/计数器和串行接口继续工作,CPU内部状态如堆栈指针SP、程序计数器PC、程序状态寄存器PSW、累加器ACC及其他寄存器的状态被完全保留下来。
在空闲工作方式下,80C51消耗的电流由正常的24mA将为3mA。
单片机退出空闲状态有如下两种方法。
第一种是中断退出。
由于空闲方式下,中断系统还在工作,所以任何中断的响应都可以使IDL位由硬件清零,而退出空闲方式下,单片机就进入中断服务程序。
第二种是硬件复位退出。
复位时,各个专用寄存器都恢复默认状态,电源控制寄存器PCON也不例外,复位使IDL清零,退出空闲工作方式。
MCS—51的掉电保护也是一种节电工作方式,它和空闲工作方式一起构成了低功耗工作方式。
一旦用户检测到掉电发生,在VCC下降之前写一个字节到PCON,使PD=1,单片机进入掉电方式。
在这种方式下,片内震荡器被封锁,一切功能都停止,只有片内RAM00H—7FH单元的内容被保留。
在掉电方式下,VCC可降至2V,使片内RAM处于50微安左右的“饿电流”供电状态,以最小的耗电保存信息,VCC恢复正常之前,不可进行复位;当VCC正常后,硬件复位10ms即能使单片机退出掉电方式。
在本设计中,退出空闲工作方式采用中断的方法。
当遥控键盘上的人任一个按键按下以后,与门输出即为低电平,触发INT1引脚,外部中断1响应,使IDL位清零,退出空闲工作方式,恢复正常状态。
系统完整电路设计图
红外发射电路图:
如图2-13,为红外发射电路图:
图2-13红外发射电路图
红外接收电路图:
如图2-14,为红外接收电路图:
图2-14红外接收电路图
第3章系统软件设计
遥控发射器程序设计
此设计是一个红外遥控发射器,设计目的就是根据按键的不同,发射出不同的红外信号。
传统的遥控器都是采用遥控发射专用集成芯片,由于这些芯片的功能键数及功能受到特定的限制,只适合于某一专用电器产品的应用,应用范围受到限制。
本设计采用单片机制作,采用编程的方法,由于编程具有灵活性,故应用范围较广,操作码可随意设定。
本设计采用的是按红外发射频率的不同,来识别不同的按键。
操作键设定为
8个,K0至K7,分别接至单片机的至口。
对应的红外发射频率分别为300Hz、600Hz、900Hz、1200Hz、1500Hz、1800Hz、2100Hz、2400Hz。
发射时间确定为一个定值,由定时器1来定时,时间为100ms,当100ms时间到定时器1发生中断,停止计时,红外光也停止发射。
由定时/计数器0来控制发射频率,T0作为定时器,当T0定时时间到,中断程序使断口的电平反转一次,然后T0重新工作定时值与前相同,时间到中断程序使端口翻转一次,如此往复,红外信号就按一定的时间间隔发射出去。
通过设定T0的定时时间来控制红外信号的发射频率。
平时遥控器工作在空闲方式下,当有键按下时,由外部中断1产生中断,使CPU回到工作状态,待执行完操作后又回到低功耗才状态。
主程序主要由初始化程序、键盘扫描程序,定时器0中断服务程序、定时器1中断服务程序,外部中断1中断服务程序组成。
本电路采用的是软件按键消抖的方法,就是调用一个延时子程序,延时时间设定为6ms。
如图3-1,为遥控发射器主程序流程图,当K2至K7键按下时,执行的程序类似于按下K1键所执行的程序。
START
调初始化程序
进入低功耗节电方式
外部中断1中断
CPU退出低功耗方式
T0时间到
翻转一次
T1时间到
关T0、T1置1
调延时程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 毕业设计 基于 设计 红外线 遥控器