找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1561|回复: 9
收起左侧

大佬们ds1302模块怎样表示12进制?

[复制链接]
ID:1112477 发表于 2024-5-27 19:39 | 显示全部楼层 |阅读模式
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

回复

使用道具 举报

ID:344848 发表于 2024-5-28 01:05 | 显示全部楼层
DS1302是一个实时时钟芯片,可以提供秒、分、小时、日期、月、年等信息,并且还有软年自动调整的能力,可以通过配置AM/PM来决定采用24小时格式还是12小时格式。
回复

使用道具 举报

ID:123289 发表于 2024-5-28 08:15 | 显示全部楼层
眉毛胡子一把抓了。
回复

使用道具 举报

ID:1004920 发表于 2024-5-28 08:25 | 显示全部楼层
DS1302的读出来时分秒等字节,不能直接当数据拿来使用,它的个位和十位是单独输出的,字节的高四位是十位,低四位是个位,所以读出来的数据还得处理。
回复

使用道具 举报

ID:1112477 发表于 2024-5-28 09:50 | 显示全部楼层
zch5200 发表于 2024-5-28 08:25
DS1302的读出来时分秒等字节,不能直接当数据拿来使用,它的个位和十位是单独输出的,字节的高四位是十位, ...

怎么处理呀大佬
回复

使用道具 举报

ID:1112477 发表于 2024-5-28 09:52 | 显示全部楼层
我数码管把0x88高八位/16 第八位%16了还是显示88
回复

使用道具 举报

ID:1112477 发表于 2024-5-28 09:52 | 显示全部楼层
yzwzfyz 发表于 2024-5-28 08:15
眉毛胡子一把抓了。

这是什么意思
回复

使用道具 举报

ID:1004920 发表于 2024-5-28 16:27 | 显示全部楼层

比如 读到的 分钟num    给变量 fen
fen =( (num>>4)&0x0f)*10 + (num&0x0f);
时分秒年月日每个都要这样算下才能是真正的十进制的数,给数码管显示就正常了
回复

使用道具 举报

ID:1112477 发表于 2024-5-28 18:48 | 显示全部楼层
zch5200 发表于 2024-5-28 16:27
比如 读到的 分钟num    给变量 fen
fen =( (num>>4)&0x0f)*10 + (num&0x0f);
时分秒年月日每个都要这 ...

哦哦谢谢我试试
回复

使用道具 举报

ID:1034262 发表于 2024-5-29 17:10 | 显示全部楼层
可以软件处理啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表