DS18B20单片机pid温度控制制仿真

基于DS18B20的温度测量和显示系统设计与仿真
> 基于DS18B20的温度测量和显示系统设计与仿真
基于DS18B20的温度测量和显示系统设计与仿真
摘要:基于美国DALLAS公司推出的数字温度传感器B20,给出了一个温度测量与显示系统的设计方法。该系统由51单片机AT89C52控制,并由8位数码管显示实时温度,通过该系统可设置温度上限与下限,以便在温度超过限值时进行报警。关键词:单片机;AT89C52;B20;温度测量0 引言 传统的温度检测大多以热敏电阻为温度传感器,而热敏电阻的可靠性差,测量温度准确率低,且必须转换为数字信号后才能由单片机进行处理,在高精度要求的温度检测应用中,热敏电阻已经被精度高、准确性好的集成温度采集设备所代替。B20是美国DALLAS半导体公司推出的一种改进型数字温度传感器。它在温度精度、转换时间、传输距离、分辨率等方面有很大改进,因而被广泛应用于温度采集与处理、数字温度计及各种温控系统中。本文采用DS18设计的温度测量与显示系统,可以实时测量并显示的温度范围为-55~125℃。系统可设置温度上限和温度下限,当测量温度高于上限或者低于下限温度时,系统将发出报警。1 温度传感器DS18 DS18是美国DALLAS半导体公司推出的一种改进型智能温度传感器,该传感器的可测温度范围为-55~125℃,可编程分辨率为9~12位,对应的可分辨温度为0.5℃、0.25℃、0.125℃和0.062 5℃。DS18B20的测量输出为数字信号,并可单线串行发送给CPU,并支持多点组网。DS18B20有3脚和8脚两种结构,而8脚的结构又有不同的封装形式,图1所示是DS18B20的引脚图。本文采用三极管形状的3脚DS18B20。事实上,无论是3脚结构还是8脚的结构,DS18B20在实际电路中都只有3个引脚参与连接,即电源(VDD)、地(GND)和信号输入输出(DQ)。本文引用地址:2 系统仿真电路 基于DS18B20的温度测量与显示系统仿真电路图如图2所示。 电路中的单片机采用AT89C52,DS18B20采用外部电源供电方式,其DQ端子与单片机的P3.7相连。采用两个4连排共阳极数码管显示实时温度,分别用于显示整数部分和小数部分。数码管的段选线与单片机的P1口相连,位选线与P2口相连。图中显示的正是最高温度125℃,由于在proteus软件中DS18B20无法设置小数,所以小数部分只能显示零了。DS18B20的最高分辨率为0.0625℃,所以理论上应该能显示4位小数。
分享给小伙伴们:
我来说两句……
微信公众号二
微信公众号一&>&基于51单片机和DS18B20的温度控制器(带Pretues仿真1602显示)
基于51单片机和DS18B20的温度控制器(带Pretues仿真1602显示)
上传大小:91KB
基于51单片机和DS18B20的温度控制器(带Pretues仿真),对学习51单片机,学习LCD1602,和DS18B20的应用,是不错的资料,每个模块独立,简单,KielC开发环境。
综合评分:5
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有10条
程序运行不了,怎么运行不了啊。。。不过好复杂,一个测温度感觉弄复杂了
有点小难度额,可以克服
很好,适合初学者
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
基于51单片机和DS18B20的温度控制器(带Pretues仿真1602显示)
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
liqiu880905
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
基于51单片机和DS18B20的温度控制器(带Pretues仿真1602显示)proteus仿真中,关于温度传感器DS18B20的问题_百度知道
proteus仿真中,关于温度传感器DS18B20的问题
需要用单片机控制加热,然后DS18B20的温度不再是根据图上那个数字手动来变化,而是能够测量加热元件的热度,应该怎么连接或者应该怎么编写C语言程序,我现在的显示屏只能显示出DS18B20元件上的那个绿色的温度,跟加热元件的温度调节一点关系都没有
我有更好的答案
用软件仿真是不能实现你的要求的,加热元件的温度变化是不能直接影响到DS18B20的温度,要仿真只能是用手动方式调节DS18B20的温度。真要实现你的要求,只能是做实物,实际做电路板,用真的加热元件,把DS18B20放在加热元件上。一切都是真的。
采纳率:92%
来自团队:
为您推荐:
其他类似问题
温度传感器的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求大神帮助,89C51和DS18B20的数字温度显示器,在PROTEUS中仿真。【单片机吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:150,269贴子:
求大神帮助,89C51和DS18B20的数字温度显示器,在PROTEUS中仿真。收藏
求大神帮助,89C51和DS18B20的数字温度显示器
,在PROTEUS中仿真,
不知道哪里错了,就是显示不了。 用的是4位共阳极数码管。下附
程序。程序:(汇编语言的) ;这是关于DS18B20的读写程序,数据脚P3.4,晶振12MHZ;温度传感器DS18B20汇编程序,采用器件默认的12位转化,最大转化时间750微秒ORG 0000HFLAG1 EQU 38H是否检测到DS18B20标志位DQ EQU P3.4
温度传感器与单片机链接I/O口MAIN:LCALL INIT_1820MOV A,#0CCH
写CCH到DS18B20,以便中跳过ROM匹配LCALL WRITE_1820WID18B20是写18B20子程序JNB FLAG1,MAIN若DS18B20不存在则从新开始MOV A,#44H
发温度转化命令LCALL WRITE_1820LCALL DISPLAYLCALL INIT_1820MOV A,#0BEH
发出温度命令LCALL WRITE_1820LCALL READ_18200LCALL GET_TEMPER调用读温度子程序LCALL ZWDS18B20调用温度计算子程序LCALL DISPLAYLJMP MAIN;****************************温度计算子程序************************ZWDS18B20:MOV R0,#34HJNB 47H,BT0D028H中的最高位是否为1(温度&0)QBOO:MOV A,29H负数取补CPL AADD A,#01HMOV 29H,AMOV A,28HCPL AADDC A,#00HMOV 28H,AMOV @R0,#12H显示负号LJMP BT0D1BT0D0:MOV @R0,#11HBT0D1:MOV A,29HMOV 27H,AMOV C,40H
将28H中的最低位移入C,40H 41H 42H43H 为28H中的位地址RRC AMOV C,41HRRC AMOV C,42HRRC AMOV C,43HRRC AMOV 29H,AMOV A,29H 将29H中的十六位进制数转化为十进制MOV B,#100DIV ABJZ BT0D2MOV @R0,A十位存于33HLJMP BT0D4BT0D2:CJNE @R0,#12H,BT0D3LJMP BT0D4BT0D3:MOV @R0,#00H符号位存于30H,符号位为零则暗BT0D4:DEC R0MOV A,#10XCH A,BDIV ABMOV @R0,ADEC R0MOV @R0,B个位存于32HDEC R0ANL 27H,#0FH小数点后一位进制转换MOV A,27HMOV B,#06HMUL ABMOV B,#10DIV ABMOV @R0,A小数点后一位存于31HJB P2.4,BT0D5小数点后一位是否显示判断MOV @R0,#0FFHBT0D5:RET;********************************DS18B20复位初始化子程序**********************INIT_1820:SETB P3.4NOPCLR P3.4;主机发出延时537微秒的复位低脉冲MOV R1,#3TSR1:MOV R0,#107DJNZ R0,$DJNZ R1,TSR1SETB P3.4然后拉高数据线NOPNOPNOPMOV R0,#25HTSR2:JNB P3.4,TSR3等待DS18B20回应DJNZ R0,TSR2LJMP TSR4延时TSR3:SETB FLAG1置标志位,表示DS18B20存在LJMP TSR5TSR4:CLR FLAG1清标志位,表示DS18B20不存在CLR P1.1LJMP TSR7TSR5:MOV R0,#117TSR6:DJNZ R0,TSR6时序要求延时一段时间TSR7:SETB P3.4RET;************************读出转换后的温度值******************GET_TEMPER:SETB P3.4LCALL INIT_1820先复位DS18B20JB FLAG1,TSS2RET
判断DS18B20是否存在?若不存在则返回TSS2:MOV A,#0CCHLCALL WRITE_1820 MOV A,#44H发出温度转换命令LCALL WRITE_1820;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒LCALL DISPLAYLCALL INIT_1820准备读温度前先复位MOV A,#0CCH跳过ROM匹配LCALL WRITE_1820MOV A,#0BEH发出读温度命令LCALL WRITE_1820LCALL READ_18200将读出的温度数据保存到35H/36HRET;************************写DS18B20的子程序(有具体的时序要求)********************WRITE_1820:MOV R2,#8一共8位数据CLR CWR1:CLR P3.4MOV R3,#5DJNZ R3,$RRC AMOV P3.4,CMOV R3,#21DJNZ R3,$SETB P3.4NOPDJNZ R2,WR1SETB P3.4RET;*********读DS18B20的程序,从DS18B20中读出两个字节的温度数据******READ_18200:MOV R4,#2将温度高位和低位从DS18B20中读出来MOV R1,#29H 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)RE00:MOV R2,#8数据一共8位RE01:CLR CSETB P3.4NOPNOPCLR P3.4NOPNOPNOPSETB P3.4MOV R3,#8RE10:DJNZ R3,RE10MOV C,P3.4MOV R3,#21RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00RET;*********************显示子程序***************************DISPLAY:MOV DPTR,#TABLE指定查表起始地址MOV R0,#4DPL1:MOV R1,#250显示1000次DPL0P:MOV A,30H 取符号位数MOVC A,@A+DPTR
查符号位的7代码MOV P0,A
送出符号位的7段代码CLR P2.7
开符号位显示LCALL D1MS
显示1msSETB P2.7MOV A,#7FH
送小数点显示MOV P0,ACLR P2.5LCALL D1MSSETB P2.5MOV A,31H
取小数点后一位数MOVC A,@A+DPTR
查个位数的7代码MOV P0,A
送出个位数的7段代码CLR P2.4
开小数点后一位显示LCALL D1MS
显示1msSETB P2.4MOV A,#32H
取个位数MOVC A,@A+DPTR
查个位数的7代码MOV P0,A
送出个位的7段代码CLR P2.5
开个位显示LCALL D1MS
显示1msSETB P2.5MOV A,#33H
十位数MOVC A,@A+DPTR
查十位数的7代码MOV P0,A
送出十位的7段代码CLR P2.6
开十位显示LCALL D1MS
显示1msSETB P2.6DJNZ R1,DPL0P
100次没完循环DJNZ R0,DPL1
4个100次没完循环RET;1ms延时D1MS:MOV R7,#80DJNZ R7,$Ret;实验板上的7段数码管0~9数字的共阳极显示代码TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,82H,0F8H,80H,90HEND
华强旗舰是华强集团旗下的一站式电子元器件交易平台,单片机程序型号齐全,海量现货任你选择, 大小批量均可交易, 这里总能找到你想要的!
P0应当接上拉电阻,而不是限流电阻~
登录百度帐号>> 使用PROTEUS仿真的智能温度计,使用DS18B20测温,C编写
使用PROTEUS仿真的智能温度计,使用DS18B20测温,C编写
所属分类:
下载地址:
DS18B20.rar文件大小:57.08 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
使用PROTEUS仿真的智能温度计,使用DS18B20测温,C编写-PROTEUS simulation using intelligent thermometer, use DS18B20 temperature, C prepared
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
DS18B20.plg173.00 B05-08-08 00:06
4.17 kB04-08-08 18:57
DS18B20.ls153.83 kB04-08-08 18:57
DS18B20.lnp75.00 B04-08-08 18:57
DS18B20.M5117.37 kB04-08-08 18:57
DS18B20.hex2.06 kB04-08-08 18:58
DS18B20.PWI1.87 kB04-08-08 19:01
DS18B20_Uv2.Bak2.41 kB04-08-08 13:17
DS18B20.Uv22.44 kB04-08-08 17:07
DS18B20.SRC15.11 kB04-08-08 18:57
DS18B20.__i57.00 B04-08-08 18:57
DS18B20.LST8.28 kB04-08-08 18:57
DS18B20.OBJ5.11 kB04-08-08 18:57
DS18B204.07 kB04-08-08 18:57
&Last&0.00 B13161 17%
DS18B20.DSN73.87 kB04-08-08 19:01
DS18B20_Opt.Bak1.22 kB04-08-08 19:20
DS18B20.Opt1.22 kB05-08-08 00:06
&DS18B20&0.00 B03-08-08 19:16
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载DS18B20.rar
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:ms - init:0.1;find:1.1;t:0.6;tags:14.4;related:636.3;comment:0.3; 5.8
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧}

我要回帖

更多关于 温度控制开关 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信