📄 text1.c
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P1^6;
sbit rw=P1^5;
sbit ep=P1^4;
uchar code rr[]={"D:"};
uchar code ff[]={"W:"};
uchar code ss[]={"Time:"};
uchar code table[]={"0123456789-"};
uchar cnt=0,id=0;
uint nn=2008;
uchar hour=23,min=59,sec=45,xx=1,yy=1,tt=1;
uchar qq[]={"000000000000000000"};
uchar flang;
void delay(uint n)
{
uchar i,j;
for(i=0;i<n;i++)
for(j=0;j<121;j++)
;
}
void xmjc(void) //闲忙检测
{
rs=0;
rw=1;
ep=1;
while(P2&0x80)
;
ep=0;
}
void xml(unsigned char comm) //写命令
{
xmjc();
rs=0;
rw=0;
ep=1;
P2=comm;
ep=0;
}
void xsj(unsigned char dat)
{
xmjc();
rs=1;
rw=0;
ep=1;
P2=dat;
ep=0;
}
void lcd_init(void) //1602初始化
{
xml(0x38);
xml(0x06);//光标和显示模式设置
xml(0x0c);
xml(0x01);
}
void sjzh(void)
{uchar ee=10;
qq[0]=hour/10;
qq[1]=hour%10;
qq[2]=ee;
qq[3]=min/10;
qq[4]=min%10;
qq[5]=ee;
qq[6]=sec/10;
qq[7]=sec%10;
qq[8]=nn/1000;
qq[9]=nn/100%10;
qq[10]=nn%100/10;
qq[11]=nn%10;
qq[12]=ee;
qq[13]=yy/10;
qq[14]=yy%10;
qq[15]=ee;
qq[16]=tt/10;
qq[17]=tt%10;
}
void aa(uchar str,uchar lengch)
{
uchar i;
for(i=0;i<lengch;i++)
{
xsj(str);
}
}
uchar ajqd(void)
{
while(1)
{
P3=0xff;
flang=P3;
if(P3!=0xff)
{
delay(10);
if(P3!=0xff)
{while(P3!=0xff);}
}
return flang;break;
}
}
void disp(void)
{
uchar i,j,k,m,n;
xml(0xc0);
for(i=0;i<5;i++)
{
aa(ss[i],1);
}
sjzh();
for(j=0;j<8;j++)
{
xml(0xc5+j);
aa(table[qq[j]],1);
}
xml(0x80);
for(k=0;k<2;k++)
{
aa(rr[k],1);
}
for(m=0;m<10;m++)
{
xml(0x82+m);
aa(table[qq[8+m]],1);
}
xml(0x8d);
for(n=0;n<2;n++)
{
aa(ff[n],1);
}
xml(0x8f);
aa(table[xx],1);
}
void main(void)
{
lcd_init();
EA=1;
ET0=1;
TMOD=0X01;
TH0=-50000/256;
TL0=-50000%256;
TR0=1;
while(1)
{
disp();
//flang=0xff;
ajqd();
if(flang==0xfb){id++;if(id>6)id=0;}
switch(id)
{
case 1: xml(0x0e);xml(0x85); delay(10);
if(flang==0xf7){nn++;if(nn>9999)nn=0;}
break;
case 2: xml(0x0e);xml(0x88); delay(10);
if(flang==0xf7){yy++;if(yy>12)yy=1;}
break;
case 3: xml(0x0e);xml(0x8b); delay(10);
if(flang==0xf7){tt++;if(tt>31)tt=1;}
break;
case 4: xml(0x0e);xml(0x8f); delay(10);
if(flang==0xf7){xx++;if(xx>7)xx=1;}
break;
case 5: xml(0x0e);xml(0xc6); delay(10);
if(flang==0xf7){hour++;if(hour>23)hour=0;}
break;
case 6: xml(0x0e);xml(0xc9); delay(10);
if(flang==0xf7){min++;if(min>59)min=1;}
break;
default:xml(0x0c);
}
}
}
void zd(void) interrupt 1 using 0
{
TH0=-50000/256;
TL0=-50000%256;
cnt++;
if(cnt>20)
{
cnt=0;
sec++;
if(sec>59)
{
sec=0;
min++;
if(min>59)
{
min=0;
hour++;
if(hour>23)
{
hour=0;
xx++;
if(xx>7)
xx=1;
tt++;
{
if(yy==1||yy==3||yy==5||yy==7||yy==8||yy==10||yy==12)
{
if(tt>31)
{
tt=1;
yy++;
}
}
else if(yy==4||yy==6||yy==9||yy==11)
{
if(tt>30)
{
tt=1;
yy++;
}
}
else if(yy==2)
{
if((nn%400==0)||((nn%100!=0)&&(nn%4==0)))
{
if(tt>29)
{
tt=1;
yy++;
}
}
else if(tt>28)
{
tt=1;
yy++;
}
}
}
if(yy>12)
{
yy=1;
nn++;
if(nn>9999)
nn=0;
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -