本帖最后由 qrk123 于 2014-2-26 14:12 编辑
春节期间,虽然要上班,但事情不多。至从上次搞成功大尺寸数码管加DS12C887时钟后,没事做时,看看别人的程序,发现自己可以读懂小尺寸887原作者的程序。原作者的程序是以最简单来实现时钟功能。我是反其倒而行,在他的基础上,一点点加自己想要的功能,就当是一个学习的过程。
一直以来都是仿别人的作品,对C语言还是比较恐惧,所以一开始搞起来还是比较吃力。与其说是改别人的程序,不如说是拼别人的程序。集各家之长,把想要的功能加进去,每实现一个小小的功能,都是让人挺高兴的。程序里的好多资料都是来自网络,在此感谢各位前辈们的资料。887的功能搞得差不多了,就转搞1302了。毕竟1302比较便宜,占用的端口少,资料也比较多。
1、 增加了红外功能,可以用电视的万能遥控器来设置时间。 2、 增加了亮度功能,晚上十点至早上六点为灰暗。 3、 增加了调整时间时,调整部分闪动,十秒无按键操作,自动回到走时界面。 4、 增加了简单的校时功能,减少调整时间的麻烦。 5、 增加了温度功能,使时钟更加实用。
注意事项: 1、 唯一的缺点是秒点部分,亮度灰暗时,秒点不能变暗,不知要怎么搞。显示温度时,秒点原意是要它不亮,但它总是会微微闪亮,后来干脆就让它直接亮了。 2、 温度驱动是直接借用杜洋先生以前程序里的,好像说只能0—60度,北方的朋友要注意这个问题了。 3、 亮度灰暗时,如果用地短接P1.0,数码管会变明亮。准备以后买人体感应模块,来实现有人在时,就变明亮的功能。 4、 没有大尺寸数码管的朋友也别担心,附件里,有一个“小数码管main.c”的文件,直接重命名为main.c替换原来的main.c,打开KEIL,重新编译下载,就可以用在小数码管上了。 5、 校时功能比较简单,前提是先屏蔽校时功能,验证你的时钟每天误差是多少,然后在打开校时功能,把误差写入程序里。水平实在有限,只能做到这样。 6、 PCB 板和电路图都是用飞雪兄以前画的,硬件基本都一样(除了增加温度和红外接收部分),电路图也放在附件里了。附件里还有大尺寸DS12C887 的程序,功能和这个差不多一样,就是没实现人体感应哪一部分,不知怎的,实现不起来。喜欢的朋友也可以玩玩。
遥控部分: 无意中,发现自己买的学习板的资料里,有一个是红外1602解码程序(附件里有),解出来的码可以用在高手们写的红外程序里。据说是用TC9012的码。
红外解出有四组码,前两组是用户码(86-6B)不用理它。主要看后两组是不是组成正反码的关系。如:01的反码是FE。附件里的1302程序要的就是第三组数码。在程序里填上相应的第三组的代码就可以实现遥控了。
图上的遥控器都能正常解码。小MP3 遥控器虽然表面按键的功能不一样,但发出的代码是一样的。没有这种小MP3 的遥控器也不要紧,用周街都可以买到的电视万能遥控器也可以,里面也有很多这样的红外代码,很容易找到。至于怎么在万能遥控器切换不同品牌的电视遥控代码,在遥控器的背面有讲,我就不多说了。 反正两个关键: 1、 第三和第四组代码是正反码关系。 2、 按多几次同样的按键,解出来的代码都是一样,就说明这遥控代码可以用。例如:按万能遥控器上的“1 ”键,多按几次,1602 上显示都是同样的代码,就OK 了。如果多按几次同样的按键,每次显示都是不同的代码或不显代码,就说明不能用。
本人也是菜鸟一个,如有什么不对的地方,请大家谅解。有什么错误的地方,请高手指正一下,谢谢!!
aaa.rar
(209.01 KB, 下载次数: 452)
|