这是一个用AT89C405l单片机做的一个实时数字时钟。由于使用AT89C405l,所以这个数字时钟成本很低、体积很小,可以做成一个小模块,使用非常方便。
一、硬件设计
下图是数字时钟的电路原理图。
AT89C4051单片机的P1口用来连接LCD的数据线(从LCD的7脚到14脚)。使用20×4的LCD字符显示屏。
二、LCD自定义字符方法
右图上可以看到数字比正常的字体尺寸大很多,为此使用了带有CGRAM(CGRAM为字型、字符产生器的RAM,全称CharacterGeneratorRAM,简称CGRAM。)的LCD,用户可以灵活自定义字符。定义一个字符,首先要得到该字符的数值然后写入CGRAM区。该CGRAM区域从O×40开始,每个字符有8个单元。左图是自定义字符的图示。所以,需要获得字符所有像素的值,把这些值写入CGRAM。在自定义8字形字符的帮助下能制作出数字0到9。注:最多只能创建8个自定义字符。
三、程序设计
这个制作的源代码是用C语言编写,并用KeilC编译。可以下载C的源代码,C的源代码通过编译后,可以直接把hex文件下载到进你的单片机。
四、制作
如果在制作时买不到原理图中单片机,也可以用AT89C51/AT89C52代替。但必须保证你所用的IO口跟LCD按键连接的端口是跟C源代码或者是电路原理图中的IO口是一样的。
原理图中已经包含了电源部分原理。
相关文章









