红外学习型遥控器的设计.docx
《红外学习型遥控器的设计.docx》由会员分享,可在线阅读,更多相关《红外学习型遥控器的设计.docx(35页珍藏版)》请在冰豆网上搜索。
红外学习型遥控器的设计
河南农业大学
本科生毕业论文
题目红外学习型遥控器的设计
学院理学院
专业班级08级信安一班
学生姓名陈晨
指导教师贾树恒
撰写日期:
2012年5月22日
指导教师评语(主要评价论文的工作量、试验数据的可靠性、论文的主要内容与特点、写作水平等):
论文的工作量:
试验数据的可靠性:
论文的主要内容与特点、写作水平:
签名:
2012年5月22日
答辩委员会评语及论文成绩(主要评价论文的性质、难度、质量、综合训练、答辩情况、不足等。
评定论文成绩):
论文的性质、难度、质量:
学生的综合训练、答辩情况、不足等:
论文成绩:
主任委员签名:
2012年5月28日
红外学习型遥控器的设计
陈晨
摘要
随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的遥控系统开始进入了人们的生活。
传统的遥控器采用专用的遥控编码及解码集成电路,这种方法虽然制作简单、容易,但由于功能键数及功能受到特定的限制,只实用于某一专用电器产品的应用,应用范围受到限制。
而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随便设定等优点。
本设计以单片机为核心设计一种红外学习型遥控器,可以对基于NEC红外协议的红外线遥控器发射的信号进行识别、存储和再现等功能,从而实现对各类家用电器的控制。
红外学习型遥控器由单片机、红外线接收、红外线发射、显示、存储、按键和电源等部分组成。
本设计详细介绍了红外学习型遥控器的软硬件设计方法,并给出了具体的各单元电路设计、程序设计及主程序流程图。
关键词:
单片机;红外遥控;中断;学习型
DesignofIRLearningRemoteControler
CHENChen
Abstract
Withthedevelopmentofoursocietyandthegradualimprovementofscienceandtechnology,variouskindsofhelpremotecontrolsystemshavebegantoenterpeople’slife.Thetraditionalremotecontrollersadoptspecialremotecontrolcodeanddecodeintegratedcircuits,thoughthiskindofmethodissimplyandeasily,itisonlythepracticalapplicationofsomecertainspecialelectricequipmentsbecauseofthecountedfunctionalkeysiscountedandtherestrictedfunction,sotherangeofapplicationislimited.Buttheremotecontrollerswhichadoptthemicroprocessorshavemanyadvantagessuchasflexibleoperatingandunceremoniousmanipulativekeys.
Thisistodesignanintelligentinfraredremotefocusingonsinglechip.Itcandistinguish,storeandrecurrencetosignalsthatallkindsofinfraredremotelaunched.Thereby,thecontrolofallhouseholdelectricalappliancescanberealized.Theintelligentinfraredremoteismadeupofsingeclip,infraredreceiving,infraredlaunching,displaying,storing,keys,powersupply,etc.Thisdesignintroduceddetailedlythesoftandharddesigningmethodsofintelligentinfraredremoteandgavethedetailsofcircuitdesign,proceduredesignandmainprocedureflowchartofeveryunit.
Keywords:
Singlechipmicrocomputer;Infraredremotecontrol;Interrupt;Thelearning
1绪论
1.1选题的意义
上世纪八十年代初,日本率先在电视产品中使用了红外遥控技术,使用集成发射芯片来实现遥控码的发射,如东芝TC9012,飞利浦SAA3010等,它的主要特点是:
遥控器内预置固定编码,一只遥控器只能控制单一型号的电器。
如图1.1所示:
图1.1遥控单一种类电器的遥控器
随着电子技术的发展,家用电器越来越普遍,人们希望以一只遥控器遥控所有家用电器,多用遥控器产生了。
它的主要特点是:
遥控器内预置多套编码,可供用户选择。
如图1.2所示:
图1.2可遥控多种家用电器的遥控器
如今,随着嵌入式的广泛应用,部分厂商推出了具备红外学习的遥控器,它的主要特点是:
遥控器内置一个动态编码库,具备红外学习功能,可由用户自主录入编码【1】,如图1.3所示:
图1.3具备学习功能的遥控器
通过对具备红外学习功能的遥控器进行市场调查,本文发现:
国内红外遥控编码学习技术虽比较成熟,但产品化程度较低,市场推广不够,主要原因在于设计者对用户需求的调查不够全面,以致产品不够实用,性价比较低。
为此,我们试着设计一种以单片机为核心的智能型遥控器。
1.2设计思想
本系统的设计思想是针对市面上流行的NEC红外协议,利用小型一体化接收头NB0038对红外遥控信号进行接收,再用单片机对红外信号进行解码,把解码结果存储到扩展存储区的指定地址。
当要发射红外信号时,从扩展存储区中读出相应的红外遥控编码,调制到由单片机产生38K载波上,最后,通过三极管放大电路驱动红外发光二极管发射红外信号,达到学习和发射的目的,从而实现一个遥控器控制多种红外遥控设备。
遥控器有两种工作状态:
“学习”状态和“控制”状态,使用者可通过学习/控制复用键进行转换。
当使用者在学习状态下,红外线接收电路处于接收红外线信号状态下,当有红外信号并接收成功后,指示灯会闪烁。
当按下一个控制键后,由CPU将解码信息存放到相应的存储单元中去,存储成功后指示灯会闪烁。
当遥控器处于控制状态时,使用者每按下一个控制键,CPU从指定的存储单元中读取遥控编码信号,然后进行信号调制,将调制信号经放大以后,由红外线发射二极管进行发射,从而实现对该键对应设备功能的控制。
1.3设计重点与难点
系统组成的设计;各部分硬件的选取;单片机串行接口的键盘设计;红外线遥控器信号的接收、发射与调制解码软件的设计;流程图及程序的设计。
2硬件的选取
2.1单片机
由于此单片机应用在家用遥控器上,所以本设计选用了低功耗、低价格的STC89C52RC单片机,如图2.1所示。
图2.1STC89C52RC引脚图
2.1.1简介
STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
2.1.2主要功能特性
(1)增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。
(2)工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)。
(3)工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz。
(4)用户应用程序空间为8K字节,片上集成512字节RAM。
(5)通用I/O口(32个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
(6)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片。
(7)具有EEPROM功能。
(8)具有看门狗功能。
(9)共3个16位定时器/计数器。
即定时器T0、T1、T2。
(10)外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒。
(11)通用异步串行口(UART),还可用定时器软件实现多个UART。
(12)工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)。
2.1.3引脚介绍
(1)VCC(40引脚):
电源电压。
(2)VSS(20引脚):
接地。
(3)P0端口(P0.0~P0.7,39~32引脚):
P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。
在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。
此时,P0口内部上拉电阻有效。
在FlashROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻。
(4)P1端口(P1.0~P1.7,1~8引脚):
P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流(
)。
此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。
(5)P2端口(P2.0~P2.7,21~28引脚):
P2口是一个带内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。
P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(
)。
(6)P3端口(P3.0~P3.7,10~17引脚):
P3是一个带内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流(
)。
P3口还用于实现各种第二功能,如下表所列:
表2.1P3口的第二功能
引脚口
功能
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD串行输入端口
TXD串行输出端口
INT0 外中断0
INT1 外中断1
T0定时器0外部输入
T1定时器1外部输入
WR外部数据存储器写选通
RD外部数据存储器读选通
(7)RST(9引脚):
复位输入。
当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。
看门狗计时完成后,RST引脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
(8)ALE/
(30引脚):
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚(
)也用作编程输入脉冲。
(9)
(29引脚):
外部程序存储器选通信号(
)是外部程序存储器选通信号。
当AT89C51RC从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而访问外部数据存储器时,
将不被激活。
(10)
/VPP(31引脚):
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接GND。
注意加密方式1时,
将内部锁定位RESET。
为了执行内部程序指令,
应该接VCC。
在Flash编程期间,
也接收12伏VPP电压。
(11)XTAL1(19引脚):
振荡器反相放大器和内部时钟发生电路的输入端。
(12)XTAL2(18引脚):
振荡器反相放大器的输入端。
2.1.4STC89C52RC单片机的工作模式
(1)掉电模式:
典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序。
(2)空闲模式:
典型功耗2mA,可由外部中断唤醒,中断返回后,继续执行原程序。
(3)正常工作模式:
典型功耗4mA~7mA。
2.1.5定时器/计数器
(1)主要特性
STC89C52RC单片机有三个可编程的定时器/计数器——定时器/计数器0﹑定时器/计数器1和定时器/计数器2,可有程序选择作为定时器用或作为计数器用,定时时间或记数值也可由程序设定。
每一个定时器/计数器具有4种工作方式,可用程序选择。
任一定时器/计数器在定时时间到或记数值到时,可有程序安排产生中断请求信号或不产生中断请求信号。
(2)定时/计数器0和1的控制和状态寄存器
特殊功能寄存器TMOD和TCON分别是定时/计数器0和1的控制和状态寄存器,用于控制和确定各定时/计数器的功能和工作模式。
1模式控制寄存器TMOD
TMOD用于控制T0和T1的工作方式和4种工作模式。
其中低4位用于控制T0,高4位用于控制T1。
其格式如下:
表2.2TMOD格式
GATE
C/T非
M1
M0
GATE
C/T非
M1
M0
GATE位:
门控位。
当GATE=1时,只有INTO非或INT1非引脚为高电平且TR0或TR1置1时,相应的定时/计数器才被选通工作;当GATE=0,则只要TR0和TR1置1,定时/计数器就被选通,而不管INT0非或INT1非的电平是高还是低。
C/T非位:
计数/定时功能选择位。
C/T非=0,设置为定时器方式,计数器的输入是内部时钟脉冲,其周期等于机器周期。
C/T非=1,设置为计数器方式,计数器的输入来自T0(P3.4)或T1(P3.5)端的外部脉冲。
M1、M0位:
工作模式选择位。
2位可形成4中编码,对应4种工作模式,见下表:
表2.3定时器工作模式
M1M0
功能描述
00
01
10
11
方式0:
13位定时器/计数器
方式1:
16位定时器/计数器
方式2:
具有自动重装初值的8位定时器/计数器
方式3:
定时/计数器0分为两个8位定时/计数器,定时/计数器1在此方式无实用意义
2控制寄存器TCON
TCON用来控制T0和T1的启、停,并给出相应的控制状态,高4位用于控制定时器0、1的运行;低4位用于控制外部中断。
格式如下:
表2.4TCON格式
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TF1:
定时器1溢出标志。
当定时器1溢出时,由硬件置1。
使用查询方式时,此位做状态位供查询,查询有效后需由软件清零;使用中断方式时,此位做中断申请标志,进入中断服务后被硬件自动清零。
TR1位:
定时器1运行控制位。
该位靠软件置位或清零,置位时,定时/计数器接通工作,清零时,停止工作。
TF0位:
定时器溢出标志位,其功能和操作情况类同于TF1。
TR0位:
定时器0运行控制位,其功能和操作类同于TR1。
IE位:
外部中断请求标志位。
当CPU采样到INT0非(或INT1非)端出现有效中断请求时,IE0(或IE1)由硬件置1,中断响应完成后转向中断服务时,再由硬件自动清零。
IT位:
外部中断请求出发方式位。
IT0(IT1)=1为脉冲触发方式,后负跳有效。
IT0(IT1)=0为电平触发方式,低电平有效。
3定时/计数器的初始化
单片机的定时/计数器是可编程的,因此,在进行定时或计数之前也要用程序进行初始化。
初始化一般应包括以下几个步骤:
a.对TMOD寄存器赋值,以确定定时器的工作模式;
b.置定时/计数器初值,直接将初值写入寄存器的TH0,TL0或TH1,TL1;
c.根据需要,对寄存器IE置初值,开放定时器中断;
d.对TCON寄存器中的TR0或TR1置位,启动定时/计数器,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时。
在初始化过程中,要置入定时/计数器的初值,这时要做一些计算。
由于计数器是加法计数,并在溢出时申请中断,因此不能直接输入所需的计数值,而是要从计数最大值倒退回去一个计数值才是应置入的初值。
设计数器的最大值为M(在不同的工作模式中,M可以为8192,65536,256),则置入的初值可以这样来计算。
计数方式时
X=M-记数值(2.1)
定时方式时
(M-X)*T=定时值(2.2)
所以
X=M-定时值/T(2.3)
式中,T为计数周期,是单片机的机器周期。
4T0和T1的4种工作方式
方式0:
13位定时/计数器,TL1(或TL0)的低5位和TH1(或TH0)的8位构成,TL中的高3位弃之未用。
当TL的低5位记数溢出时,向TH进位,而全部13位计数器溢出时使计数器回零,并使溢出标志TF置1,向CPU发出中断请求。
方式1:
16位定时/计数器,其逻辑电路和工作情况与方式0几乎完全相同,唯一的差别就是方式1中TL的高3位也参与了计数。
方式2:
把TL配置成一个可以自动重装载的8位定时/计数器。
方式3:
仅对T0有意义,将16位定时/计数器分成两个互相独立的8位定时/计数器TL和TH【2】。
2.2电源L7805稳压器概述
整个电路用9V电源供电,为满足单片机和其它器件的电压要求,需要把9V转为5V,为此选用L7805稳压器实现电压的转化。
电子产品中,L7805是常见的三端稳压集成电路正电压输出,只有三条引脚输出,分别是输入端,接地端和输出端.它的样子像是普通的三极管,TO-220的标准封装,用L7805三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流,过热及调整管的保护电路,使用起来可靠,方便,而且价格便宜.引脚功能如图2.2所示.从正面看①②③引脚从左向右按顺序标注,①脚高电位,②脚接地,③脚输出。
图2.2L7805
2.3存储器
存储器有RAM、EEPROM、非易失性的静态存储器等。
RAM掉电时数据会丢失,EEPROM在掉电时数据不会丢失。
2.3.1AT24C02串行E2PROM的概述
AT24C02是美国ATMEL公司的低工耗CMOS串行EEPROM,它是内含256*8位存储空间,具有工作电压宽(1.8~5.5V)、擦写次数多(100万次)、写入速度快(最大5ms)、数据保持时间长(100年)等特点。
如图2.3所示,AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。
24C02中带有片内地址寄存器。
每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。
所有字节均以单一操作方式读取。
为降低总的写入时间,一次操作可写入多达8个字节的数据。
该器件可直接与微处理器接口,不需要额外的支持电路。
图2.3AT24C02
2.3.2AT24C02串行E2PROM的特性
(1)保存数据时间:
100年。
(2)硬件数据写保护。
(3)直接替代2K×8易失静态RAM。
(4)擦写次数多达100万次。
(5)低功耗CMOS操作。
(6)8引脚DIP封装。
(7)2线串行接口,完全兼容I2C总线。
(8)ESD保护大于2.5KV。
2.4红外接收头
接收电路使用集成红外接收器成品,一般不需要任何外接元件就能完成从红外接收到输出TTL电平兼容信号的所有工作。
注意选择接收器件时要保证接收器件的中心频率与发射信号的中心频率相匹配。
接收器对外只有3个引脚:
VCC、GND和1个脉冲信号输出OUT,与单片机接口连接非常方便。
2.4.1NB0038的概述
NB0038是一种用于红外遥控接收或其它方面的小型一体化接收头,中心频率为38.0kHz,可改善自然光的反射干扰.独立的PIN二极管同前置放大器集成在同一封装上。
NB0038环氧树脂封装提供一个特殊的红外滤光器,可防止自然光的干扰。
NB0038在抗自然光的干扰方面有极好的性能,可防止无用脉冲输出。
图2.4NB0038
2.4.2NB0038的特性
(1)光电检测和前置放大器集成在同一封装上。
(2)内带PCM频率滤波器。
(3)对于自然光有较强的抗干扰性。
(4)改进了对电场干扰的防护性。
(5)电源电压5V,低功耗。
3系统组成设计
系统由发射单元、接收单元、存储单元、输入单元、检测单元等构成。
系统总的结构框图如图3.1所示:
图3.1学习型万能遥控器的系统框图
系统框图中的单片机用来协调各个单元,红外接收电路用来接收要学习的红外信号,红外发射电路用来发射控制电器的红外信号,存储器用来存储接收的信号,键盘输入电路用来实现按键控制,指示灯用来指示所处的模式和状态。
4各单元电路设计
4.1单片机最小系统
图4.1单片机最小系统
4.1.1复位电路
单片机复位电路包括片内、片外两部分,片外复位电路通过引脚加到内部复位电路上,内部复位电路在每个机器周期S5P2对片外信号采样一次,当RST引脚上出现连续两个机器周期的高电平时,单片机就完成一次复位。
外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的,单片机通常采用上电自动复位和按键手动复位两种方式。
上电复位电路在通电瞬间,在RC电路充电过程中,RST端出现正脉冲,从而使单片机复位。
按键手动复位又分为按键电平复位和按键脉冲复位,按键电平复位是将复位端通过电阻与Vcc相连,按键脉冲复位是利用RC微分电路产生正脉冲来达到复位的目的。
本系统设计时采用的是上电复位方式,其电路原理图如图4.1。
4.1.2CPU时钟电路
时钟电路用于产生单片机工作所需要的时钟信号。
时钟信号可以有两种方式产生:
内部时钟方式和外部时钟方式。
(1)内部时钟方式
单片机有一个高增益反向放大器,用于构成振荡器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟发生器,外接晶振时,C1、C2值通常选择为30pF左右。
为了减少寄生电容,更好的保证振荡器稳定可靠的工作,谐振器和电容应尽可能安装的与单片机芯片靠近。
内部时钟发生器实质上是一个二分频的触发器,其输出信号是单片机工作所需的时钟信号。
(2)外部时钟方式
外部时钟方式是采用外部振荡器