//-------主函数模块-------
#include <reg52.h>
#include <intrins.h>
#define uc unsigned char
#define ui unsigned int
//声明外部变量和外部函数
extern uc LCD_x;
extern uc LCD_y;
extern uc Neg_hang;//反色显示的行
extern void init_lcd(void);
extern void clr_lcd(uc hang);
extern void clr_lie(uc rl,uc lie_shu);//清若干列
extern void disp_vol(unsigned char vol);
extern void disp_str( char *p);
//定义时钟相关变量
uc time250us;
uc time50ms;
uc time1s;
uc min;
uc hour;
void time0(void) interrupt 1 using 1//To中断函数,使时钟自动计时
{ if(++time250us>199)
{time250us=0;
if(++time50ms>19)
{time50ms=0;
if(++time1s>59)
{time1s=0;
if(++min>59)
{min=0;hour++;}
}
}
}
}
//------CPU初始函数------
void init (void)
{
TMOD=0x2;
TH0=256-250;
TL0=256-250;
IE=0x82;
TR0=1;
time250us=0;
time50ms=0;
time1s=0;
min=0;
hour=0;
}
//------主函数------
void main(void)
{
init();
Neg_hang=6;//第四行反色显示的行
init_lcd();
LCD_x=0;
LCD_y=0;
clr_lcd(1);//清屏
clr_lcd(2);
clr_lcd(3);
clr_lcd(4);
P1=0xff;
LCD_x=0;
LCD_y=0;//从第一行第一列开始显示下面的字符串
disp_str("happy birthday!");
LCD_x=0;
LCD_y=2;//从第2行第一列开始显示下面的字符串
disp_str("love you forver");
LCD_x=127-(16*5);
LCD_y=4;//从第3行第37列开始显示下面的字符串
disp_str("jayant");
while(1)
{
if(!time50ms)
{
LCD_x=30;
LCD_y=6;
disp_vol(hour/10);
disp_vol(hour%10);
disp_str(":");
disp_vol(min/10);
disp_vol(min%10);
disp_str(":");
disp_vol(time1s/10);
disp_vol(time1s%10);
}
}
}