⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds1302.c

📁 点阵显示,可用于许多场所,方便且视觉性很好,请大家来看看!
💻 C
字号:
#include<reg51.h>
#define uchar unsigned char

uchar dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar disbuf[]={0,0,0};
sbit t_clk=P1^1;
sbit t_io=P1^0;
sbit t_rst=P1^2;
sbit ACC7=ACC^7;
uchar second=0;minute=0;hour=0;

void input1byte(uchar udata)   //写入一个字节;
{uchar i;
ACC=udata;
for(i=8;i>0;i--)
{t_io=ACC^0;
t_clk=1;
t_clk=0;
ACC>>=1;
}
}


uchar output1byte()
{uchar i;
for(i=8;i>0;i--)
{ACC>>=1;
ACC7=t_io;
t_clk=1;
t_clk=0;
}
return ACC;
}



uchar read_1302(uchar addr)
{uchar udata;
t_rst=0;
t_clk=0;
t_rst=1;
input1byte(addr);
udata=output1byte();
t_clk=1;
t_rst=0;
return udata;
}


void v_1302()
{uchar i;
uchar addr=0x81;
for(i=0;i<3;i++)
{disbuf[i]=read_1302(addr);
addr+=2;
}
second=disbuf[0];
minute=disbuf[1];
hour=disbuf[2];
}


void delay(uchar i)
 {uchar j;
 for(;i>0;i--)
 for(j=248;j>0;j--);
 }
 

void main(void)
{uchar m=5;
while(1)
{v_1302();
 P0=dispcode[second%10];
 P2=0x1f;
 delay(m);
 P0=dispcode[second/10];
 P2=0x2f;
 delay(m);

 P0=dispcode[minute%10];
 P2=0x37;
 delay(m);
 P0=dispcode[minute/10];
 P2=0x3b;
 delay(m);

 P0=dispcode[hour%10];
 P2=0x3d;
 delay(m);
 P0=dispcode[hour/10];
 P2=0x3e;
 delay(m);
 }
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -