标题: 大佬们ds1302模块怎样表示12进制? [打印本页]

作者: Peterter    时间: 2024-5-27 19:39
标题: 大佬们ds1302模块怎样表示12进制?
void ds_init(uchar *uRc)
{uchar i;
Write Ds1302 Byte(0x8e,0x00);
for(i=0;i<3;i++)
{
Write Ds1302 Byte(w[ i],uRc[ i]);
Write Ds1302 Byte(0x8e,0x80);
}
Write Ds1302 Byte(0x8e,0x80);
}
void ds_read(uchar *uRc)
{uchar i;
for(i=0;i<3;i++)
{
uRc[ i]=Read Ds1302 Byte(rli]);
}
uchar time[]={0x88,0x50,0x50}
我把下面这个time带进去 时钟显示88


作者: donglw    时间: 2024-5-28 01:05
DS1302是一个实时时钟芯片,可以提供秒、分、小时、日期、月、年等信息,并且还有软年自动调整的能力,可以通过配置AM/PM来决定采用24小时格式还是12小时格式。
作者: yzwzfyz    时间: 2024-5-28 08:15
眉毛胡子一把抓了。
作者: zch5200    时间: 2024-5-28 08:25
DS1302的读出来时分秒等字节,不能直接当数据拿来使用,它的个位和十位是单独输出的,字节的高四位是十位,低四位是个位,所以读出来的数据还得处理。
作者: Peterter    时间: 2024-5-28 09:50
zch5200 发表于 2024-5-28 08:25
DS1302的读出来时分秒等字节,不能直接当数据拿来使用,它的个位和十位是单独输出的,字节的高四位是十位, ...

怎么处理呀大佬

作者: Peterter    时间: 2024-5-28 09:52
我数码管把0x88高八位/16 第八位%16了还是显示88
作者: Peterter    时间: 2024-5-28 09:52
yzwzfyz 发表于 2024-5-28 08:15
眉毛胡子一把抓了。

这是什么意思

作者: zch5200    时间: 2024-5-28 16:27
Peterter 发表于 2024-5-28 09:50
怎么处理呀大佬

比如 读到的 分钟num    给变量 fen
fen =( (num>>4)&0x0f)*10 + (num&0x0f);
时分秒年月日每个都要这样算下才能是真正的十进制的数,给数码管显示就正常了
作者: Peterter    时间: 2024-5-28 18:48
zch5200 发表于 2024-5-28 16:27
比如 读到的 分钟num    给变量 fen
fen =( (num>>4)&0x0f)*10 + (num&0x0f);
时分秒年月日每个都要这 ...

哦哦谢谢我试试

作者: coody_sz    时间: 2024-5-29 17:10
可以软件处理啊




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1