📄 han.c
字号:
#include <reg51.h>
#include <lcd.c>
#include <key.c>
#define uchar unsigned char
#define uint unsigned int
uchar clock_week[16];
uchar clock_time[13];
uchar deda,sec,min,hour,week=1;
uchar yea=8,mon=10,dat1=12;
/******************************************************/
void init (void)
{
TMOD=0x01;
TH0=-(50000/256);
TL0=-(50000%256);
ET0=1;
TR0=1;
EA=1;
}
/*********************************************************/
void delay1ms(unsigned char k)
{ unsigned char i,j;
for(i=0;i<k;i++)
for(j=0;j<121;j++);
}
/************************************************************/
void time0(void) interrupt 1
{
TH0=-(50000/256);
TL0=-(50000%256);
deda++;
}
/**************************************************************/
void chang1(void)
{
clock_week[0]=0x32;
clock_week[1]=0x30;
clock_week[2]=((yea/10)+0x30);
clock_week[3]=((yea%10)+0x30);
clock_week[4]=0x2d;
clock_week[5]=((mon/10)+0x30);
clock_week[6]=((mon%10)+0x30);
clock_week[7]=0x2d;
clock_week[8]=((dat1/10)+0x30);
clock_week[9]=((dat1%10)+0x30);
clock_week[10]=0x57;
clock_week[11]=0x65;
clock_week[12]=0x65;
clock_week[13]=0x6b;
clock_week[14]=0x20;
clock_week[15]=((week%10)+0x30);
}
/*************************************************************/
void chang2(void)
{
clock_time[0]=0x54;
clock_time[1]=0x69;
clock_time[2]=0x6d;
clock_time[3]=0x65;
clock_time[4]=0x20;
clock_time[5]=((hour/10)+0x30);
clock_time[6]=((hour%10)+0x30);
clock_time[7]=0x3a;
clock_time[8]=((min/10)+0x30);
clock_time[9]=((min%10)+0x30);
clock_time[10]=0x3a;
clock_time[11]=((sec/10)+0x30);
clock_time[12]=((sec%10)+0x30);
}
/*************************************************************/
void conv(void)
{
if(deda>=20){deda=0;sec++;}
if(sec>=60){sec=0;min++;}
if(min>=60){min=0;hour++;}
if(hour>=24){hour=0;week++;}
if(week>7){week++;}
}
/****************************************************************/
void main(void)
{
uchar i,j,key_flag;
init();
init_lcd();
while(1)
{
conv();
key_flag=getkeyvalue();
switch(key_flag)
{
case 0x84:if(++min>59)min=0;delay1ms(10);break;
case 0x82:if(++hour>23)hour=0;delay1ms(10);break;
case 0x81:if(++week>7)week=1;delay1ms(10);break;
default:break;
}
//wr_lcd(comm,0x01);
for(i=0;i<16;i++)
{
coordinate_1602(1,i+1);
chang1();
//printf("%bu",clock_week[i]);
wr_lcd(dat,clock_week[i]);
delay1ms(1);
}
for(j=0;j<13;j++)
{
coordinate_1602(2,j+1);
chang2();
//printf("%bu",clock_time[i]);
wr_lcd(dat,clock_time[j]);
delay1ms(1);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -