单片机/MCUwilliam hill官网
登录
直播中
母猪会上树
9年用户
812经验值
擅长:电源/新能源
私信
关注
[问答]
DS1302写数据写BCD码还是十进制吗?
开启该帖子的消息推送
DS1302
BCD
DS1302写入数据和读数据 求解
问题一:DS1302写数据写BCD码还是十进制?下面是一段初始化DS1302的程序,这么写对吗?
问题二:DS1302读数据的时候,读出来的是BCD码,以下有段程序这么转化后的结果是不是十进制数值呢?
我疑惑了很久,请假大虾。小弟不胜感激!
以下是一段初始化DS1302数据的,请问这么写对吗?
void init1302()
{ //写入2013-02-27星期三 23:58:51
write1302(0x8e0x00);
write1302(0x800x51); //写入51秒
write1302(0x820x58); //写入58分
write1302(0x840x23); //写入23时
write1302(0x860x27); //写入27日
write1302(0x880x02); //写入2月
write1302(0x8c0x13); //写入13年,2013
write1302(0x8a0x03); //写入星期三
write1302(0x8e0x80);
}
以下是一段读取DS1302数据的程序,返回的m值是不是就是十进制数值呢?
uchar read1302(uchar cmd)
{uchar mkjdat;
ds1302_rst=0;
_nop_();
_nop_();
ds1302_rst=1;
_nop_();
_nop_();
write1302byte(cmd);
dat=read1302byte();
ds1302_sclk=1;
ds1302_rst=0;
j=dat>>4; //右移4位,将高4位取出得到十位数
k=dat 0x0f; //舍去高位保留低4位得到个位数
m=j*10+k;
// m=dat/16*10+dat%16; //这个是网上看到的,对吗?
return m;
}
回帖
(1)
温洁
2023-10-26 09:54:43
上面的全部正确,
一开始 ds1302 写入的是 bcd 码接下来读出来的也是 bcd 码,然后通过右移转换成10进制数网上看到的那个方法也对,自己用个数据带入算一下,右移4位 = 除以16
上面的全部正确,
一开始 ds1302 写入的是 bcd 码接下来读出来的也是 bcd 码,然后通过右移转换成10进制数网上看到的那个方法也对,自己用个数据带入算一下,右移4位 = 除以16
举报
更多回帖
rotate(-90deg);
回复
相关问答
DS1302
BCD
关于
DS1302
的
BCD
码
转换
2012-11-28
10729
DS1302
写入
数据
和读
数据
求解
2013-02-19
12191
DS1302
真是麻烦啊,里面的
bcd
转换我看的头都大了
2015-11-07
9416
ds1302
时间不准请问如何利用程序怎么修正,每分快6秒!
2012-12-03
21470
DS1302
根据时序
写
的程序读出来的时间不对是为什么?
2023-11-08
212
为什么板子焊好之后1602液晶不显示呢?程序如下。
2013-12-11
11705
求助
DS1302
时钟芯片,为什么写入暂停指令后,秒飞跑呢?
2013-06-24
7941
关于
BCD
码
与
十进制
数的转换
2017-01-04
10357
labview中如何将一个
十进制
的数转换相同的
BCD
码
?是用公式节点来写程序的...有大神会吗? 求指导!!
2016-06-27
8848
请问
bcd
码
和二
进制
有什么关系?
2023-10-07
328
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分