单片机红外遥控数字钟
扫描二维码
随时随地手机看文章
闲来无事,练练单片机编程。在原来的一个数字钟的基础上增加红外遥控功能。硬件是2051单片机,int0口作为红外信号输入。红外接收头用家电中常用的一体化接收头。脚位是地,正电源,信号输出。信号输出脚接到2051的第6脚,平时红外输出呈高电平,收到信号时呈低电平,2051产生外部中断。程序中加入外部中断int0中断处理代码和定时器1中断处理代码。定时器1作为计数器,用于测量红外信号的脉冲宽度。int0处理过程,关闭计数器1,取出数值放到一个数组中。当数组长度达到34时,取出数据,根据脉冲宽度分辨0和1,测得宽度分别是4和8,取其平均值,大于6的为1,小于6的为0。其中,10到18位为识别码,18到26位为数据。识别码用于区别不同厂家的遥控器。
我用的一个投影机的遥控器,测得识别码为254。按下不同的按键,测量各键的码值,记录下来。从这些数值可判断按下的是哪个键,写按键处理函数。主要功能,按菜单键改变钟的模式,依次为,秒显示,小时设定,分钟设定,延时设定,输出继电器开关,开始小时设定,开始分钟设定,结束小时设定,结束分钟设定。音量键增大减小数值。数字键直接修改数值。
线路图: