家电课程设计 红外多功能遥控器.docx
《家电课程设计 红外多功能遥控器.docx》由会员分享,可在线阅读,更多相关《家电课程设计 红外多功能遥控器.docx(23页珍藏版)》请在冰豆网上搜索。
家电课程设计红外多功能遥控器
家电原理及检测
课程设计
现代家电通用红外遥控器
学院:
机械与电子工程学院
专业:
电子信息工程专业
班级:
10306101
学号:
1030610101
姓名:
易绍江
指导老师:
谢勇勤
2013年1月1日
目录
一、课程设计题目1
二、课题设计目的及意义1
三、红外线遥控器工作原理1
四、遥控器硬件设计思路1
1、MCU控制模块2
2、红外发射电路及其编码3
(1)红外发射电路3
(2)红外遥控编码5
3、遥控器红外接收模块6
4、遥控器存储电路7
5、显示模块及键盘模块9
(1)键盘电路9
(2)显示电路10
五、遥控器软件设计12
1、软件流程图12
2、程序代码13
3、程序执行说明18
六、心得体会19
一、课程设计题目
现代家电通用遥控设备
二、课题设计目的及意义
随着社会的发展,空调器在家庭中已经十分普及,与此同时,和空调器相伴的空调遥控器的品种和产量不断提高。
但是一旦遥控器损坏,由于各个厂家遥控器生产的标准不同,所以不能互换,万一原来品牌不易购买,则会使得此台家用电器瘫痪。
所以利用单片机设计一个通用的空调遥控器,只要这种遥控器的技术能够掌握,则其他任何家电的遥控器都能设计。
红外遥控具有独立性、物理特性与可见光相似性、无穿透障碍物的能力及较强的隐蔽性等特点。
遥控器都采用红外线技术,只是不同的厂家对遥控器的各个开关的编码不相同,但是每个厂家都提供有自己产品的红外遥控的编码,所以就可以利用单片机技术,将各个厂家的编码都存储到程序中,通过逐一的发射来选择哪一组编码适合这台家用电器,找到之后将这组编码确定,就完成了遥控器的设置。
本课题的目的就是实现一个遥控器控制多台设备,来解决市场上普通遥控器不兼容的问题,这将给人们的生活带来极大的便捷。
系统电路主要包括接收电路、发射电路、键盘电路、显示电路以及存储电路。
三、红外线遥控器工作原理
红外线LED发光波长在940nm左右为不可见光,是以GaAs组成的二极体装置,当它被加上顺向偏压时,就能发出红外光,其顺向电压约为1.2V,顺向电流最大值一般可达50mA,有的甚至可达150mA,其所工作的顺向电流愈大,所发出之红外线愈强。
红外线LED之逆向电压最大值为3~6V,使用时需多加注意。
红外线LED的应用很多,家电用遥控器算是其中之一,发射红外光是以脉波调驱动红外线LED,其好处是当脉波宽度愈小时,其工作周期愈小,可使红外线LED承受较大的峰值电流,以产生较强的发射光束,通常可采用不稳态多谐振荡器来做,其所形成的脉波束去驱动红外线LED,可以较高的频率传送,而得到较远的传送距离。
四、遥控器硬件设计思路
根据课题要求初步制定了实现万能空调遥控器功能的基本思路。
此系统主要分为6大模块:
单片机控制模块、红外接收模块、红外发送模块、键盘模块、存储模块、显示模块。
其中的主要模块是单片机控制模块,键盘的扫描,液晶的显示,红外遥控信号的接收、发射都是由单片的程序来控制。
系统原理框图如图1所示:
图1
一般只以红外线接收二极管做为接收感测元件时,其接收灵敏度通常较低,遥控距离很短。
另有一种红外线接收模块,其采积体化的设计,将红外线接收二极体及所需的信号放大,检波、波形整形电路等电路积体化,外加金属外壳,增加了感应灵敏度及遥控距离,红外线接收模块只有3支脚,一支接正电源、一支接地、另外一支为输出,供应电压4.7V~5.3V之间输出信号位准,TTLIC相容,可以直接与89C51配合使用。
1、MCU控制模块
使用基于STC单片机,不如STC89C52单片机,它是一种低功耗、高性能、采用COMS工艺的8位微处理器,与工业标准型80C51单片机的指令系统和引脚完全兼容。
片内8KFlash存储器可在线重新编程,而且单片机的机器周期可us级,则其计时精度为us级,完全可以满足系统测量的要求,并且成本低,加密性好,抗干扰强。
STC89C52采用40PIN封装的双列直插DIP结构。
40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线和P3口线复用。
STC89C52的引脚图如图2所示,其引脚功能如下:
图2
2、红外发射电路及其编码
(1)红外发射电路
红外光是电磁波的一种,其频率高于微波而低于可见光,是一种人的肉眼看不到的光线。
红外线的波长较短,更适合用于短距离控制系统中。
红外光可以通过红外发光二极管(LED)获得,红外发光二极管是一种由PN结构成的注入电流型发光器件,在加上合适的正向偏置电压后,就可以发出一定波长的近红外光。
发射电路如图4所示。
目前大量使用的红外发光二级管发出的红外线波长为940nm左右,外形与普通φ5发光二极管相同,只是颜色不同。
发光二极管有交流电流、直流电流和脉冲电流等驱动方式。
交流驱动方式主要用于红外测量、检测以及较简单的红外光通信中。
而直流电流驱动方式的红外光电二极管功率较小、功耗较大、抗干扰能力也很差。
为了提高红外遥控系统的工作距离,而又不使红外发光管过载,故选用脉冲电流驱动方式,红外遥控系统的工作有效作用距离取决于发光二极管辐射的峰值功率,而峰值功率是由驱动发光二级管的电路峰值所决定的。
在相同的平均电流下,脉冲宽度越窄,峰值功率越大,传输的速度就越快,发光的效率也就越高,遥控的有效距离也就越远。
这种发射方式也大大提高了系统的抗干扰能力。
脉冲电流驱动发射方式示意图所图5所示。
图4红外发射电路图
图5脉冲电流驱动发射方式
(2)红外遥控编码
红外遥控信号是一连串的二进制脉冲码。
为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的载波频率上,然后再经红外发射二极管发射出去,成为调制。
本设计红外遥控信号采用自定义编码方式。
因HS0038的红外接收频率为38KHZ,所以载波信号采用38KHZ矩形波,周t=26us,载波信号由单片机产生。
“1”用低电平的宽度为26ms相当于10个38KHZ脉冲宽度和高电平26ms相当于10个38KHZ脉冲宽度表示;“0”用低电平的宽度为52ms相当于20个38KHZ脉冲宽度和高电平26ms相当于10个38KHZ脉冲宽度表示。
这样发射时,只需将发射的“1”或“0”与38KHZ载波信号调制即可。
如图6所示。
图6“1”、“0”的表示
二进制信号的调制如图7所示:
图7二进制信号的调制
帧结构的定义:
引导码—用户码—控制码—截止码。
在发送字节的开始先通过单片机发送8位数据(字节高位在前,低位在后),高四位表示用户码,第四位表示控制码,最后发送10个脉冲的低电平作为传输结束。
图7为红外遥控数据帧格式。
用户码是对每个接收系统的标识,通过用户码的检验,每个遥控器按键只能被其中一个接收器识别,从而可能告知相应空调,有效地防止多个空调之间的串扰。
由于有4位用户码,所以系统理论上可以控制16个空调。
3、遥控器红外接收模块
采用一体化红外接收头。
红外一体化接收头是集红外接收、放大、滤波和比较器输出等一体的模块,不需要任何外接元件,就能完成从红外接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合各种红外线遥控和红外线数据传输。
这钟红外接收电路不仅简单而且更加可靠。
一体化的红外接收装置将遥控信号的接收、放大、整形集于一身,并且输出可以让单片机识别的TTL信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。
在本系统中我们采用红外一体化接收头HS0038,外观如图8所示。
HS0038黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏障,功耗低,灵敏度高。
三个管脚分别是地、+5V电源、解调信号输出端。
当无遥控信号输入时,HS0038输出端保持高电平,有信号时输出为低电平脉冲,故接收时一个码由一个低电平后跟一个高电平构成。
本系统红外遥控接收电路如图9所示。
将其输出端接入单片机外部中断0的INT0脚。
图8
4、遥控器存储电路
遥控器在学习完某个遥控器的代码后得把改代码存储起来,由于单片机内部的数据存储器RAM所能存储的数据有限,所以就需要合适大小的外存储器来存储所学习到的代码。
这里采用常用的存储芯片AT24C02。
AT24C02是由ATMEL公司提供的,I2C总线串行EEPROM,其容量为1KB,工作电压在1.8V—5.5V之间,生产工艺是CMOS工艺,具有工作电压宽(2.5V—5.5V)、擦写次数多(大于1000次)、写入速度快、抗干扰能力强、数据不易丢失、体积小等特点。
其引脚图和时序图分别如图11、图12所示。
AT24C02引脚图
AT24C02时序图
引脚功能介绍如下:
A0(引脚1):
器件地址的A0位。
A1(引脚2):
器件地址的A1位。
A2(引脚3):
器件地址的A2位。
GND(引脚4):
地线。
SDA(引脚5):
数据总线引脚。
SCL(引脚6):
时钟总线引脚。
TEST(引脚7):
测试引脚。
Vcc(引脚1):
电源线引脚。
AT24CXX系统的器件地址是A6A5A4A3A2A1A0R/W,其中最低位R/W除外,其余都是地址位,共有7位,其中低3位A2A1A0由引脚连接决定,高4位A6A5A4A3已经由厂家给出为1010。
R/W决定数据传输的方向,当R/W=1时,是从存储器读出数据,当R/W=0时,是向存储器写入数据。
AT24C02内有256字节存储单元,片内地址使用一字节(8位)地址寻址就可以满足要求。
地址范围是00H-FFH。
存储电路原理图如图13所示:
图13存储电路图
5、显示模块及键盘模块
采用液晶(LCD)显示。
液晶显示屏(LCD)具有轻薄短小,耗电量低,无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强和显示形式灵活等优点。
只是编程工作量较大,控制其占用资源较多,但在本系统中对控制器的资源使用中完全可以使用。
行列式键盘,用I/O口线组成行、列结构,按键设置在行、列线交点处,行、列线分别连接到按键开关的两端。
在按键较多时,可以节省I/O口线。
(1)键盘电路
6*6键盘电路模块见图14所示。
键盘的实现方法是给所用的列线I/O口线均置成低电平,然后将行线电平状态读入到单片机中,如果有键按下,就会有一根行线电平被拉置低电平,根据此原理就可以检测到是哪个键按下。
键盘的接口与单片机的P1、P3口相接。
图14键盘电路
(2)显示电路
显示部分采用了1602型LCD显示模块。
1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。
1602型LCD可以显示2行16个字符,有8位数据总线D0-D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。
1602型LCD的接口信号说明如表1所示:
表11602型LCD的接口管脚信号说明
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
1602LCD主要技术参数:
显示容量:
16×2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
显示电路的电路图如图15所示。
显示电路中的10针接口与单片机的P1口高位相连,6针的接口与单片机的P2口的高位相连。
图15显示电路
五、遥控器软件设计
万能遥控器的设计性能及实现与其软件设计编写有着密切的关系,在设计中采用内部定时器对信号高低电平计时的方法来采集数据并保存。
系统软件首先对定时器设置和初始化液晶显示,在主循环中检测按键,假如有键按下时,此时要继续按下编号为3—6的某个键,然后可以用红外遥控器对准接收头按下遥控器需要学习的键,将学到的红外信号绑定到该编号键,并将学习到的红外解码数据存到EEPROM中。
在主循环中检测到编号3—6的按键,则进入发送模式。
根据按键的编号找到相应EEPROM中的地址,读出红外数据,并将此数据调制经红外发射头发射出去。
1、软件流程图
图为主程序控制的工作流程。
在主控程序循环中主要工作为等待红外线信号的出现,并跳过前导信号,开始收集连续32位的编码数据,存入内存的连续空间。
红外线信号译码后输出4字节数据,经由程序比较处理,再控制继电器动作及压电喇叭发出声响做动作指示。
工作指示灯LED所扮演的角色为状态指示,当确认红外线的信号出现时,LED会亮起做指示。
信号收集译码完毕后,LED会熄
主程序流程图
IR_IN是将红外线信号译码的子程序,其输出结果为4字节数据,其动作原理及程序设计译码第二章已经作出分析,红外线信号译码数据是存放存在变量IRCOM处,占用连续4字节的内存空间,并以R0寄存器间接寻址方式做存取。
而程序中实际程序比较处理时,只比较了第3个字节(即按键编码),程序中使用数字键1234,其第3个字节正是数字1234,程序代码定义如下:
IR遥控器按键1234比较码
CODE_K1EQU01H
CODE_K2EQU02H
CODE_K3EQU03H
CODE_K4EQU04H
在比较时便可以轻易处理。
在一般情况下都可以正常动作,但在有噪声干扰的时候则会产生误动作。
通常较理想的比较应该是完整比较,比较完4个字节数据,才做出相应动作,则较难产生误动作。
控制程序说明如下:
DELAY:
延迟子程序。
LED_BL:
工作指示灯闪烁。
BZ:
压电喇叭发出声响。
DE:
短暂延迟。
DEL:
0.1ms延迟子程序
OP:
红外线译码后执行相应的动作。
IR_IN:
IR译码4字节数据。
2、程序代码
IB.ASMIO51DECODERC99+RELAY2
IO51PCBCOPYRIGHTCMY2003
ASM:
KEIL
decodeC0C1C2C3;IR译码4字节数据
checkC2;比较第3字节
IR遥控器按键1234比较码
CODE_K1EQU01H
CODE_K2EQU02H
CODE_K3EQU03H
CODE_K4EQU04H
IRCOMEQU30H;红外线信号译码数据放置变量起始位置
COMEQU32H;比较第3字节
IRINEQUP3.2;红外线IR信号输入位
WLEDEQUP3.7;工作指示灯引脚定义
SPXEQUP3.4;压电喇叭控制信号
RY1EQUP3.5;继电器1控制引脚
RY2EQUP3.6;继电器2控制引脚
ORG0H;程序代码由地址0开始执行
JMPBEGIM
BEGIN:
CLRRY1;继电器1状态设为OFF
CLRRY2;继电器2状态设为OFF
CALLBZ;红外线信号IR输入位设为高电平
SETBIRIN;LED闪动,表示程序开始执行
CALLLED_BL
LOOP
MOVR0,#IRCOM;设置IR译码起始位置
CALLIR_IN;IR解码
CALLOP;执行译码动作
JMPLOOP;继续循环执行
DELAYR5*10ms;延迟子程序
DELAY:
;总延迟时间R5*10ms
MOVR6,#50
D1:
MOVR7,#100
DJNZR7,$
DJNZR6,D1
DJNZR5,DELAY
RET
LED_BL:
;工作指示灯闪烁
MOVR4,#4
LE1:
CPLWLED;位方向
MOVR5,#10;延迟100ms
CALLDELAY
DJNZR4,LE1
RET
BZ:
;压电喇叭发出哗的一声
MOVR6,#0
B1:
CALLDE
CPLSPK
DJNZR6,B1
MOVR5,#5
CALLDELAY
RET
DE:
MOVR7,#180;短暂延迟
DE1:
NOP
DJNZR7,DE1
RET
TITLE:
DB"IB.ASMIO51DECODERC994KEY1234+RELAY2"
DELAYR5*0.1ms;0.1ms延迟子程序
DEL:
MOVR5,#1
DELAY1:
MOVR6,#2
E1:
MOVR7,#17
E2:
DJNZR7,E2
DJNZR6,E1
DJNZR5,DELAY1
RET
OP:
;执行译码动作
MOVA,COM
CJNEA,#CODE_K1,A1;不是按键1则继续比较
CALLBZ;压电喇叭发出哗的一声
CPLRY1;继电器1位反向
RET
A1:
MOVA,COM
CJNEA,#CODE_K2,A2;不是按键2则继续比较
CALLBZ;压电喇叭发出哗的一声
CALLBZ
CPLRY2;继电器2位反向
RET
A2:
MOVA,COM
CJNEA,#CODE_K3,A3;不是按键3则继续比较
CALLBZ;压电喇叭发出哗的一声
CALLBZ
CALLBZ
RET
A3:
MOVA,COM
CJNEA,#CODE_K2,A4;不是按键4则继续比较
CALLBZ;压电喇叭连续四次发出哗的一声
CALLBZ
CALLBZ
CALLBZ
RET
A4
RET
IR译码4字节数据
IR_IN:
I1:
JNBIRIN,I2;等待IR信号出现
JMPI1
I2:
MOVR4,#20;延迟一次
I20:
CALLDEL
DJNZR4,I20
JBIRIN,I1;确认IR信号出现
CLRWLED;LED亮起
I21:
JBIRIN,I3;等IR变为高电平
CALLDEL
JMPI21
I3:
MOVR3,#0;8位计数清0
COLLECTTO8BITSlo8+hi4-->0lo8+hi16-->1
LL:
JNBIRIN,I4;等IR变为低电平
CALLDEL
JMPLL
I4:
JBIRIN,I5;等IR变为高电平
CALLDEL133JMPI4
highlevelcount,about1.4/1.6msJUDGE0/1
I5:
MOVR2,#0;0.1ms计数
L1:
CALLDELL
JBIRIN,N1;等IR变为高电平
IR=0CHECKCOUNTVALUER2
MOVA,#8
CLRC
SUBBA,R2;判断高地位
IFC=0BIT=0
MOVA,@R0
RRCA
MOV@R0,A
PROCESS1BITOK处理完一位
INCR3
CJNER3,#8,LL;需处理完八位
1BYTEOK,COLLECTNEXTBYTE8BITS
MOVR3,#0
INCR0
CJNER0,#34H,LL;收集到4字节了
JMPOK
N1:
INCR2
CJNER2,#30,L1;0.1ms计数过长则时间到自动离开
OK:
SETBWLED;LEDOFF
RET
END
3、程序执行说明
程序执行后工作指示灯LED闪动表示程序开始执行,红外线遥控器数字键1~4编号为S1~S4.当按下4按键后有效,工作指示灯闪动,表示有收到红外线信号。
操作如下:
(1)按下遥控器上的S1键,则继电器1将ON,压电喇叭发出哗的一声,再次按下遥控器上的S1键,继电器1将OFF。
(2)按下遥控器上的S2键,则继电器2将ON,压电喇叭连续两次发出哗的一声,再次按下遥控器的S2键,继电器2将OFF。
(3)按下遥控器上的S3键,则压电喇叭连续三次发出哗的一声,表示程序侦测到遥控器按键数字键3.
(4)按下遥控器上的S4键,则压电喇叭连续四次发出哗的一声,表示程序侦测到遥控器按键数字键4
(5)若按下遥控器的其他按键,工作指示灯会闪烁,表示收到了红外线信号。
但是并无其他额外动作。
(6)由控制继电器的开启和关闭(ON/OFF),可以直接控制家电的开启与关闭(ON/OFF)。
6、心得体会
以433MHz为频率的无线通用遥控设备,为短距离无线通信提供了非常简单的解决方案,它是开发低成本、低功耗无线通信系统的理想方案。
一般由单片机控制电路、LCD显示电路、无线发码电路等构成。
按照节点的多少可以分为单节点和多节点模式。
单节点也称为点对点式,结构简单、体积小,便于随身携带,用于控制单个家电的通信;而多节点又称为点对多式,它可以根据用户的要求而设计不同的路数,也可以很方便地进行扩展,可以同时控制多个家电,功能齐全。
本系统设计为16路,在接收部分可以根据接收到的信息控制多个家用电器。
本设计的创新在于提出了通用家电遥控设备的设计方案,根据实际的要求能够控制多个家用电器,睡眠模式实现低功耗,且成本低于其他同类产品。
经过实际运行测量,该无线传输系统工作稳定,穿透能力强,功耗低(当在空闲模式下,电路中电流小于10μA)能够很好的实现相应设计要求的功能。
本次课程设计让我明白了平时积累知识的重要性,在以后的学习生活中,我会一滴一滴的积累知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。