普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 3774|回复: 2

跪求大佬,大神指教。Ds1302的年寄存器为十位和个位,要显示年份为2017该怎么编程,

 关闭 [复制链接]

11

主题

32

帖子

138

积分

注册会员

Rank: 2

积分
138
发表于 2017-10-18 20:28:55 | 显示全部楼层 |阅读模式
#include<kaohe.h>
u8 code ds1302_write_addr[8]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8c[/size]};//我这里吧年寄存的读写寄存器都写了两遍,是希望20和17都能被写入。
u8 code ds1302_read_addr[8]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d,0x8d};
u8 time[8]={0,0,0x00,0x15,0x10,0x07,0x17,0x20};


下面是数据处理函数

      void shizhongdatpros()
{
        ds1302read_time();
       shizhongdat[0]=time[7]/16+0x30;
        shizhongdat[1]=time[7]%16+0x30;//20
       
        shizhongdat[2]=time[6]/16+0x30;
        shizhongdat[3]=time[6]%16+0x30;//17
}


其他部分的程序和普中科技教程一样,没做太大的修改。


最终显示结果是2020,并不是2017.
如果要显示2017,该怎莫办,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

13

帖子

58

积分

注册会员

Rank: 2

积分
58
发表于 2017-10-19 00:12:18 | 显示全部楼层
你要是写两遍,第一遍不就被覆盖了吗?
回复 支持 反对

使用道具 举报

11

主题

32

帖子

138

积分

注册会员

Rank: 2

积分
138
 楼主| 发表于 2017-10-20 22:48:21 | 显示全部楼层
2017要怎麽显示,是不是只能给他负固定的值。

比如将上文中的数据处理函数做一下变化
        shizhongdat[0]='2';
         shizhongdat[1]='0';
这样他的值就会最终显示2017;但这‘’20‘’是固定的,也就是说他没法增长变为2117.


不知道这位大神有没有其他方法请指教,谢谢;
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-20 17:39 , Processed in 0.095489 second(s), 31 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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