52单片机万年历程序有哪位能提供!
- 提问者网友:椧運幽默
- 2021-07-28 23:36
- 五星知识达人网友:長槍戰八方
- 2021-07-29 00:05
我的是ds1302
程序
#include < reg52.h>
#include
#define uchar unsigned char
sbit T_CLK = P3^4;
sbit T_IO = P3^3;
sbit T_RST = P3^2;
//sbit OE=P3^6;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
uchar time[8]=" : : ";
uchar min,hou,day,mon,yea;
void Init1302(void);
void v_W1302(uchar ucAddr, uchar ucDa);
uchar uc_R1302(uchar ucAddr);
void v_BurstW1302T(uchar *pSecDa);
void v_BurstR1302T(uchar *pSecDa);
void v_BurstW1302R(uchar *pReDa);
void v_BurstR1302R(uchar *pReDa);
void v_Set1302(uchar *pSecDa);
void v_Get1302(uchar ucCurtime[]);
void donetime(void);
void bcd_int(uchar i);
void bcdtoInt(void);
void SetTime(void);
void v_WTInputByte(uchar ucDa)
{
uchar i;
//OE=0;
ACC= ucDa;
for(i=8; i>0; i--)
{
T_IO = ACC0; /
uchar uc_RTOutputByte(void)
{
uchar i;
//OE=0;
for(i=8; i>0; i--)
{
ACC = ACC>>1; /
void v_W1302(uchar ucAddr, uchar ucDa)
{
//OE=0;
T_RST = 0;
T_CLK = 0;
T_RST = 1;
v_WTInputByte(ucAddr);
v_WTInputByte(ucDa);
T_CLK = 1;
T_RST =0;
//OE=1;
}
uchar uc_R1302(uchar ucAddr)
{
uchar ucDa;
//OE=0;
T_RST = 0;
T_CLK = 0;
T_RST = 1;
v_WTInputByte(ucAddr);
ucDa = uc_RTOutputByte();
T_CLK = 1;
T_RST =0;
// OE=1;
return(ucDa);
}
void Init1302(void)
{
v_W1302(0x8e,0x00); //控制写入WP=0
v_W1302(0x90,0xa5);
v_W1302(0x80,0x00); //秒
v_W1302(0x82,0x59); //分
v_W1302(0x84,0x10); //时
v_W1302(0x86,0x01); //日
v_W1302(0x88,0x08); //月
v_W1302(0x8a,0x03); //星期
v_W1302(0x8c,0x07); //年 */
v_W1302(0x8e,0x80);
}
void donetime(void)
{
uchar d;
d=uc_R1302(0x81);
time[6]=d/16+48;
time[7]=d%16+48;
d=uc_R1302(0x83);
time[3]=d/16+48;
time[4]=d%16+48;
d=uc_R1302(0x85);
time[0]=d/16+48;
time[1]=d%16+48;
//bcd_int(d);
}
//
//
//
void SetTime(void)
{
v_W1302(0x8e,0x00);
v_W1302(0x80,0x80);
v_W1302(0x82,min);
v_W1302(0x84,hou);
v_W1302(0x86,day);
v_W1302(0x88,mon);
v_W1302(0x8c,yea);
v_W1302(0x80,0x00);
v_W1302(0x8e,0x80);
}