趁热打铁,用定时器写一个小时钟,使他显示在LCD上面,当然这里用到的定时器0,在之前已经写好了(上篇文章),现在直接使用,模块化编程的好处,在写代码的时候最好边写边测试。
附代码,和效果图。
#include <REGX52.H>
#include "Time0.h"
#include "LCD1602.h"
unsigned char Sec=55,Time=23,Min=59;
void main()
{
Timer0_Init() ;//初始化定时器
LCD_Init();//初始化LCD
LCD_ShowString(1,1,"CLOCK:");//开机界面
LCD_ShowChar(2,3,':');
LCD_ShowChar(2,6,':');
while(1)
{
LCD_ShowNum(2,1,Time,2);//显示小时
LCD_ShowNum(2,4,Min,2);//显示分钟
LCD_ShowNum(2,7,Sec,2);//显示秒
}
}
void Timer0_Routine() interrupt 1
{
static unsigned int T0Count;
TL0 = 0x18; //设置定时初值
TH0 = 0xFC; //设置定时初值
T0Count++;
if(T0Count>=1000)//1s
{
Sec++;
if(Sec>=60)
{
Min++;
Sec=0;
if(Min>=60)
{
Min=0;
Time++;
if(Time>=24)
{
Time=0;
}
}
}
T0Count=0;
}
}