📄 +
字号:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={"0000-00-00"};
uchar code table1[]={"00:00:00"};
uchar code table2[]={"MONTUSWEDTHUFRISATSUN"};
sbit rs=P2^0;
sbit rw=P2^1;
sbit e=P2^2;
sbit key1=P2^3;
sbit key2=P2^4;
sbit key3=P2^5;
char shi,ge,num1;
char num,shi1=0,fen=0,miao=0,ri=0,yue=0; uchar xingqi=1;
int nianqian=0,nianhou=0;
void delay(unsigned int z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
rs=0;
rw=0;
P0=com;
delay(5);
e=1;
delay(5);
e=0;
}
void write_data(uchar date)
{
rs=1;
rw=0;
P0=date;
delay(5);
e=1;
delay(5);
e=0;
}
void init()
{
rs=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
delay(5);
}
void write_wang(uchar add,uchar date)
{
shi=date/10;
ge=date%10;
write_com(0x80+0X40+add);
write_data(0x30+shi);
write_data(0x30+ge);
}
void write_wang1(uchar add,uchar date)
{
shi=date/10;
ge=date%10;
write_com(0x80+add);
write_data(0x30+shi);
write_data(0x30+ge);
}
void write_wang2(uchar add,int date)
{
shi=date/10;
ge=date%10;
write_com(0x80+add);
write_data(0x30+shi);
write_data(0x30+ge);
}
void keycan()
{
uchar i;
if(key1==0)
{
delay(5);
if(key1==0)
{
num1++;
while(!key1);
if(num1==1)
{
TR0=0;
write_com(0x80+0x40+7);
write_com(0x0f);
}
}
if(num1==2)
{
write_com(0x80+0x40+4);
}
if(num1==3)
{
write_com(0x80+0x40+1);
}
if(num1==4)
{
write_com(0x80+9);
}
if(num1==5)
write_com(0x80+6);
if(num1==6)
write_com(0x80+3);
if(num1==7)
write_com(0x80+1);
if(num1==8)
write_com(0x80+13);
if(num1>=9)
{
num1=0;
TR0=1;
write_com(0x0c);
}
}
if(num1!=0)
{
if(key2==0)
{
delay(5);
if(key2==0)
{
while(key2!=1);
if(num1==1)
{
miao++;
if(miao==60)
{
miao=0;
}
write_wang(6,miao);
write_com(0x80+0x40+6);
}
if(num1==2)
{
fen++;
if(fen==60)
{
fen=0;
}
write_wang(3,fen);
write_com(0x80+0x40+3);
}
if(num1==3)
{
shi1++;
if(shi1==24)
{
shi1=0;
}
write_wang(0,shi1);
write_com(0x80+0x40);
}
if(num1==4)
{
ri++;
if(ri==32)
{
ri=0;
}
write_wang1(8,ri);
write_com(0x80+8);
}
if(num1==5)
{
yue++;
if(yue==13)
{
yue=0;
}
write_wang1(5,yue);
write_com(0x80+5);
}
if(num1==6)
{
nianhou++;
if(nianhou==99)
{
nianhou=0;
nianqian++;
}
write_wang2(2,nianhou);
write_com(0x80+2);
}
if(num1==7)
{
nianqian++;
if(nianqian==99)
{
nianqian=0;
}
write_wang2(0,nianqian);
write_com(0x80);
}
if(num1==8)
{
xingqi++;
if(xingqi==8)
xingqi=1;
switch(xingqi)
{
case 1:
write_com(0x80+13);
for(i=0;i<3;i++)
{
write_data(table2[i]);
}
break;
case 2:
write_com(0x80+13);
for(i=3;i<6;i++)
{
write_data(table2[i]);
}
break;
case 3:
write_com(0x80+13);
for(i=6;i<9;i++)
{
write_data(table2[i]);
}
break;
case 4:
write_com(0x80+13);
for(i=9;i<12;i++)
{
write_data(table2[i]);
}
break;
case 5:
write_com(0x80+13);
for(i=12;i<15;i++)
{
write_data(table2[i]);
}
break;
case 6:
write_com(0x80+13);
for(i=15;i<18;i++)
{
write_data(table2[i]);
}
break;
case 7:
write_com(0x80+13);
for(i=18;i<21;i++)
{
write_data(table2[i]);
}
break;
}
}
}
}
if(num1!=0)
{
if(key3==0)
{
delay(5);
if(key3==0)
{
while(key3!=1);
if(num1==1)
{
miao--;
if(miao==-1)
{
miao=59;
}
write_wang(6,miao);
write_com(0x80+0x40+6);
}
if(num1==2)
{
fen--;
if(fen==-1)
{
fen=59;
}
write_wang(3,fen);
write_com(0x80+0x40+3);
}
if(num1==3)
{
shi1--;
if(shi1==-1)
{
shi1=23;
}
write_wang(0,shi1);
write_com(0x80+0x40);
}
if(num1==4)
{
ri--;
if(ri==-1)
{
ri=31;
}
write_wang1(8,ri);
write_com(0x80+8);
}
if(num1==5)
{
yue--;
if(yue==-1)
{
yue=12;
}
write_wang1(5,yue);
write_com(0x80+5);
}
if(num1==6)
{
nianhou--;
if(nianhou==-1)
{
nianhou=99;
}
write_wang2(2,nianhou);
write_com(0x80+2);
}
if(num1==7)
{
nianqian--;
if(nianqian==-1)
{
nianqian=99;
}
write_wang2(0,nianqian);
write_com(0x80);
}
}
}
}
}
}
void duxianshi()
{
// uchar nianqian,nianbai,nianshi,niange,yueshi,yuege,rishi,rige,shi1shi,shi1ge,fenshi,fenge,miaoshi,miaoge;
write_com(0x80);
for(num=0;num<10;num++)
{
write_data(table[num]);
/*
switch(num)
{
case 0:
nianqian=table[0];break;
case 1:
nianbai=table[1];break;
case 2:
nianshi=table[2];break;
case 3:
niange=table[3];break;
case 5:
yueshi=table[5];break;
case 6:
yuege=table[6];break;
case 8:
rishi=table[8];break;
case 9:
rige=table[9];break;
}
*/
delay(5);
}
write_com(0x80+13);
for(num=0;num<3;num++)
{
write_data(table2[num]);
delay(5);
}
write_com(0x80+0x40);
for(num=0;num<8;num++)
{
write_data(table1[num]);
/* switch(num)
{
case 0:
shi1shi=table1[0];break;
case 1:
shi1ge=table1[1];break;
case 3:
fenshi=table1[3];break;
case 4:
fenge=table1[4];break;
case 6:
miaoshi=table1[6];break;
case 7:
miaoge=table1[7];break;
}
*/
delay(5);
}
/*
nian=(nianqian+0x30)*1000+(nianbai+0x30)*100+(nianshi+0x30)*10+niange+0x30;
yue=yueshi*(10+48)+yuege;
ri=rishi*(10+48)+rige;
shi1=shi1shi*(10)+shi1ge;
fen=fenshi*(10+48)+fenge;
miao=miaoshi*(10)+miaoge;
*/
}
void shijian()
{
uchar i;
if(num==18)
{
num=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi1++;
if(shi1==24)
{
shi1=0;
ri++;
xingqi++;
if(xingqi==8)
xingqi=1;
switch(xingqi)
{
case 1:
write_com(0x80+13);
for(i=0;i<3;i++)
{
write_data(table2[i]);
}
break;
case 2:
write_com(0x80+13);
for(i=3;i<6;i++)
{
write_data(table2[i]);
}
break;
case 3:
write_com(0x80+13);
for(i=6;i<9;i++)
{
write_data(table2[i]);
}
break;
case 4:
write_com(0x80+13);
for(i=9;i<12;i++)
{
write_data(table2[i]);
}
break;
case 5:
write_com(0x80+13);
for(i=12;i<15;i++)
{
write_data(table2[i]);
}
break;
case 6:
write_com(0x80+13);
for(i=15;i<18;i++)
{
write_data(table2[i]);
}
break;
case 7:
write_com(0x80+13);
for(i=18;i<21;i++)
{
write_data(table2[i]);
}
break;
}
if(ri==32)
{
ri=0;
yue++;
if(yue==13)
{
yue=0;
nianhou++;
if(nianhou==100)
{
nianhou=0;
nianqian++;
if(nianqian==100)
{
nianqian=0;
nianhou=0;
yue=0;
ri=0;
shi1=0;
fen=0;
miao=0;
write_com(0x80+13);
for(i=0;i<3;i++)
{
write_data(table2[i]);
}
}
write_wang2(0,nianqian);
}
write_wang2(2,nianhou);
}
write_wang1(5,yue);
}
write_wang1(8,ri);
}
write_wang(0,shi1);
}
write_wang(3,fen);
}
write_wang(6,miao);
}
}
void main()
{
EA=1;
ET0=1;
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
init();
duxianshi();
num=0;
TR0=1;
while(1)
{
shijian();
keycan();
}
}
void T0_time()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -