3038|2

280

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

基于DS18B20的瑞萨R7F0C80212温控器的简单实现 [复制链接]

首先说明一下:这个温控器的实现是基于DS18B20来实现的,根据板子资源分布,只有P0.2口可以利用一下,因为其他口都占了,同时为了保证板子的干净美观,本人实在不忍心在洞洞板区域进行焊接或者破坏原来电路板的连接(收藏癖,同时实现该温控器时所有的连接线都是通过杜邦线和网线面包板连接的.
具体的电路整体展示如下:
再来一张:
电路原理图说明:
关于DS18B20的原理图,就不用给出了,不理解的可以度娘一下.电路具体是利用P0.2口模拟DS18B20温度传感器的时序,读取温度值,并与提前设置的数值进行比较,然后分别点亮或熄灭相应的灯(P03P04,目前这2个引脚(P0.3 P0.4)连接了12路继电器模块,可以实现继电器输出。
DS18B20近照:
再来一张:
程序方面说明:
1.主要程序难点是DS18B20的驱动程序。由于对时序要求比较严格,因此花了很长的时间研究了一下延时程序(可以参考之前的帖子,关于精确定时的问题),最终驱动程序完成,得到的温度值与家里的DELI指针温度表比对,相差约1度,查看18B20datasheet,得到数值误差偏大,不知道是不是DELI温度表的问题(温度计原来放在电脑散热口处,温度偏高,后来挪远了,测量温度误差在0.5度左右)。
附图是我暂停程序后,得到的温度数值,具体温度值是这个数值乘以0.0625,所以温度应该是439*0.0625=27.4375摄氏度,图中表显示28度多。


2.程序里使用了定时器功能,定时2s钟实现1DS18B20的数据读取(因为DS18B20最大转换时间750ms,考虑这个,延时时间设置为2s),这样程序运行起来的时候继电器会每2S钟发生一次刷新。刷新时会影响继电器输出,这个是本程序目前的bug,还没有想好如何去解决这个问题。之前曾经考虑直接去循环DS18B20的读取数据程序,但是程序因为执行速度快,很快P0.3 P0.4的就会刷新,因为点亮的时间有限,最后在P0.3 P0.4端口操作语句里加入了延时函数,效果有所改善。只能等待高手指导了!!!

目前程序只是简单实现了温度的取值,比较,继电器输出。经测试功能基本正常。PS:本来是想传数据到上位机处理的,可惜芯片资源有限,最主要是我能力有限,哈哈,就等高手指导了!!!
视频如下:

程序代码:










18B20温控器.zip

133.31 KB, 下载次数: 61

DS18B20

最新回复

压缩包设密码了~  详情 回复 发表于 2014-9-9 22:56
点赞 关注

回复
举报

616

帖子

0

TA的资源

版主

沙发
 
压缩包设密码了~
 
 

回复

280

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
现在公开18b20的驱动程序,有需要的可以参考一下了!

DS18B20relay.zip

120.95 KB, 下载次数: 32

售价: 1 分芯积分  [记录]

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表