一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: sdf15937
收起左侧

[其他综合] 自己仿了一个单片机时钟

  [复制链接]
发表于 2012-11-26 12:59 | 显示全部楼层
回复 27# sunny503


    温度以0.5度跳动,是因为分辩率为9位。在主程序初始化时要设置成12位,要连续向DS18B20写入三个字节。如插入以下代码:

DS18B20_WriteByte(0xCC);   //DS18B20跳过读序号列号的操作
DS18B20_WriteByte(0x4E);   //DS18B20写寄存器
DS18B20_WriteByte(0x00);
DS18B20_WriteByte(0x00);
DS18B20_WriteByte(0x7F);   //DS18B20连续写入三个字节,设置12位分辨率

不知说的对不对,你可以试一下。
发表于 2012-11-26 18:42 | 显示全部楼层
回楼上“lising”,
10楼的源码中的18B20的写码部分如下:(具体要怎么改动为你上述的?)

//读取温度
unsigned int ReadTemperature(void)
{
unsigned int a=0;
unsigned int b=0;
unsigned int t=0;
float tt;
Init_DS18B20();
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 44启动温度转换
delay_18b20(200);
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //BE读取温度寄存器等(共可读9个寄存器) 前两个就是温度
a=ReadOneChar();
b=ReadOneChar();
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
t=tt*10+0.5;
return(t);
}//请"lising"改动一下后,我来试试^_^谢谢!
发表于 2013-2-25 12:24 | 显示全部楼层
想试一下
发表于 2013-3-6 22:37 | 显示全部楼层
非常好,我也很想学习.
发表于 2013-3-9 15:00 | 显示全部楼层
很好,我也想做一个。
发表于 2014-11-7 20:21 | 显示全部楼层
不错不错哦
发表于 2014-11-14 10:12 | 显示全部楼层
我也做一个
发表于 2015-5-27 23:02 | 显示全部楼层
谢谢楼主了真牛也
发表于 2015-5-31 22:25 | 显示全部楼层
我按楼主提供的原理图做了个,可上电显示乱码,怎么解决,求帮忙
发表于 2015-5-31 23:43 | 显示全部楼层
还是搞数码管吧,这样看起来太累

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-3 00:53 , Processed in 0.049030 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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