一、硬件组成及工作原理
(1)CPU控制板:原理见图1。以ATmega16为核心。扩展一片4-16译码器CD4514,驱动ULN2003完成LED的行扫描。实时时钟 由DS1302及3.6V充电电池组成。掉电时时钟仍能工作。J3是ISP程序下载接口,J4是程序调试接口,J8是外接调整按钮,不用遥控器也能手动调 整参数。J5是一体化红外线接收头。ATmega16具有硬件的ISP接口,可直接驱动串行移位芯片74HC595。
(2)LED显示板:原理见图2,由16块8x8LED点阵拼合而成,可同时显示4个汉字。8片74HC595完成显示屏的列驱动。两块电路板之间用 40芯的排线连接。在CPU的内部RAM开辟一块显示缓存区.CPU控制板读取flash内部的汉字点阵编码,写入到显示缓存区。然后读取显存中第一行数 据,通过ISP接口驱动74HC595,将串行数据转为并行,然后将接通对应的行,显示1ms后,取下一行的数据,同样显示1ms,直到第16行,完成一 次扫描。再把显存中的数据整体左移一位,再扫描一遍。如此把全部的汉字依次移人显存并显示,便实现了汉字从右向左移,全部汉字移完后对时间、温度和安全天 数的寄存器刷新一次。
二、程序的基本结构
首先.根据功能上的独立性划分任务.分为:时间读写、温度采集、LED扫描显示、日期天数调整和被调参数闪烁等五个任务。其次确定任务的优先级,时间 读写、温度采集8级,日期天数调整和被调参数闪烁5级,LED扫描显示3级.任务的优先级还可以在程序运行中动态的改变。主程序如下:
程序基本结构图
编写采用了RTOS定时操作系统,该程序与一般的前后台程序的主要不同是每个任务(即子程序)都工作在一个无限循环中,用户只要做好任务的一些初始化工作。至于什么时候运行什么任务这个烦琐事情交给系统去做就可以了,使CPU的利用率最高。
三、使用方法
遥控器用的是成品电视机遥控器,按电源键,显示“调年××××”同时被调 整的位闪烁,按音量“+”相应的位向上加,加到9后,回到0。按频道“+”,则改变被调整的位。
同时对应的位闪烁。
再次按电源键,依次显示“调月××”.“调 日××”,“星期××”,“调 时××”,“调分××”.“调 天××××”,结束。
系统的硬件结构原理图
系统的硬件结构原理图