打印
[单片机类]

【一个小小的个人经验分享】【七】DS1302时钟模块+DS18B20

[复制链接]
1533|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
enderman1|  楼主 | 2019-3-14 18:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
>说在前面的话:这个星期有点忙哈,但是帖子还是要更新的;决定了!今天和明天直接更新两篇~

想了想,正好还有DS1302和DS18B20没有写,所以在本帖的最后我会放送当年写的第8届蓝桥杯省赛的例程(当时自己写的,不是现在写的),由于当时自己的水平还是个沙包,但是功能都可以实现。当然按下按键的时候数码管是不能正常显示的,现在已经知道解决方法了(把数码管显示简单处理一下放到定时器中断里面,前面有说过),但是并不影响大体;啊,本人太懒了,所以也懒得改当时的程序了。。。希望大家可以优化一下。。。



【DS1302】其中时序部分大赛提供的有例程,参赛的时间要做的仅仅是写两个函数;分别是BCD转DAT和DAT转BCD。这里说的BCD码是指的8421BCD,如果连这个都不知道的话,emmmmmm  好好翻翻数电书吧。。。。。说白了就是4位二进制表示1位十进制的一种方法,举个栗子:   1000 0101  BCD码表示的就是  85(十进制)   但是如果按照二进制转十进制的话  1000  0101  其实是   133;  所以。。。反之     85 转  BCD码是   1000   0101   但是转二进制是   0101 0101  因此,需要两个函数来实现   BCD和正常数据的转换(因为DS1302存放数据的格式是BCD码存放的,而单片机是正常的二进制。。)
好了说了这么多,接下来是BCD和正常数据的转换函数:

unsigned char bcd_dat(unsigned char n){
        unsigned char shi,ge,dat;
        shi=n/16;
        ge=n%16;
        dat=shi*10+ge;
        return dat;
}
unsigned char dat_bcd(unsigned char n){
        unsigned char shi,ge,dat;
        shi=n/10;
        ge=n%10;
        dat=shi*16+ge;
        return dat;
}
至于数据提取的方法,其实芯片使用手册以及介绍的很完整了,首先要写入数据要清除写保护,写入之后要开写保护
以下是相关代码:
ds1302_write(0x8e,0x00);                //清除写保护
        ds1302_write(ds_sec_W,dat_bcd(50));
        ds1302_write(ds_min_W,dat_bcd(59));
        ds1302_write(ds_hour_W,dat_bcd(23));
        ds1302_write(0x8e,0x80);//开启写保护
而读取数据也差不多是这样了。。。


【DS18B20】这个其实没什么好说的,时序大赛会给,几个死的指令,记住就可以了。。

ds18b20_init();
                                ds18b20_write(0xcc);
                                ds18b20_write(0x44);
                                delay(10);
                                ds18b20_init();
                                ds18b20_write(0xcc);
                                ds18b20_write(0xbe);
                                tempL=ds18b20_read();
                                tempH=ds18b20_read();
                                
                                temp=(tempH<<4)|(tempL>>4);



其实现在看看当时的程序其实也挺傻的,当时至少是做出来了,等有空了我再改改吧。。。
8电子钟.zip (58.96 KB)


https://bbs.21ic.com/forum.php?mod=attachment&aid=MTE5MzE3MHw2ODIzOTc1NTViZWQ5NWFiNjRlYTM2Njc1NGJjZDQ3MnwxNzE0MTAyODY3&request=yes&_f=.zip

相关帖子

沙发
零三翟邢止胃| | 2019-3-15 08:55 | 只看该作者
好资料啊!!!!!

使用特权

评论回复
评论
enderman1 2019-3-16 11:00 回复TA
谢谢支持~ 
板凳
biu~beng| | 2019-3-23 14:43 | 只看该作者
谢谢楼主,真棒呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

71

帖子

12

粉丝