工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

程序讲解

作者:dolphin时间:2017-02-28

?? ?这个制作的硬件焊接部分并不难,只要静下心慢慢地一步一步焊接即可,最主要的还是在程序的编写上。
??? 制作的主要部分是在1602液晶显示屏,因此,主要的问题还是如何驱动这个液晶屏。液晶屏的使用跟大多数的芯片使用都差不多,也都要进行写入指令和写入数据,至于如何写入,可以上网查找一下数据手册或者相关的写入指令和写入数据程序。用单片机采集时钟芯片DS1302的数据和DS18820温度芯片的数据之后,然后在液晶屏相应的位置上写入采集来的数据,就可以显示出温度、年、月、日、时、分、秒和星期的信息了。这些数据的显示效果如图16所示,显示的信息为:2011/09/12 W矗. 6 20:05:09 27.40,其中W就是Week的简写,这里表示的是星期六。如果一直都是显示这些信息的话,相信大家都会觉得不过瘾,那么如何显示更多的信息呢?这就要用到切换显示了,先把要显示的内容编写成几个部分,然后在中断程序中判断什么候显示什么信息,如图17、图18所示。在20s后就会每隔5s切换显示第一行的内容,根据实时时间而用英文显示早上好、中午好、晚上好,会根据实时温度而显示相应的字符。
如果觉得显示的内容还不过瘾的话.下面还可以加上切换显示重要节日的信息,上网查看一下日历上的重要节日,然后编写一个专门判断显示节日的函数,就可以显示国际上的重要节日了。由于国际上的节日用的是公历,而我们中国的传统节日都是使用农历计算的,因此,为了加上一点中国风的味道,我还在程序上增加了一个判断农历信息的函数。关于农历的转换也比较复杂,这部分的程序我也是在网上查找相关资料后修改而得的,经过验证,节臼显示无误,如把时间调到未来的9月12日,显示效果就如图19所示,由于1602液晶屏只能显示英文字符,所以只能用英文显示出中秋节的信息。如果遇到当天不是重要的节日,就会自动切换显示为:Have a good day!…(^一^)…用字符组成一个笑脸,提示你微笑着过好每一天。由于DS1302需要后备电池来保持时间的准确性,一旦后备电池没电就需要重新初始化时间了。因此我在程序上写了一个同时按下加、减键初始化的函数,一旦发现没有时间显示了,就可以进行这个操作了。

???????????????? ?????
报时部分就不仅仅是栗取之前惯例的用蜂鸣器呜叫了,还加入了一个灯光效果,就是利用内置的两个高亮LED灯进行灯光提醒,这时候的灯光闪烁就不能采取CPU延时的方法了,要采取定时器中断的方式,才能防止在灯光闪烁的同时影响了时间的准确性。一旦时间到达整点或者半点,除了呜叫一声,内置的LED灯还会延迟闪烁一段时间,为了防止晚上影响睡眠,蜂鸣器的呜叫设置在7:00~24:00之间,在其他的时间段只有内置的灯光闪烁提醒。为了防止灯光效果的视觉疲劳,内置灯光的闪烁效果没有设置得过长,只闪烁几秒,用以提醒我们时间宝贵,不要浪费时间。


关键词: 程序讲解

评论

技术专区