红外学习型遥控器的设计_第1页
红外学习型遥控器的设计_第2页
红外学习型遥控器的设计_第3页
红外学习型遥控器的设计_第4页
红外学习型遥控器的设计_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、红外学习型遥控器的设计-作者xxxx-日期xxxx【精品文档】【精品文档】河南河南农业农业大学大学本科生毕业论文 题 目 红外学习型遥控器的设计 学 院 理学院 专业班级 08级信安一班 学生姓名 陈晨 指导教师 贾树恒 撰写日期: 2012 年 5月 22日【精品文档】【精品文档】指导教师评语(主要评价论文的工作量、试验数据的可靠性、论文的主要内容与特点、写作水平等):论文的工作量:试验数据的可靠性:论文的主要内容与特点、写作水平: 签 名: 2012 年 5月 22日答辩委员会评语及论文成绩(主要评价论文的性质、难度、质量、综合训练、答辩情况、不足等。评定论文成绩):论文的性质、难度、质量

2、:学生的综合训练、答辩情况、不足等:论文成绩:主任委员签名: 2012 年 5月 28日【精品文档】【精品文档】红外学习型遥控器的设计陈晨摘要摘要 随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的遥控系统开始进入了人们的生活。传统的遥控器采用专用的遥控编码及解码集成电路,这种方法虽然制作简单、容易,但由于功能键数及功能受到特定的限制,只实用于某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随便设定等优点。本设计以单片机为核心设计一种红外学习型遥控器,可以对基于NEC红外协议的红外线遥控器发射的信号进行识别、存储和

3、再现等功能,从而实现对各类家用电器的控制。红外学习型遥控器由单片机、红外线接收、红外线发射、显示、存储、按键和电源等部分组成。本设计详细介绍了红外学习型遥控器的软硬件设计方法,并给出了具体的各单元电路设计、程序设计及主程序流程图。关关键词键词: :单单片机;片机;红红外遥控;中断;外遥控;中断;学学习习型型【精品文档】【精品文档】Design of IR Learning Remote ControlerCHEN ChenAbstractWith the development of our society and the gradual improvement of science and

4、technology, various kinds of help remote control systems have began to enter peoples life. The traditional remote controllers adopt special remote control code and decode integrated circuits, though this kind of method is simply and easily, it is only the practical application of some certain specia

5、l electric equipments because of the counted functional keys is counted and the restricted function, so the range of application is limited. But the remote controllers which adopt the microprocessors have many advantages such as flexible operating and unceremonious manipulative keys.This is to desig

6、n an intelligent infrared remote focusing on single chip. It can distinguish, store and recurrence to signals that all kinds of infrared remote launched .Thereby, the control of all household electrical appliances can be realized. The intelligent infrared remote is made up of singe clip, infrared re

7、ceiving, infrared launching, displaying, storing, keys, power supply, etc.This design introduced detailedly the soft and hard designing methods of intelligent infrared remote and gave the details of circuit design, procedure design and main procedure flow chart of every unit.Keywords: Single chip mi

8、crocomputer; Infrared remote control; Interrupt; The learning【精品文档】【精品文档】目录1 绪论绪论.1选题的意义.11.2 设计思想.21.3 设计重点与难点.22 硬件的选取硬件的选取.32.1 单片机.3简介.3主要功能特性.3引脚介绍.42.1.4 STC89C52RC单片机的工作模式.6定时器/计数器.62.2 电源L7805稳压器概述.82.3 存储器.92.3.1 AT24C02串行E2PROM的概述 .92.3.2 AT24C02串行E2PROM 的特性.92.4 红外接收头.102.4.1 NB0038的概述.10

9、2.4.2 NB0038的特性.103 系统组成设计系统组成设计.114 各单元电路设计各单元电路设计.124.1 单片机最小系统.124.1.1 复位电路.124.1.2 CPU时钟电路.124.1.3 管脚应用.13键盘电路.13键盘与单片机的接口.134.2.2 键连击现象的克服和处理.144.3 红外发射电路.144.4 红外接收电路.154.4.1 红外接收原理.154.5 存储器电路.174.5.1 24C02引脚说明.174.5.2 单片机与24C02的接口.174.6 指示灯电路.174.7 电源电路.185 程序设计程序设计.195.1 主程序流程图.19【精品文档】【精品文

10、档】5.2 键号判别程序设计.205.3 红外接收程序设计.215.4 红外发射程序设计.226 程序源代码程序源代码.23按键扫描源码见附录A.236.2 I2C总线程序.23位传输.236.2.2 数据传输的字节格式.236.2.3 I2C数据传输协议.23红外接收源码见附录B .24红外发射源码见附录C .247 系统调试系统调试.257.1 软件调试.257.2 硬件调试.268 调试中遇到的问题和解决方法调试中遇到的问题和解决方法.298.1 硬件部分 .298.1.1 单片机的选取.298.1.2 功能切换键的设置.298.1.3 AT24C02的焊接.29软件部分.29红外发射部

11、分.29中断部分.29定时器0模式部分.30结论结论.31参考文献参考文献.32附附 录录A.33附附 录录B .34附附 录录C.36附附 录录D.38附附 录录E .39致谢致谢.40【精品文档】【精品文档】1 绪论绪论选题的意义选题的意义上世纪八十年代初,日本率先在电视产品中使用了红外遥控技术,使用集成发射芯片来实现遥控码的发射,如东芝 TC9012,飞利浦 SAA3010 等,它的主要特点是:遥控器内预置固定编码,一只遥控器只能控制单一型号的电器。如图 1.1 所示: 图图 遥控遥控单单一种一种类电类电器的遥控器器的遥控器随着电子技术的发展,家用电器越来越普遍,人们希望以一只遥控器遥控

12、所有家用电器,多用遥控器产生了。它的主要特点是:遥控器内预置多套编码,可供用户选择。如图 1.2 所示: 图图 可遥控多种家用可遥控多种家用电电器的遥控器器的遥控器如今,随着嵌入式的广泛应用,部分厂商推出了具备红外学习的遥控器,它的主要特点是:遥控器内置一个动态编码库,具备红外学习功能,可由用户自主录入编码【1】,如图1.3 所示: 【精品文档】【精品文档】图图 具具备备学学习习功能的遥控器功能的遥控器通过对具备红外学习功能的遥控器进行市场调查,本文发现:国内红外遥控编码学习技术虽比较成熟,但产品化程度较低,市场推广不够,主要原因在于设计者对用户需求的调查不够全面,以致产品不够实用,性价比较低

13、。为此,我们试着设计一种以单片机为核心的智能型遥控器。1.2 设计思想设计思想本系统的设计思想是针对市面上流行的NEC红外协议,利用小型一体化接收头NB0038对红外遥控信号进行接收,再用单片机对红外信号进行解码,把解码结果存储到扩展存储区的指定地址。当要发射红外信号时,从扩展存储区中读出相应的红外遥控编码,调制到由单片机产生38K载波上,最后,通过三极管放大电路驱动红外发光二极管发射红外信号,达到学习和发射的目的,从而实现一个遥控器控制多种红外遥控设备。 遥控器有两种工作状态:“学习”状态和“控制”状态,使用者可通过学习/控制复用键进行转换。当使用者在学习状态下,红外线接收电路处于接收红外线

14、信号状态下,当有红外信号并接收成功后,指示灯会闪烁。当按下一个控制键后,由CPU将解码信息存放到相应的存储单元中去,存储成功后指示灯会闪烁。当遥控器处于控制状态时,使用者每按下一个控制键,CPU从指定的存储单元中读取遥控编码信号,然后进行信号调制,将调制信号经放大以后,由红外线发射二极管进行发射,从而实现对该键对应设备功能的控制。【精品文档】【精品文档】1.3 设计重点与难点设计重点与难点系统组成的设计;各部分硬件的选取;单片机串行接口的键盘设计;红外线遥控器信号的接收、发射与调制解码软件的设计;流程图及程序的设计。【精品文档】【精品文档】2 硬件的选取硬件的选取2.1 单片机单片机由于此单片

15、机应用在家用遥控器上,所以本设计选用了低功耗、低价格的STC89C52RC单片机,如图 2.1所示。图图2.1 STC89C52RC引脚引脚图图2简介简介STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。主要功能特性主要功能特性(1) 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。(2) 工作电压:(5V单片机)(3V单片机)。(3) 工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz

16、。(4) 用户应用程序空间为8K字节,片上集成512字节RAM。【精品文档】【精品文档】(5) 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。(6) ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口()直接下载用户程序,数秒即可完成一片。(7) 具有EEPROM功能。(8) 具有看门狗功能。(9) 共3个16位定时器/计数器。即定时器T0、T1、T2。(10)外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断

17、低电平触发中断方式唤醒。(11)通用异步串行口(UART),还可用定时器软件实现多个UART。(12)工作温度范围:-40+85(工业级)/075(商业级)。2引脚介绍引脚介绍(1) VCC(40引脚):电源电压。(2) VSS(20引脚):接地。(3) P0端口(,3932引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节

18、。验证时,要求外接上拉电阻。(4) P1端口(,18引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉【精品文档】【精品文档】电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流()。此外,和还可以作为定时器/计数器2的外部技术输入()和定时器/计数器2的触发输入()。(5) P2端口(,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部

19、的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流()。(6) P3端口(,1017引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流()。P3口还用于实现各种第二功能,如下表所列:表表 2.1 P3口的第二功能口的第二功能引脚口功能P3.5P3.6P3.7RXD串行输入端口TXD串行输出端口INT0外中断

20、0INT1外中断1T0定时器0外部输入T1定时器1外部输入WR外部数据存储器写选通RD外部数据存储器读选通(7) RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。【精品文档】【精品文档】(8) ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚()也用作编程输入脉冲。(9)(29引脚):外部程序存储器

21、选通信号()是外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活。(10)/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。注意加密方式1时,将内部锁定位RESET。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。(11)XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。(12)XTAL2(18引脚):振荡器反相放大器的输入端。2 STC89C52RC单片机的工作模式单片机的工作模式(1)

22、 掉电模式:典型功耗0.1A,可由外部中断唤醒,中断返回后,继续执行原程序。(2) 空闲模式:典型功耗2mA,可由外部中断唤醒,中断返回后,继续执行原程序。(3) 正常工作模式:典型功耗4mA7mA。2.定时器定时器/计数器计数器(1) 主要特性STC89C52RC单片机有三个可编程的定时器/计数器定时器/计数器0定时器/计数器1和定时器/计数器2,可有程序选择作为定时器用或作为计数器用,定时时间或记数值也可由程序设定。每一个定时器/计数器具有4种工作方式,可用程序选择。任一定时器/计数器在定时时间到或记数值到时,可有程序安排产生中断请求信号或不产生中断请求信号。【精品文档】【精品文档】(2)

23、 定时/计数器0和1的控制和状态寄存器特殊功能寄存器TMOD和TCON分别是定时/计数器0和1的控制和状态寄存器,用于控制和确定各定时/计数器的功能和工作模式。模式控制寄存器TMODTMOD用于控制T0和T1的工作方式和4种工作模式。其中低4位用于控制T0,高4位用于控制T1。其格式如下:表表 2.2 TMOD格式格式GATE C/T非 M1 M0GATEC/T非 M1 M0GATE位:门控位。当GATE=1时,只有INTO非或INT1非引脚为高电平且TR0或TR1置1时,相应的定时/计数器才被选通工作;当GATE=0,则只要TR0和TR1置1,定时/计数器就被选通,而不管INT0非或INT1

24、非的电平是高还是低。C/T非位:计数/定时功能选择位。C/T非=0,设置为定时器方式,计数器的输入是内部时钟脉冲,其周期等于机器周期。C/T非=1,设置为计数器方式,计数器的输入来自T0(P3.4)或T1(P3.5)端的外部脉冲。M1、M0位:工作模式选择位。2位可形成4中编码,对应4种工作模式,见下表:表表 2.3 定定时时器工作模式器工作模式M1 M0功 能 描 述00011011方式0:13位定时器/计数器方式1:16位定时器/计数器方式2:具有自动重装初值的8位定时器/计数器方式3:定时/计数器0分为两个8位定时/计数器,定时/计数器1在此方式无实用意义控制寄存器TCON【精品文档】【

25、精品文档】TCON用来控制T0和T1的启、停,并给出相应的控制状态,高4位用于控制定时器0、1的运行;低4位用于控制外部中断。格式如下:表表 2.4 TCON格式格式TF1 TR1 TF0 TR0 IE1IT1IE0 IT0TF1:定时器1溢出标志。当定时器1溢出时,由硬件置1。使用查询方式时,此位做状态位供查询,查询有效后需由软件清零;使用中断方式时,此位做中断申请标志,进入中断服务后被硬件自动清零。TR1位:定时器1运行控制位。该位靠软件置位或清零,置位时,定时/计数器接通工作,清零时,停止工作。TF0位:定时器溢出标志位,其功能和操作情况类同于TF1。TR0位:定时器0运行控制位,其功能

26、和操作类同于TR1。IE位:外部中断请求标志位。当CPU采样到INT0非(或INT1非)端出现有效中断请求时,IE0(或IE1)由硬件置1,中断响应完成后转向中断服务时,再由硬件自动清零。IT位:外部中断请求出发方式位。IT0(IT1)=1为脉冲触发方式,后负跳有效。IT0(IT1)=0为电平触发方式,低电平有效。定时/计数器的初始化单片机的定时/计数器是可编程的,因此,在进行定时或计数之前也要用程序进行初始化。初始化一般应包括以下几个步骤:a. 对TMOD寄存器赋值,以确定定时器的工作模式;b. 置定时/计数器初值,直接将初值写入寄存器的TH0,TL0或TH1,TL1;c. 根据需要,对寄存

27、器IE置初值,开放定时器中断;【精品文档】【精品文档】d. 对TCON寄存器中的TR0或TR1置位,启动定时/计数器,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时。 在初始化过程中,要置入定时/计数器的初值,这时要做一些计算。由于计数器是加法计数,并在溢出时申请中断,因此不能直接输入所需的计数值,而是要从计数最大值倒退回去一个计数值才是应置入的初值。设计数器的最大值为M(在不同的工作模式中,M可以为8192,65536,256),则置入的初值可以这样来计算。计数方式时 X=M-记数值 (2.1)定时方式时 (M-X)*T=定时值 (2.2)所以 X=M-定时值/T (2.3)式中

28、,T为计数周期,是单片机的机器周期。T0和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 电源电

29、源L7805稳压器概述稳压器概述整个电路用9V电源供电,为满足单片机和其它器件的电压要求,需要把9V转为5V,为此选用L7805稳压器实现电压的转化。电子产品中, L7805是常见的三端稳压集成电路正电压输出,只有三条引脚输出,分别是输入端,接地端和输出端.它的样子像是普通的三极管,TO-220 的标准封装, 用 L7805三端稳压 IC 来组成稳压电源所需的外围元件极少,电路内 部还有过流,过热及调整管的保护电路,使用起来可靠,方便,而且价格便宜. 引脚功能如图2.2所示. 从正面看引脚从左向右按顺序标注,脚高电位, 脚接地, 脚输出。 图图2.2 L78052.3 存储器存储器存储器有RA

30、M、EEPROM、非易失性的静态存储器等。RAM掉电时数据会丢失,EEPROM在掉电时数据不会丢失。2.3.1 AT24C02串行串行E2PROM的概述的概述AT24C02是美国ATMEL公司的低工耗CMOS串行EEPROM,它是内含256*8位存储空间,具有工作电压宽(1.85.5V)、擦写次数多(100万次)、写入速度快(最大5ms) 【精品文档】【精品文档】、数据保持时间长(100年)等特点。如图2.3所示,AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。 24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所

31、有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。该器件可直接与微处理器接口,不需要额外的支持电路。图图2.3 AT24C022.3.2 AT24C02串行串行E2PROM 的特性的特性(1)保存数据时间:100年。(2)硬件数据写保护。(3)直接替代2K8易失静态RAM 。(4)擦写次数多达100万次。(5)低功耗CMOS操作 。(6)8引脚DIP封装。(7)2线串行接口,完全兼容I2C总线。(8)ESD保护大于V。2.4 红外接收头红外接收头接收电路使用集成红外接收器成品,一般不需要任何外接元件就能完成从红外接收到输出TTL 电平兼容信号的所有工作。注意选择

32、接收器件时要保证接收器件的中心频率与发射信号的中心频率相匹配。接收器对外只有3 个引脚:VCC 、GND 和1 个脉冲信号输出OUT,与单片机接口连接非常方便。【精品文档】【精品文档】 NB0038的概述的概述NB00。NB0038环氧树脂封装提供一个特殊的红外滤光器,可防止自然光的干扰。NB0038在抗自然光的干扰方面有极好的性能,可防止无用脉冲输出。图图2.4 NB0038 NB0038的特性的特性(1)光电检测和前置放大器集成在同一封装上。(2)内带PCM频率滤波器。(3)对于自然光有较强的抗干扰性。(4)改进了对电场干扰的防护性 。(5)电源电压5V,低功耗。【精品文档】【精品文档】3

33、 系统组成设计系统组成设计系统由发射单元、接收单元、存储单元、输入单元、检测单元等构成。系统总的结构框图如图3.1所示:单片机红外接收电路红外发射电路指示灯电路按键输入电路数据存储电路电源变换电路图图3.1 学学习习型万能遥控器的系型万能遥控器的系统统框框图图系统框图中的单片机用来协调各个单元,红外接收电路用来接收要学习的红外信号,红外发射电路用来发射控制电器的红外信号,存储器用来存储接收的信号,键盘输入电路用来实现按键控制,指示灯用来指示所处的模式和状态。【精品文档】【精品文档】4 各单元电路设计各单元电路设计4.1 单片机单片机最小系统最小系统图图4.1单单片机最小系片机最小系统统 复位电

34、路复位电路 单片机复位电路包括片内、片外两部分,片外复位电路通过引脚加到内部复位电路上,内部复位电路在每个机器周期S5P2对片外信号采样一次,当RST引脚上出现连续两个机器周期的高电平时,单片机就完成一次复位。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的,单片机通常采用上电自动复位和按键手动复位两种方式。上电复位电路在通电瞬间,在RC电路充电过程中,RST端出现正脉冲,从而使单片机复位。按键手动复位又分为按键电平复位和按键脉冲复位,按键电平复位是将复位端通过电阻与Vcc相连,按键脉冲复位是利用RC微分电路产生正脉冲来达到复位的目的。本系统设计时采用的是上电复位方式,其电路

35、原理图如图 4.1。【精品文档】【精品文档】 CPU时钟电路时钟电路 时钟电路用于产生单片机工作所需要的时钟信号。时钟信号可以有两种方式产生:内部时钟方式和外部时钟方式。(1) 内部时钟方式单片机有一个高增益反向放大器,用于构成振荡器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟发生器,外接晶振时,C1、C2值通常选择为30pF左右。为了减少寄生电容,更好的保证振荡器稳定可靠的工作,谐振器和电容应尽可能安装的与单片机芯片靠近。内部时钟发生器实质上是一个二分频的触发器,其输出信号

36、是单片机工作所需的时钟信号。(2) 外部时钟方式 外部时钟方式是采用外部振荡器,外部振荡信号由XTAL2端接入后直接送至内部时钟发生器。输入端XTAL1应接地,由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上拉电阻。 一般情况下,单片机时钟输入均采用内部时钟方式,外接一个震荡电路,本系统采用内部时钟方式,晶振采用11.0592MHz,其电路图 4.1。 管脚应用管脚应用P1作为4*4矩阵按键的接口。INT0作为按键中断接口与74LS21四与门的第6根引脚连接。INT1作为红外接收中断接口与NB0038的OUT口连接。RD和WR分别与AT24C02的SDA和SCL引脚连接。P2.0用来控

37、制发射电路。P2.2用来控制指示灯。【精品文档】【精品文档】键盘与单片机的接口键盘与单片机的接口如图所示,用单片机的并行口P1接44矩阵键盘,74LS21四与门的第6个引脚接单片机外部中断INT0口。 图图4.2 键盘键盘按按键键的分布的分布图图 键连击现象的克服和处理键连击现象的克服和处理当我们按下某个键时,对应的功能便会通过键盘分析程序得以执行,如果在操作者释放之前,对应的功能多次执行,如同操作者在连续不断的操作该键一样,这种现象就称为连击。连击可用图4.3(1)所示流程图的软件方法来解决:当某个键按下时,首先进行软件去抖处理,确认键被按下后,便执行与该键相对应的功能,执行完后不是立即返回

38、,而是等待键释放之后再返回,使每一次按键只被响应一次,从而达到避免连击的目的。本实验采用了这种处理方式,今后程序改进可以合理利用连击现象。如果把连击现象加以利用,有时会给操作者带来便利。例如在某些仪器中。因设计的按键很少,没有安排09数字键,只设置了一个调整键,这时需要采用加1(或者减1)的方法来调整有关参数,但当调整量较大时就需要多次按键,使操作者很不方便。如果【精品文档】【精品文档】允许存在连击现象,我们只要按住键不放,参数就会不停的加1(或者减1),会让操作比较方便、快捷【3】。具体实现流程图如图4.3(2)所示,其中加入的延时环节是为了控制连击的速度。读键延时去抖执行等键释放读键延时去

39、抖执行延时( (1) )键连击现键连击现象的象的处处理理 ( (2) )键连击现键连击现象的合理利用象的合理利用图图4.3键连击现键连击现象象 红外发射电路红外发射电路红外发射电路图如图4.4所示。当系统进入控制模式时,用户按下遥控按键后即引发按键中断,单片机识别按键然后从EEPROM中取出相应键值的遥控信号,即红外遥控编码信息。然后用定时器T0来产生38KHz的载波信号,将遥控信号经三极管8550驱动红外发射管辐射出940nm的红外脉冲信号发射出去。【精品文档】【精品文档】图图4.4 红红外外线发线发射射电电路路 红外接收电路红外接收电路红外接收电路如图4.5所示。一体化红外接收头采用NB0

40、038,其光电检测和前置放大器集成于同一封装,中心频率为kHz。NB0038的环氧树脂封装结构为其提供了一个特殊的红外滤光器,对自然光和电场干扰有很强的防护性。NB0038的目的是对接收到的红外信号放大、检波、整形,并解调出红外遥控编码,得到TTL电平,反相后输入至单片机的外部中断INT1口【10】。图图4.5 红红外外线线接收接收电电路路【精品文档】【精品文档】.1 红外接收原理红外接收原理 家电的遥控一般采用由红外发射管发出的红外线作为指令传输媒介,为了增加传输距离、提高抗干扰性,一般经过编码,由载波调制后发出,如图所示:如如图图 4.6 载载波波调调制制红外接收管NB0038具备接收、解

41、调、TTL电平输出等功能。其解调后波形如图4.7.如如图图 4.7 载载波解波解调调因此,只要了解遥控器编码标准,就可利用NB0038接收、解调红外信号,然后编写程序由单片机解码。本文就是基于市面上常用的NEC红外协议进行解码的。如图4.8所示:图图 4.8 NEC红红外外协议协议每帧数据由引导码开始,随后共32位数据,分别16位用户编码,8位键数据码和8位键数据反码【9】。【精品文档】【精品文档】. .图图 4.9 NEC协议调协议调制和解制和解调调引导码由9ms载波波形和关断时间构成,作为随后发射码的引导,编码采用脉冲位置调制方式(PPM)。利用脉冲之间的时间间隔来区分0和101【4】,如

42、图4.9所示,下方为NB0038解调后波形。 存储器电路存储器电路.1 24C02引脚说明引脚说明 24C02它的引脚及接口应用。如图4.10为24C02引脚图,A0,A1,A2为芯片地址线,单片使用时一般接VSS;SCL为串行移位时钟;SDA为串行数据或地址。通过SDA,CPU可对芯片写入或读出数据;WP为写保护。若WP接VCC,芯片只读。图图4.10 24C02引脚引脚图图 .2 单片机与单片机与24C02的接口的接口图4.11 为单片机与24C02的接口电路图。单片使用A0,A1,A2,Vss均接地。串行时钟SCL接P3.1【精品文档】【精品文档】,串行数据或地址线SDA接引脚。这里的2

43、4C02主要用于存遥控器的红外编码信息,其芯片的写指令为A0H,读指令为A1H【5】。图图4.11 24CO2与与与与单单片机接口片机接口 指示灯电路指示灯电路指示灯的LED接口接单片机的P3.5。如图4.12所以当拉低时,指示灯亮;当拉高时,指示灯灭。图图4.12 指示灯指示灯 电源电路电源电路电源电路如图4.13所示,C5和C6 为滤波电容。输入9V电压,输出5V电压。图图4.13 电电源源电电路路图图【精品文档】【精品文档】5 程序设计程序设计5.1 主程序流程图主程序流程图开始控制模式初始化是否空闲模式进入空闲模式外部中断0延迟10ms按键去抖按键按下扫描按键信息功能切换按键学习模式控

44、制模式初始化学习模式初始化学习模式读出红外信息发射红外信号控制模式初始化存储红外信息指示灯闪烁学习模式初始化外部中断1接受红外信号指示灯闪烁中断返回定时器0中断红外发射接口翻转中断返回否中断返回是中断返回否是否否是是否失败成功主程序按键中断红外接收中断定时器0中断是图图5.1 主程序流程主程序流程图图【精品文档】【精品文档】5.2 键号判别程序设计键号判别程序设计矩阵按键部分由16个轻触按键按照4行4列排列,连接到P1端口。初始赋值P1=0 x0F,当有按键按下时,74LS21四与门输出逻辑低电平引发INT0外部中断,在通过按键扫描判断是哪个按键被按下。其原理是:依次使P1.4-P1.7为低电

45、平,然后检测P1.0-P1.3是否有引脚被拉低,当有引脚被拉低时,根据置底的引脚和被拉低的引脚就可以判断出是哪个按键被按下。使CPU对键的一次闭合仅做一次处理:采用的方法为等待闭合键释放以后再作处理【8】。键盘号识别程序的框图如图5.2所示:开始scancode=0 xef;scancode!=0 xffKEY=scancode;keycode=KEY;(keycode&0 x0f)!=0 x0fscancode=(keycode1)|0 x0fkeycode=keycode结束是否是否【精品文档】【精品文档】图图5.2 键盘键盘号号识别识别程序流程程序流程图图5.3 红外接收程序设计

46、红外接收程序设计遥控器处在学习模式下,当有红外信号时,就会触发INT1外部中断,使单片机从空闲模式下唤醒,进入接收程序,当接收成功后指示灯会闪烁,接收的红外信号暂存在Ir_Buf4数组里。图 5.3为红外接收程序流程图开始获得引导码引导码是否正确i4j7获得低电平时间是否符合标准获得高电平时间是否符合标准存储信息指示灯闪烁结束结束结束结束是i=0;否i+循环退出j=0j+循环退出否是否是【精品文档】【精品文档】图图 5.3 红红外接收程序流程外接收程序流程图图5.4 红外发射程序设计红外发射程序设计遥控器在控制模式下,当有普通按键按下后,单片机从EEPROM中取出对应键值的红外信息存储在Ir_

47、Buf4数组里,然后设置T0为模式2(自动重装模式),利用T0中断产生38KHz的载波信号。要输出高电平时启动T0中断,要发送低电平就关闭T0中断,并拉低发送端口P2.0。根据Ir_Buf4存储的红外信息循环发送4字节。图5.4为红外发射程序流程图。【精品文档】【精品文档】开始发射初始化发射引导码ij)&0 x01=1发射1.69ms低电平发射0.56ms低电平发送一段脉冲信号设置T0为模式1j7结束否否是是i+j+i=0;j=0;是否图图 5.4 发发射程序流程射程序流程图图【精品文档】【精品文档】6 程序源代码程序源代码源码见附录源码见附录A I2C总线程序总线程序位传输位传输I2

48、C总线每传送一位数据必须有一个时钟脉冲。被传送的数据在时钟SCL的高电平期间保持稳定,只有在SCL低电平期间才能够改变,在标准模式下,高低电平宽度必须不小于4.7us。那么是不是所有I2C总线中的信号都必须符合上述的有效性呢?只有两个例外,就是开始和停止信号。开始信号:当SCL为高电平时,SDA发生从高到低的跳变,就定义为开始信号。停止信号:当SCL为高电平时,SDA发生从低到高的跳变,就定义为结束信号。 数据传输的字节格式数据传输的字节格式SDA传送数据是以字节为单位进行的。每个字节必须是8位,但是传输的字节数量不受限制,首先传送的是数据的最高位。每次传送一个字节完毕,必须接收到从机发出的一

49、个应答位,才能开始下一个字节的传输。如果没有接受到应答位,主机则产生一个停止条件结束本次的传送。那么从机应该发出什么信号算是产生了应答呢?这个过程是这样的。当主器件传送一个字节后,在第9个SCL时钟内置高SDA线,而从器件的响应信号将SDA拉低,从而给出一个应答位。 I2C数据传输协议数据传输协议I2C总线的数据传输协议如下:(1)主器件发出开始信号。【精品文档】【精品文档】(2)主器件发出第一个字节,用来选通相应的从器件。其中前7位为地址码,第8位为方向位(R/W)。方向位为“0”表示发送,方向位为“1”表示接受。(3)从机产生应答信号,进入下一个传送周期,如果从器件没有给出应答信号,此时主

50、器件产生一个结束信号使得传送结束,传送数据无效。(4)接下来主、从器件正式进行数据的传送,这时在I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位(传送的时候先送高位,再送低位)。当一个字节传送完毕时,再发送一个应答位(第9位),如上一条所述,这样每次传送一个字节都需要9个时钟脉冲【5】。红外接收源码见附录红外接收源码见附录B红外发射源码见附录红外发射源码见附录C【精品文档】【精品文档】7 系统调试系统调试单片机系统经过总体设计,完成了硬件和软件设计开发。通过软件和硬件相结合系统即可运行。但编制好的程序或焊接好的线路不能按预计的那样正常工作是常见的事,经常会出现一些硬件、软件上的错误

51、,这是软件和硬件开发者经常遇见的,这就需要通过调试来发现错误并加以改正。调试可分为硬件调试和软件调试。本设计系统的已经在PC机上用模拟开发软件进行了检测和调试,并运行成功,最后进行实物图的硬件组装与调试,这样就给开发者提供了方便【6】。7.1 软件调试软件调试本设计是在Proteus软件和Keil软件相结合调试的,完全用仿真软件在PC机上对目标电路原理图和程序进行检测和调试。本次软件模拟用另一个单片机模拟一体化红外接收头,而红外发射电路采用虚拟逻辑分析仪捕获的方式查看。图7.1为用Proteus软件仿真电路图。【精品文档】【精品文档】图图 7.1 软软件模件模拟电拟电路路图图经过多次修改程序最

52、后调试出来了理想的效果,图7.2为模拟红外接收头接收的红外信号,图7.3为遥控器学习后,按下某个按键发射的红外信号。图图 7.2 红红外接收外接收头头接收的信号接收的信号【精品文档】【精品文档】图图 7.3 红红外外发发射的信号射的信号7.2 硬件调试硬件调试焊接电路板如图7.4所示图图7.4 电电路板路板单片机应用系统的硬件调试和软件调试是分不开的,许多硬件故障在硬件调试时才能发现,但通常要先排除系统中明显的硬件故障。调试工作可以分为四步:线路检查:根据硬件逻辑设计图,仔细检查样机线路是否连接正确,并核对元器件的型号、规格和安装是否符合要求,必要时可用万用表检测线路通断情况。电源调试:样机的

53、第一次通电测试很重要,若样机中存在电源故障,则加电后将造成器件损坏。调试的方法有两种:一种是断开样机稳压电源的输出端,检查空载时电源工【精品文档】【精品文档】作情况;另一种是拔下样机上的主要集成芯片,检查电源的负载能力(用假负载)。确保电源无故障并性能符合设计要求。通电检查:在确保电源良好前提下,接通电源。最好在电源与其余电路之间串接一个电流表。若接通后电流很大,必须立即切断电源。电源大得超出正常范围,说明电路中有短路或故障。通电检查的主要目的是看系统是否存在短路或由元器件损坏、装配错误引起的电流异常。检查芯片的逻辑关系是否出错:加电后检查各芯片插座上相关引脚的电位,仔细测量相应的输入输出电平

54、是否正常。单片机系统大都是数字逻辑电路,使用电平检查法可首先查出逻辑设计是否正确,选用器件和连接关系是否符合要求等【7】。硬件测试环境如图7.5所示图图7.5 测试环测试环境境普通遥控器发射的红外信号经接收发送到电脑和学习型红外遥控器学习普通遥控器的红外信号红发射的红外信号经接收发到电脑的比较,如图7.6所示【精品文档】【精品文档】图图 7.6 经经串口接收的串口接收的红红外信号外信号经过软硬件调试,本设计符合设计要求。总原理图见附录D,PCB板图见附录E。【精品文档】【精品文档】8 调试调试中遇到的问题和解决方法中遇到的问题和解决方法8.1 硬件部分硬件部分 单片机的选取单片机的选取为了到达

55、尽量的低功耗,希望单片机在平常不工作时处在空闲模式下,但是又能通过外部中断唤醒,而且希望单片机的引脚能得到充分的利用,价格还要低廉,经过查找资料,STC89C52RC可以满足程序设计的需要. 功能切换键的设置功能切换键的设置本来想单独用个按键通过独立式按键实现,但是这个按键需要随时相应,如果通过扫描,那实现单片机低功耗就有问题。如果采用外部中断实现,那就要占用一个外部中断口,而红外接收和矩阵式按键分别都要占用一个红外接收口。最后通过和同学讨论,才恍然大悟功能切换可以用矩阵式按键其中的一个来实现,这样问题就得到了解决。8.1.3 AT24C02的焊接的焊接在焊接AT24C02引脚的时候,由于高温

56、持续时间过长导致AT24C02零件损坏,为了避免这种情况再发生,买了8引脚座,这样就解决了。红外发射部分红外发射部分由于我用单片机定时器0中断来产生38K载波,那就要设置定时器每13个机器周期就要中断一次,为了达到更高精度,中断内的代码不能过多,通过不断的改进和测试,使定时器处在模式2(自动重装模式),效果很好。【精品文档】【精品文档】中断部分中断部分整个程序用到了三个中断,外部中断0、1和定时器0中断,由于在外部中断0内部使用了定时器0中断,由于定时器0中断的优先级低于外部中断0所以导致定时器0中断不响应。通过设置定时器的中断优先级高于外部中断0,问题得到解决。定时器定时器0模式部分模式部分

57、由于在红外接收部分我用定时器0的模式1,在红外发射部分我用定时器0的模式2,由于在红外发射部分用过定时器的模式2没有设置恢复定时器0为模式1,导致遥控器一经过发射部分后就不能实现红外接收,通过在发射程序最后设施定时器0恢复为模式1,问题得到解决。【精品文档】【精品文档】结论结论本课题实现了基于NEC红外协议的学习型红外遥控器,本遥控器最大的亮点是具有学习功能,可以学习其他红外遥控器的红外编码,这样一个遥控器就可以实现多个遥控器的功能,免除了每个电器器件都要寻找特定遥控器的麻烦。本实验使用了STC89C52RC单片机用来实现,但是实际应用中可以用成本低功耗小更少引脚的2051系列单片代替,它们的

58、代码是兼容的。本实验虽然只有16个按键,但是完全可以扩展,当使用2051单片机时可以采用改进型I/O端口复用键盘实现,由于使用了24C02B理论上可以存储64个按键信息。本遥控器为了实现最优的节能,在程序设计的过程中用利用单片机的两个外部中断,在平时不工作的时候,单片机处在空闲模式,只有在有按键信息或学习模式下接受红外信号才触发外部中断退出空闲模式,当处理信号后,单片机就会重新进入空闲模式,从而实现更优的节能。红外信号是用38KHZ载波发送的,本系统是利用单片机的定时器0来产生38K载波信号,这样产生的载波信号稳定,同时也简化了电路降低了功耗。同时本系统也存在着不足,因为编码是针NEC红外协议

59、,所以并不能真正的达到万能。有种方案可以参考就是存储红外信号的高低电平的长度,这样就能真正的达到万能遥控器,但是这样会占用更多的存储空间,所以本系统没有采取,但是今后可以通过软件升级,添加其它红外协议,这样就可以尽量的实现多功能。为了方便产品软件更新,今后可以增加与电脑的接口实现在线更新单片机内的程序。出于低功耗的考虑,本系统没有添加LCD显示。考虑用户使用的方便,可以增加LCD显示,但是功耗会大大增加,可以考虑把电池改成可充电的,电路增加充电电路模块,但是这样就会大大增加了产品的成本,关于这点需要考虑各方面的综合因素作出判断。基于本实验的缺点,今后要改进以实现真正的万能遥控器可以采取两个方案,一种是不考虑红外协议,只存储接收的红外信号的高低电平的长度,但是会占用大量的存储【精品文档】【精品文档】空间。另一种考虑各种红外协议,进行判断识别,做到针对协议的存储红外信号,但是这样会增加代码的复杂程度。【精品文档】【精品文档】参考文献参考文献1 周航慈.单片机应用程序设计技术M.北京:北京航空航天大学出版社,2002:56-62. 2 李 华等.MCS-51系列单片机实用接口技术M.北京:北京航空航天大学出版社,1993:51-68.3 马忠梅,籍顺心,张 凯,马 岩. 单片机的C 语言应用程序设计. 修订版M.北京:北京航空航天大学出版社,19

温馨提示

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

评论

0/150

提交评论