#include <REGX51.H>
#include"LCD1602.h"
void Delay1ms(unsigned int xms) //@12.000MHz
{
while(xms)
{
unsigned char i, j; //定义毫秒的延时
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
void dierduan ()
{
int years = 2020; //万年历 //定义初始值
int months = 7;
int date = 15;
int hour = 0; //从零开始
int minute = 0;
int second = 0;
LCD_Init();
LCD_ShowString(1,1,"Date"); //LCD显示
LCD_ShowNum(1,6, years,4);
LCD_ShowNum(1,11, months,2);
LCD_ShowNum(1,14,date,2);
LCD_ShowString(2,1,"Time");
LCD_ShowNum(2,6, hour,2);
LCD_ShowNum(2,9, minute,2);
LCD_ShowNum(2,12, second,2);
LCD_ShowString(2,15,"WE");
while(1)
{
if (second<60) //秒数增加
{
second++;
Delay1ms(1000);
LCD_ShowNum(2,12, second,2);
}
if(second==60) //分钟增加
{
second = 0;
minute++;
LCD_ShowNum(2,9, minute,2);
}
if(minute==60) //小时增加
{
minute = 0;
hour++;
LCD_ShowNum(2,9, minute,2);
LCD_ShowNum(2,6, hour,2);
}
if(hour==24) //天数增加
{
hour=0;
date++;
LCD_ShowNum(2,6, hour,2);
LCD_ShowNum(1,14,date,2);
LCD_ShowString(2,15,"WE");
}
if(date==30) //月份增加
{
date=0;
months++;
LCD_ShowNum(1,11, months,2);
LCD_ShowNum(1,14,date,2);
}
if(months==12) //年份增加
{
months=0;
years++;
LCD_ShowString(1,1,"Date");
LCD_ShowNum(1,6, years,4);
LCD_ShowNum(1,11, months,2);
}
if(P3_0==0) //长按键增加秒数
{
Delay1ms(10);
while(P3_0);
Delay1ms(10);
++second;
LCD_ShowNum(2,12, second,2);
}
else if(P3_1==0) //长按键减少秒数
{
Delay1ms(10);
while(P3_1);
Delay1ms(10);
--second;
LCD_ShowNum(2,12, second,2);
}
else if(P3_2==0)
{ //长按键增加天数
Delay1ms(10);
while(P3_2);
Delay1ms(10);
++date;
LCD_ShowNum(1,14,date,2);
}
else if(P3_3==0) //长按键减少天数
{
Delay1ms(10);
while(P3_3);
Delay1ms(10);
date--;
LCD_ShowNum(1,14,date,2);
}
}
}
main ()
{
LCD_Init();
LCD_ShowString(1,1,"Hello!"); //LCD显示Hello
Delay1ms(10000); //延迟显示10秒
LCD_Init();
LCD_ShowString(1,1,"WL1908104020"); // LCD显示
Delay1ms(6000); // 延迟6秒
LCD_Init();
LCD_ShowString(1,1,"DUANZUNCHENG"); // LCD显示
Delay1ms(9000); // 延迟9秒
dierduan () ;
while (1)
{
}
}
|