#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)
{
}
}
|