51单片机万年历编程?

2025-02-22 22:45:52
推荐回答(3个)
回答1:

万年历用的时钟芯片一般都是DS1302,会使用DS1302就基本没什么问题了,下面是我做过电子小闹钟写的DS1302头文件,希望能给你帮助#define uchar unsigned char
#define uint unsigned intvoid ds1302writebyte(uchar date) //写一个字节
{
uchar i;
for(i=8;i>0;i--)
{
scl=0;
date>>=1;
io=CY;
scl=1;
}
}void write1302(uchar com,uchar date) //写一个数据
{
ce=0;
scl=0;
io=0;
ce=1;
ds1302writebyte(com);
ds1302writebyte(date);
scl=0;
io=0;
ce=0;
}uchar read1302(uchar com) //读一个数据
{
uchar i,date;
ce=0;
scl=0;
io=0;
ce=1;
ds1302writebyte(com);
for(i=8;i>0;i--)
{
scl=0;
date>>=1;
if(io)
{
date=date|0x80;
}
scl=1;
}
scl=0;
io=0;
ce=0;
return (date);
}uchar ds1302bcd_asciidi(uchar date) //ds1302bcd码转ascii函数
{

date=date&0x0f;
date=date|0x30;
return (date);
}
uchar ds1302bcd_asciigao(uchar date,uchar type) //ds1302bcd码转ascii函数
{
switch(type)
{
case 's': date=date&0x7f; break;
case 'm': date=date&0x7f; break;
case 'h': date=date&0x7f; break;
}
date>>=4;
date=date&0x0f;
date=date|0x30;
return date;
}

回答2:

你好可以帮你设计的

回答3:

你想问什么?