📄 clock-1620.c
字号:
#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit rs=P3^0;
sbit rw=P3^1;
sbit e=P3^2;
sbit ds=P1;
sbit button=P2^0;
sbit bf=P1^7;
uint ms=0;
uint second=0;
uint min=0;
uint hr=0;
uchar code tab[]={"***FM1602A--3***"};
uchar code tab1[]={0x0f,0x09,0x0f,0x09,0x0f,0x09,0x0b,0x11,
0x1F,0x11,0x11,0x11,0x1F,0x11,0x11,0x1F}; // 月日
uchar code number[]={"0123456789"};
uchar code inti0[]={"11 25 00:00:00"};
void nop(){}
void delay(uint q) //延时
{uchar n;
while(q--)
{for(n=0;n<24;n++){;;}}
}
void check() // 判忙
{rs=0;
rw=1;
e=0;
P1=0xff;
e=1;
nop();
nop();
while(P&0x80){};
delay(10);
}
void sendc(uchar com) // 发命令字
{check();
rs=0;
rw=0;
e=1;
P1=com;
nop();
e=0;
nop();
}
void sendd(uchar word) // 发显示字
{check();
rs=1;
rw=0;
e=1;
P1=word;
nop();
e=0;
nop();
}
void inti() // 初始化
{uchar d;
sendc(0x01);
sendc(0x38);
sendc(0x0c);
sendc(0x06);
delay(10);
sendc(0x80);
for(d=0;d<16;d++)
{sendd(*(inti0+d));};
sendc(0x82);
sendd(0x00);
sendc(0x85);
sendd(0x01);
sendc(0xc0);
for(d=0;d<16;d++)
{sendd(*(tab+d));};
}
void cpuinti()
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
TR0=1;
EA=1;
ET0=1;
}
void keyboard()
{}
void displayhr() //////显示小时
{uchar ho,ht;
if(hr>9)
{
ht=hr/10;
ho=hr%10;}
else{ht=0;ho=hr;};
sendc(0x88);
sendd(*(number+ht));
sendc(0x89);
sendd(*(number+ho));
while(hr==24)
{hr=0;
//day++;
//displayhr();
};
}
void displaymin() ///////////显示 分
{uchar mo,mt;
if(min>9)
{
mt=min/10;
mo=min%10;}
else{mt=0;mo=min;};
sendc(0x8b);
sendd(*(number+mt));
sendc(0x8c);
sendd(*(number+mo));
while(min==60)
{min=0;
hr++;
displayhr();};
}
void displaysec() /////////////显示 秒
{uchar o,t;
if(second>9)
{
t=second/10;
o=second%10;}
else{t=0;o=second;};
sendc(0x8e);
sendd(*(number+t));
sendc(0x8f);
sendd(*(number+o));
while(second==60)
{second=0;
min++;
displaymin();};
}
void timer() interrupt 1 ///////////中断入口
{
ms++;
displaysec();
while(ms==14){TH0=0x3c;TL0=0xb0;
ms=0;
second++;}
}
void setcgram()
{uchar x;
sendc(0x40);
for(x=0;x<16;x++)
{sendd(*(tab1+x));}
}
void main()
{setcgram();
inti();
cpuinti();
while(1){};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -