基于单片机控制的通用型电视遥控器设计


汪霞  ( 安庆师范学院物理与电气工程学院 安徽 安庆 246011)

 指导教师:吴文进


 : 红外线遥控是目前使用最广泛的一种通信和遥控手段,电视机遥控器是红外遥控系统中的典型代表。由于各厂家经常使用专用的遥控芯片,不同的遥控器之间互不兼容,因此给我们的生活带来一些不便。我的设计是使用常用的芯片AT89C52代替专用的遥控芯片制作一个遥控器,实现遥控器之间的通用化.该设计具有编程灵活多样,操作码个数可随意设定等优点,并且可以达到“一器多用”。

关键词遥控器 ,单片机, 键盘矩阵 ,编码

 

1.  引 言

    在现在社会及家庭的各种家用电器产品和娱乐设施中,一般都采用红外线遥控技术。红外遥控器电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作,而且红外遥控编解码容易,还可以进行多路遥控。


目前红外线遥控技术已经在电视机中得到了广泛的应用。电视机遥控器使用的是专用集成发射芯片来实现遥控器的发射,如东芝TC9012,飞利浦SAA3010T等。这些芯片价格贵,且互相之间采用的遥控格式互不兼容,所以各机型遥控器通常只能针对各自的遥控对象而无法通用。本设计利用低成本的MCS-51系列来实现遥控器的模拟发射,并实现遥控器的通用化。


2.  功能要求

    通用红外遥控系统由发射和接收两大部分组成,发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调电路和解码电路遥控信号发射装置通过将某个按键所对应的控制指令调制在38KHz范围内的载波上,然后经放大、驱动红外发射管将信号发射出去。遥控接收头通过对遥控信号的放大、检波、整形、解调出遥控编码脉冲。

 

图1红外遥控系统总体框图

本设计采用MCS-51系列单片机AT89C52代替专用遥控发射芯片,通过软件模拟实现了电视机遥控编码的发射,具有编程灵活多样,操作码个数可随意设定等优点,并且可以达到一器多用

3.  遥控器发射设计原理

目前市场上一般设备系统采用专用的遥控编码芯片,制作比较简单容易,但由于功能键数及功能受到特定的限制,只适合用于某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样,操作码个数可随意设定等优点。

图2   遥控发射器总体结构图

4. 遥控发射器硬件电路及其组成

4.1遥控发射器硬件电路图

遥控发射器电路主要由下面几部分组成:AT89C52单片机,低功率损耗电路,红外线发射电路以及由P0口和P2口搭成8×8按键矩阵。当无键按下时,单片机处于低功耗空闲状态。当有键按下时,产生的外中断请求信号(低电平有效)经八输入与非门和非门后送至P3.2端,使CPU进入中断处理,同时点亮按键指示灯。系统产生的遥控编码信号通过P3.5端发出,经放大后驱动发射管发射出去。

硬件电路总图如下图所示:

 

 

图3  遥控器硬件电路总图

4.2  AT89C52单片机

AT89C52是美国ATMEL公司生产的低电压高性能CMOS 8位单片机,片内含8k的可反复擦写的只读存储器和256bytes的随机存取数据存储器,器件采用ATMEL公司的高密度非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置8位中央处理器(CPU)和Flash存储单元。功能强大的AT89C52单片机适合于各种各样的控制应用场合。


·与MCS-51产品指令和引脚完全兼容

·8K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间:10年
·全静态工作:0Hz-24Hz
·三级程序存储器锁定
·256*8位内部RAM
·32个可编程I/O口线
·316位定时器/计数器
·8个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·可编程串行UART通道


4.3  键盘电路

4.3.1键输入原理

在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。


 对于一组键或一个键盘,总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无按键输入,并检查是哪一个键按下,将该键号送入累加器ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。


4.3.2按键结构与特点

遥控器键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的TTL逻辑电平,以便与通用数字系统的逻辑电平相容。


机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有——定时间的触点机械抖动,然后其触点才稳定下来。抖动时间的长短与开关的机械特性有关,一般为510ms


在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件西方面予以考虑。在键数较少时,可采用硬件去抖,而当模数较多时,采用软件去抖。


在电视机的遥控器中,我们主要采用软件控制来消除键盘的抖动。具体所采取的措施是:在检测到有按键按下时,执行一个10ms左右的延时程序后,再确认该键电平是否仍保持闭合状态电乎,若仍保持闭合状态电乎,则确认该键处于闭合状态。同样,在检测到该键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响。


4.3.3按键编码

一组按键或键盘都要通过I/O口线查询技键的开关状态。根据键盘结构的不同,采用不同的编码。无论有无编码,以及采用什么编码、最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。


4. 4低功率损耗电路

AT89C52CPU有两种节电工作方式即空闲节电模式和掉电模式。


4.4.1空闲节电模式

在空闲工作模式状态,CPU自身处于睡眠状态而所有的外设仍保持激活状态,这种方式由软件产生。此时将片内RAM和所有特殊功能寄存器的内容冻结。空闲模式可有任何允许的中断请求和硬件复位终止。


由硬件复位终止空闲状态只需要两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部RAM,但可以访问端口引脚,当复位终止空闲方式时,为避免可能对端口和外部存储器产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。


4.4.2掉电模式

在掉电模式下,震荡器停止工作。进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结,去除掉电模式的唯一办法是硬件复位。复位后将重新定义全部特殊功能寄存器,但不改变RAM中的内容。在VCC恢复到正常工作电平前,复位无效,且保持一定的时间以使振荡器重启动并稳定工作。


在这里遥控器采用空闲节电方式。当系统进入空闲工作方式,内部时钟电路不向CPU提供,而只供给中断`串行口和定时器部分。遥控器退出低功耗空闲方式电路由T060与非门来实现。当有键按下时,单片机退出空闲状态,进入键盘和红外发射程序,结束后又进入低功耗空闲方式待机。使用过程中单片机基本上都处于空闲工作方式,功耗相当低,从而为电池电源提供保障。


4.5红外线发射管和指示灯

利用LabVIEW强大函数功能和USB接口即插即用的方便性,结合以单片机为核心组成的小系统,可以很方便地完成数据采集及处理等功能,具有很强的工程实用性,可广泛应于测试控制领域。

红外发光二极管能发出波长为940nm的红外光,其结构、工艺、原理与一般的发光二极管相同,只是所采用的半导体材料不同,具有体积小、寿命长、耐振动、响应速度快、耗电小等优点。在这里遥控编码信息由AT89C52单片机的定时器1调制成38kHz红外载波信号,由P3.5输出,经过三极管9013放大,由红外发射管发射。按键的操作指示灯使用一个LED发光二级管即可。


5.  系统软件的设计

软件的设计,需要准确无误的实现遥控器的控制功能,希望能够使系统具有高的可靠性能、快的反应速度、以及较低的系统功率损耗。控制功能主要包括:系统的初始化程序、键盘扫描程序、红外线的编码程序以及发射程序等。

 

图4  系统的总程序流程图

首先初始化程序,判断是否有键按下。当有键按下时,产生的外中断请求信号(低电平有效)经八输入与非门和非门后送至P3.2端,使CPU进入中断处理,同时点亮按键指示灯。系统产生的遥控编码信号通过P3.5端发出,经放大后驱动发射管发射出去判断了是哪一只键按下以及处于机芯的哪种状态以后,程序就严格按照相应的遥控编码方式来进行遥控码的发射,直到结束。


5.2初始化程序和主程序流程图

初始化程序部分主要使系统进入复位初始化的状态值,选择工作寄存区,设置堆栈SP,设置中断优先级IP,开外部中断0。

 

图5 初始化程序流程图

 

                 6  主程序流程图


5.3 键盘扫描程序  

5.3.1键盘的工作方式

在单片机应用系统中,键盘扫描是系统工作内容之一。CPU对键盘的响应取决于键盘的工作方式,键盘的工作方式应根据实际应用系统中CPU的工作状况而定,其选取的原则是既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间。通常,键盘的工作方式有三种,即编程扫描、定时扫描和中断扫描。             

采用前两种键盘扫描方式时,无论是否按键,CPU都要定时扫描键盘.而遥控器在工作时,并非经常需要键盘输入,因此,CPU经常处于空扫描状态。而且对于电视机的遥控器,当有按键按下时,需要做出立即的反应。同时为了提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下;当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。

7  4*4 键盘矩阵电路

其工作原理用上面的4*4 键盘矩阵来进行说明。 图7是一种简易键盘接口电路,该键盘是由89C52门口的高、低字节构成的4×4键盘。键盘的列线与门口的高4位相连,键盘的行线与门口的低4位相连,因此,P14P17是键输出线,P1.0~P1.3是扫描输入线。图中的4输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5v电源,输出端接至8051的外部中断输入端口。具体工作如下:当键盘无键按下时,与门各输入端均为高电平,保持输出端为高电平;当有键按下时,其端口端为低电平,向CPU申请中断,若CPU开放外部中断,则会响应中断请求,转去执行键盘扫描子程序。


5.3.2矩阵键盘具体按键的确定


要确定具体是键盘的哪一个按键按下,使用线性反转法。


第一步:将行线编程为输入线,列线编程为输出线,并使输出线为全0电平,则行线中电平由高到低变化所在的行为按键所在的行。


第二步:同第一步完全相反,将行线编程为输出线,列线编程为输入线,并使输出线为全0电平,则列线中电平由高到低变化所在的列为按键所在的列矩阵形式由扫描线和数据线构成。两组线分别接AT89C52的两个输端口。控制器通过软件把扫描线写成0,接受线写成1。按下一键即将响应的扫描线和接收线接通,于是接受线被拉成低电平。


8条接受线逻辑相与之后的统一信号作为AT89C52的一个外部中断输入,这样有键按下时就将引起中断。中断服务程序对所按的键进行鉴别。如果是多个键同时按下则不做任何反应,若是单键按下,则将信息转换成响应的输出。


通常,当无键按下且无其他任务时,微控制器处于空闲状态。当矩阵有键按下,则产生中断,从而结束空闲状态。中断服务程序首先调用一段延时程序(10ms~~20ms左右),等待键的抖动消失,然后才对所按的键进行处理。


首先接收线的现状态被存入内部的寄存器中,若是单一键按下,则接收线除一位外其余各位均为1,此后向接受线写0,扫描线写1,并随之读扫描线,若是单一键按下,则扫描线除一位外其余各位均为1,根据两组线中零的位置即可确定按下的是哪一个键,若矩阵中同时有多个键按下,则每组线中0的个数不止一个。

 

图8 线反转法扫描流程图

SCAN扫描程序可以确定每组线中那一个为零,是否有多个零等。再调用此程序前,应将所读组线的数据存入一个可按位寻址的片内RAM单元。自这段程序返回时,ZERO_CNT单元中包含有LINE单元中0的个数。若只有一位为0,则0的位置保存在ZERO_BIT单元中。


按键所引起的中断有如下的中断服务程序:


5.4红外编码设计

遥控器之间的本质区别就在于编码的不同。不同的编码,其发射和接受的原理不同。常用的编码格式有脉冲编码和脉宽编码。这里采用脉冲个数进行编码。


采用脉冲个数进行编码,不同的脉冲个数代表不同的码,最小为两个脉冲,依次递加,为了接受可靠,第一位码宽为3ms,其余为1ms,遥控码数据桢之间的间隔大于10ms,如下图所示:

 

图9 脉冲个数编码原理图

当某个操作键按下时单片机先读出键值,然后再根据键值设定遥控码的脉冲个数,再调制成38KHZ的方波发射出去

5.5.遥控码的发射流程图

 

图10遥控码发射流程图

编码的格式比较多,其相对应的发射格式也比较多,但其原理都是一样的。在这里画出脉冲个数编码的发射流程图。在用脉冲个数进行中,不同的脉冲个数代表不同的码。最小为两个脉冲,依次递加,为了接受可靠,第一位码宽为3ms,其余为1ms。直至按键所对应的脉冲个数发射完毕为止。

6.  

采用红外遥控方式时,距离角度等使用效果受一定的限制如果采用调频或者调幅发射接受,则发射的距离会更远。本遥控器的编码方法适合于需要应用到遥控电器系统,是自行设计遥控功能的控制系统的理想方案。

 

参考文献  

[1] 王晓君 安国臣,MCS-51及兼容单片机原理与选型[M ],北京:电子工业出版社

[2] 南建辉 熊鸣 王军茹,MCS-51单片机原理及应用实例[M ],北京:清华大学出版社

[3] 楼然苗  李光飞  编著,51系列单片机设计实例[M ],北京:北京航空航天大学出版社

[4] 李广弟 等编著,单片机基础[M ],北京:北京航空航天大学出版社

[5] 吴秀清 周荷琴 编著,微型计算机与接口技术[M ],合肥:中国科学技术大学出版社

[6] 何立民主编 ,单片机应用系统设计[M ],北京:北京航空航天大学出版社

> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >

学习硬件入门首选。51单片机适合学习,对硬件知识要求不高,因为学习基本都是在开发板上,学会连接一些基本线路就行。当然如果能够自己画PCB,那就完美了。单片机对C语言要求比较高,如果开始的C语言基本不错,那单片机学起来也不会吃力。

生成海报
点赞 0

Abin

我还没有学会写个人说明!

相关推荐

芯片相关的书籍

1、名师讲科技前沿系列--图解芯片技术(2019.07) 2、芯片世界:集成电路探秘(2017.08) 3、芯事  一本书读懂芯片产业发展史(2018.07) 4、芯想事成 中国芯片产业的博弈与突围(2018.08) 5、芯片改变

浅谈5类过零检测电路

在电力电子中,零点电压检测(通常简称为过零检测)技术被广泛应用。通过检测电路追踪交流电的电压变化过程,在交流电压为”零”的时刻输出信号,利用该信号我们可以做很多工程应用。例如,在智能开关产

第一次 PCB 打样

念头 前段时间,看到了嘉立创 5 元打 5 块的广告,顿时又萌生了画板打样的念头,为什么又呢?从上大学以来,时不时地想,能不能自己打个板子调试调试&#xff0