1.数字钟整体设计方案
整体的流程图见下左图。显示屏初始化和清屏子程序的流程图见下右图。
(1)计时单元流程图见下图。
计时采用了软件计时的方法,即通过定时器产生50毫秒的时基信号,然后再利用软件进行计时,从而产生1秒钟的时间信号。当所定时间到达时,定时器向CPU申请一次中断,CPU响应中断并转入执行中断服务子程序。在定时器中断服务程序中实现时、分、秒的累加,即每产生一次中断,50毫秒时基单元的内容加1,当50毫秒时基单元的内容等于20时,便产生1秒信号,使秒计数单元的内容加I,并将50毫秒时基单元的内容清O;当秒计数单元计满60后,向分计数单元进位,使分计数单元的内容加1,并将秒计数单元的内容清0;当分计数单元计满60后。向时计数单元进位,使时计数单元的内容加1,并将分计数单元的内容清0;时计数单元计满24后清0。
数字钟计时单元的程序片段如下:
(2)显示单元
主要是对5110LCD液晶屏进行复位和初始化,然后根据显示数据缓冲区的具体内容调用不同的数据表,比如:当显示数据为九时,便通过查表得到汉字“九”的点阵数据。当显示数据为1时,便通过查表得到汉字“1”的点阵数据。再确定显示内容的X、Y坐标,最后发送点阵数据即显示完成。在这一环节中,最繁琐的工作就是不断的确定显示内容的X、Y坐标和频繁的发送点阵数据。
流程图见下图。
2.硬件设计
本文所采用的单片机是市场上比较流行的ATMEL公司生产的AT89S52-24JU单片机,晶振采用11.0592MHz。本设计的原理图见下图。其中U1是5110 LCD液晶屏的接口,U2是AT89S52单片机。通信口线可以随意设计,可以通过改变程序中的接口定义来实现。
采用Protel 99SE生成的5110LCD液晶屏驱动电路PCB见下图。
本文关键字:单片机 时钟-定时电路,单元电路 - 时钟-定时电路