您现在的位置是:首页光电技术论文

红外遥控数字时钟

发布时间:2011-02-26 13:41:54更新时间:2023-07-01 10:26:27 1

  
  摘要:随着社会的发展,人们生活水平的提高,我们日常生活中也增添了很多电子产品,而近些年来,数字挂钟在家庭中广泛流行使用,它不仅美观、大方而且可视性良好,但是美中不足的是它依旧是没有解决以往挂钟的一个小麻烦,既然是挂钟必然挂在墙上,这样我们对挂钟调时、定时就很不方便,如果采用红外遥控器对数字时钟进行控制的话,这个问题就很好的解决了。
  关键字:红外遥控、数字时钟、AT89C51、模块
  中图分类号:TN6文献标识码:A
  红外线自1800年被发现以来,人们对她的研究从来没有停止过,目前已经开发出了众多的应用产品,从医疗、检测、航空到军事等领域,几乎处处都能看到红外的身影。红外遥控技术就是一个就是红外应用中的一部分,我们可以用红外遥控电视机,空调,可以做红外鼠标、键盘,同样可以用红外来遥控数字时钟。
  1.整体概述
  红外遥控数字时钟是在基于单片机控制技术基础上利用红外遥控技术来实现对数字时钟的控制,之所以采用红外遥控技术而没采用其他的遥控技术是因为:数字挂钟作为一款家用产品,采用红外技术足以实现功能,而技术及应用方面则要比其他遥控技术要简单、方便,而且成本相对较低,比较适合家用。而采用51单片机实现的红外遥控数字时钟更是以低成本、低功耗、稳定性高、小巧等特点而得以实用。
  红外遥控数字时钟整体上可分为两个部分:软件部分和硬件部分。软件部分是由汇编语言编写的程序构成的,其中包括调时程序、时钟计数程序、时钟显示程序、时钟报时程序。将这些程序通过烧写器烧写到AT89C51芯片中,然后来实现红外遥控数字时钟的各项功能的控制。硬件电路部分包括红外遥控器电路、数字时钟电路。红外遥控器电路中采用了PT2262/PT2272红外发送接收模块(图1,图2)作为核心,外连一些二极管、三极管、电容、电阻、红外发射头和红外接收头来完成PT2262/PT2272的发射和接收电路;数字时钟电路采用AT89C51芯片作为电路的核心芯片,外部连接8位8段LED数码管、蜂鸣器、晶振、电阻、电容、拨动开关等器件[1]。
  图3-红外遥控数字时钟系统框图

红外遥控数字时钟系统框图
  红外遥控数字时钟的基本功能是:开机时,显示12:00:00,并以此时间开始走时,以24小时制分别显示时、分、秒,可调时,可定时、闹铃,调时、定时均用遥控器进行操作。
  2.软件设计介绍
  红外遥控数字时钟的软件部分采用单片机汇编语言编写,比其他语言能更精确的进行控制,减小了系统的误差,使的时间显示更精确。本系统的主程序主要完成时间显示、时间调整、遥控器信号检测与接收和定时输出判断功能。而遥控信号检测接收,时、分、秒时间的进位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。
  2.1数据与代码转换
  由前述可知,从P3口输出位选码,从P0口输出段选码,LED就会显示出数字来。但P0口的输出的数据是要BCD码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。可见,将要显示的存储单元的数据直接送到P0口去驱动LED数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过BCD码行转换后,将各个单元数据的段选代码送入P0口,然后译码后去驱动数码管显示[2]。
  具体转换过程如下:
  我们先将要显示的数据装入累加器A中,再将A中的数据转换成高低两位的BCD码,再放回A中,然后将A中的值输出。如:有一个单元存储了“45”这样一位数,则需转换成四位的BCD码:(0100)(0101)然后放入A中。A中BCD码,高位四位代表“4”,低四位代表“5”同时送给两个译码器中,译码后“45”字就在两个LED中显示出来。
  2.2计时功能的实现与中断服务程序
  时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器T0打开后,进入计时,满100毫秒后,重装定时。中断一次,满一秒后秒进位,满60秒后即为1分钟,分钟单元进位,60分到了后,时单元进位。这样然后根据进率,得到时、分、秒存储单元的值,并经译码后,通过扫描程序送LED中显示出来,实现时钟计时功能。累加是用指令INC来实现的[3]。
  进入中断服务程序以后,执行PUSHPSW和PUSHA将程序状态寄存器PSW的内容和累加器A中的数据保存起来,这便是所谓的保护现场.以保护现场和恢复现场时存取关键数据的存储区叫做堆栈。在软件的控制之下,堆栈可在片内RAM中的任一区间设定,而堆栈的数据存取与一般的RAM存取又有区别,对它的操作,要遵循后进先出的原则。
  2.3时间调整功能
  时间的调整也是采用中断服务程序,首先红外线遥控器发出的调时模拟信号通过电路转换由红外发射头发射,并有红外接收头接收并转换成数字信号通过P1口发送跟芯片,然后芯片接到信号,运行中断,并调用调时子程序,此时进入调时状态,然后就可以通过相应操作进行对时、分、秒的调整,调时完毕后在跳到主程序继续往下执行。
  2.4时钟定时功能与比较指令
  系统的另一功能就是实现对时间定时的开关和报时的控制,其主要控制思想是这样的:先将定时的时间置入RAM某一单元,在计时主程序当中执行几条比较指令,如果当前计时时间与定时的时间相等,就执行一条指令,将对应的那路P2置为高电位,与之连接的蜂鸣器就开启、闹铃;如果当前计时时间与定时时间不相等,就跳出继续执行主程序。实现此控制功能用到的比较指令为CJNEA,#direct,rel,其转移条件是累加器A中的值与立即数不等则转移。
  3.硬件设计介绍
  3.1红外遥控模块
  红外遥控采用模块化设计,使用的是pt2262/pt2272红外发送接收模块,PT2262/2272是一种CMOS工艺制造的低功耗低价位通用编解码电路,PT2262/2272最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码,PT2262最多可有6位(D0-D5)数据端管脚,设定的地址码和数据码从17脚串行输出,可用于无线遥控发射电路。
  编码芯片PT2262发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,当发射器没有按键按下时,PT2262不接通电源,其17脚为低电平,所以315MHz的高频发射电路不工作,当有按键按下时,PT2262得电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平期间315MHz的高频发射电路起振并发射等幅高频信号,当17脚为低平期间315MHz的高频发射电路停止振荡,从而对高频电路完成幅度键控(ASK调制)相当于调制度为100%的调幅。外接振荡电阻可根据需要进行适当的调节,阻值越大振荡频率越慢,编码的宽度越大,发码一帧的时间越长.
  地址码和数据码都用宽度不同的脉冲来表示,两个窄脉冲表示“0”;两个宽脉冲表示“1”;一个窄脉冲和一个宽脉冲表示“F”也就是地址码的“悬空”,2262每次发射时至少发射4组字码,2272只有在连续两次检测到相同的地址码加数据码才会把数据码中的“1”驱动相应的数据输出端为高电平和驱动VT端同步为高电平[4]。
  在使用中,我们采用8位地址码和4位数据码,四位数据码与四个按钮相对应,来完成四种功能控制,这时编码电路PT2262和解码PT2272的第1~8脚为地址设定脚,有三种状态可供选择:悬空、接正电源、接地三种状态,只有发射端PT2262和接收端PT2272的地址编码完全相同,才能配对使用,项目中将发射机的PT2262的第1脚接地第5脚接正电源,其它引脚悬空,那么接收机的PT2272只要也第1脚接地第5脚接正电源,其它引脚悬空就能实现配对接收。设置地址码的原则是:同一个系统地址码必须一致;不同的系统可以依

靠不同的地址码加以区分。
  3.2核心控制模块
  红外遥控数字时钟的控制核心是AT89C51芯片(见图4),片内有128B的数据存储器,同时片外最多还可扩展64KB,用来存储单片机运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等。还有4KB的程序存储器,片外也可最多扩展64KB。AT89C51芯片具有5个中断源,2级中断优先权。片内有2个16位的定时器/计数器,具有4中工作方式。有1个全双工的串行口,也具有4中工作方式。可用来进行串行通信,扩展并行I/O口。还有4个并行8位I/O口,分别为P0口、P1口、P2口、P3口。还有21个特殊功能寄存器,用于CPU对片内个功能部件进行管理、控制、监视。

 

at89c51
  在这里使用了P1.0-P1.7作为LED数码管的段选端口,用来控制LED数码管的段选。P3.0-P3.7作为LED数码管的位选端口,用来控制LED数码管的位选。P0.0-P0.3作为红外信号接收端口,用来接收红外遥控器传来的信号。P2.0作为蜂鸣器端口,用作报时蜂鸣器。18、19引脚外接12MHz的晶振,然后晶振两脚分别接两个电容然后接地,与片内的反向放大器构成了1个振荡器,为单片机提供时钟控制信号。31脚和40脚直接接电源,20脚直接接地,9脚外接一个电阻和电解电容,电阻另一端接地,电解电容的正极端接高电平,共同构成芯片的复位电路。其他管脚全部悬空[5]。
  3.3其他模块、器件
  在红外遥控数字时钟中还用到了5V压电式蜂鸣器,5V8段8位共阳极LED数码管,12MHz的晶体振荡器。其中蜂鸣器作为数字时钟的报时器,LED数码管作为数字时钟的时间显示器,晶体振荡器作为外部晶振是给AT89C51提供一个外部时钟控制信号[6]。
  4.结论
  通过上述,将各硬件进行连接,然后往芯片写入程序之后,整个红外遥控数字时钟便完成,通电之后LED数码管显示12:00:00,然后就可通过遥控器(见图5)进行调整时间,遥控器有4个按钮,分别为A、B、C、D,A按钮是调时+按钮,B按钮是调时—按钮,在不启动调时时为闹铃开关按钮,C按钮是调时开关,D按钮是定时开关;按C按钮进行调时操作,按一下C按钮小时显示闪烁,此时可对小时进行调整,然后按A、B按钮调整小时数值,按两下C按钮分钟显示闪烁,此时可对分钟进行调整,然后按A、B按钮调整分钟数值,按三下C按钮退出调时状态,回到时间显示状态;按D按钮进行定时操作,
 

遥控示意图
  按一下D按钮小时显示闪烁,此时可对小时进行定时调整,然后按A、B按钮调整小时数值,按两下D按钮分钟显示闪烁,此时可对分钟进行定时调整,然后按A、B按钮调整分钟数值,按三下D按钮退出调时状态,回到时间显示状态;在没有按任何按钮时按B按钮进行闹铃设定,按一下B按钮闹铃为开状态,此时根据定时时间进行闹铃,按两下D按钮闹铃为关状态,此时没有闹铃。闹铃开状态时,显示器数字下方点亮,闹铃关状态时,显示器数字下方点不亮。
  5.参考文献
  [1]沙占友,孟志永,王彦朋.单片机外围电路设计[M].电子工业出版社,1999:59-69
  [2]彭为,黄科,雷道仲.单片机典型系统设计实例精讲[M].电子工业出版社,2002:109-129
  [3]肖金球。单片机原理与接口技术[M].清华大学出版社,2002:78-98
  [4]谢维成,杨加国.单片机原理与应用及C51程序设计[M].清华大学出版社,2005:153-169
  [5]杨将新,李华军,刘东俊.单片机程序设计及应用[M].电子工业出版社,1998:114-129
  [6]张靖武,周灵彬.单片机系统的PROTEUS设计与仿真[M].电子工业出版社,2004:114-119
  


转载请注明来自:http://www.yueqikan.com/guangdianjishulw/4616.html