📄 text1.c
字号:
#include <at89x51.h>
#include <DS1302.h>
#define din P2_0
#define load P2_1
#define clk P2_2
#define uchar unsigned char
#define uint unsigned int
unsigned char code dispcode[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x01};
uchar buf[]={0,0,0,0,0,0,0,0};
SYSTEMTIME time1;
void csh()
{
load=1;
clk=1;
din=1;
}
Delayms(uint c)
{
uint a,b;
for(a=0;a<c;a++)
for(b=0;b<120;b++);
}
void write(uchar com,uchar da)
{
uchar temp,i,j;
load=0;
clk=0;
for(i=0;i<8;i++)
{ temp=com;
if((temp&(0x80>>i))!=0)
din=1;
else din=0;
clk=1;
for(j=0;j<5;j++);
clk=0;
}
for(i=0;i<8;i++)
{ temp=da;
if((temp&(0x80>>i))!=0)
din=1;
else din=0;
clk=1;
for(j=0;j<5;j++);
clk=0;
}
load=1;
}
void main()
{
csh();
write(0x0c,0x01);//正常工作状态,关断模式
write(0x09,0x00);//译码选择,非BCD码
write(0x0a,0x0f);//亮度调节
write(0x0b,0x07);//显示位数
Initial_DS1302();
while(1)
{
DS1302_GetTime(&time1);
buf[7]=(time1.Second)%10;
buf[6]=(time1.Second)/10;
buf[4]=(time1.Minute)%10;
buf[3]=(time1.Minute)/10;
buf[1]=(time1.Hour)%10;
buf[0]=(time1.Hour)/10;
write(0x08,dispcode[buf[7]]);
write(0x07,dispcode[buf[6]]);
write(0x06,dispcode[10]);
write(0x05,dispcode[buf[4]]);
write(0x04,dispcode[buf[3]]);
write(0x03,dispcode[10]);
write(0x02,dispcode[buf[1]]);
write(0x01,dispcode[buf[0]]);
// Delayms(200);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -