📄 yejinshizhong.c
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="2000 00 00 00";
uchar code table1[]="00:00:00 " ;
sbit rs=P3^5;
sbit lcden=P3^4;
sbit we=P2^7;
sbit rd=P3^7;
sbit s13=P3^1;
sbit s17=P3^2;
sbit s21=P3^3;
uchar num,tt,miao,fen,shi,temp,shi1,ge;
uchar ri,yue,nian,xingqi;
void delay(uint z)
{
uint x,y;
for(x=100;x>0;x--)
for(y=z;y>0;y--);
}
void write_com(uchar com)
{
lcden=0;
// rs=1;
// delay(2);
rs=0;
delay(2);
lcden=1;
delay(2);
P0=com;
delay(2);
lcden=0;
// rs=1;
}
void write_date(uchar date)
{
rs=1;
lcden=0;
delay(2);
lcden=1;
delay(2);
P0=date;
// rs=1;
delay(2);
lcden=0;
// rs=0;
}
void init()
{
we=0;
lcden=0;
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80+0x01);
for(num=0;num<13;num++)
{
write_date(table[num]);
delay(2);
}
write_com(0x80+0x40+3);
for(num=0;num<8;num++)
{
write_date(table1[num]);
delay(2);
}
}
void timer0() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
tt++;
}
void write_mfs(uchar add,uchar temp)
{
// uchar temp;
shi1=temp/10;
ge=temp%10;
write_com(0x80+0x40+add);//曾经卡住思路
write_date(0x30+shi1);
write_date(0x30+ge);
}
void write_nyr(uchar add,uchar temp)
{
shi1=temp/10;
ge=temp%10;
write_com(0x80+add); //思路在此卡住
write_date(0x30+shi1);
write_date(0x30+ge);
}
void keyscan()
{
uchar num1;
rd=0;
if(s13==0)
{
delay(1);
if(s13==0)
{
num1++;
while(!s13);
if(num1==1)
{
TR0=0;
write_com(0x80+0x40+10);
write_com(0x0f);
}
if(num1==2)
{
write_com(0x80+0x40+7);
write_com(0x0f);
}
if(num1==3)
{
write_com(0x80+0x40+4);
write_com(0x0f);
}
if(num1==4)
{
write_com(0x80+13);
write_com(0x0f);
}
if(num1==5)
{
write_com(0x80+10);
write_com(0x0f);
}
if(num1==6)
{
write_com(0x80+7);
write_com(0x0f);
}
if(num1==7)
{
write_com(0x80+4);
write_com(0x0f);
}
if(num1==8)
{
TR0=1;
num1=0;
write_com(0x0c);
}
}
}
if(num1!=0)
{
if(s17==0)
{
delay(2);
if(s17==0)
{
while(!s17);
if(num1==1)
{
miao++;
if(miao==60)
miao=0;
write_mfs(9,miao);
write_com(0x80+0x40+10);
}
if(num1==2)
{
fen++;
if(fen==60)
fen=0;
write_mfs(6,fen);
write_com(0x80+0x40+7);
}
if(num1==3)
{
shi++;
if(shi==24)
shi=0;
write_mfs(3,shi);
write_com(0x80+0x40+4);
}
if(num1==4)
{
xingqi++;
if(xingqi==8)
xingqi=1;
write_nyr(12,xingqi);
write_com(0x80+13);
}
if(num1==5)
{
ri++;
if(ri==31)
ri=1;
write_nyr(9,ri);
write_com(0x80+10);
}
if(num1==6)
{
yue++;
if(yue==13)
yue=1;
write_nyr(6,yue);
write_com(0x80+7);
}
if(num1==7)
{
nian++;
if(nian==20)
nian=0;
write_nyr(3,nian);
write_com(0x80+4);
}
}
}
}
if(num1!=0)
{
if(s21==0)
{
delay(2);
if(s21==0)
{
while(!s21);
if(num1==1)
{
miao--;
if(miao==-1)
miao=59;
write_mfs(9,miao);
write_com(0x80+0x40+10);
}
if(num1==2)
{
fen--;
if(fen==-1)
fen=59;
write_mfs(6,fen);
write_com(0x80+0x40+7);
}
if(num1==3)
{
shi--;
if(shi==-1)
shi=23;
write_mfs(3,shi);
write_com(0x80+0x40+4);
}
if(num1==4)
{
xingqi--;
if(xingqi==0)
xingqi=7;
write_nyr(12,xingqi);
write_com(0x80+13);
}
if(num1==5)
{
ri--;
if(ri==0)
ri=30;
write_nyr(9,ri);
write_com(0x80+10);
}
if(num1==6)
{
yue--;
if(yue==0)
yue=12;
write_nyr(6,yue);
write_com(0x80+7);
}
if(num1==7)
{
nian--;
if(nian==-1)
nian=19;
write_nyr(3,nian);
write_com(0x80+4);
}
}
}
}
}
void pandu()
{
if(tt==18)
{
tt=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
{
shi=0;
xingqi++;
if(xingqi==8)
{
xingqi=1;
ri++;
if(ri==31)
{
ri=1;
yue++;
if(yue==13)
{
yue=1;
nian++;
if(nian==20)
{
nian=0;
}
write_nyr(3,nian);
}
}
write_nyr(6,yue);
}
write_nyr(12,xingqi);
write_nyr(9,ri);
}
write_mfs(3,shi);
}
write_mfs(6,fen);
}
write_mfs(9,miao);
}
}
void main()
{
init();
while(1)
{
keyscan();
pandu();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -