找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2246|回复: 0
收起左侧

51单片机DS18B20恒温控制系统源程序

[复制链接]
ID:584121 发表于 2019-7-14 22:56 | 显示全部楼层 |阅读模式
经过一个星期,我将密闭的容器代替烤箱,用电阻丝来进行发热,设计基于 DS18B20 的数字式烤箱温度控制系统,控制电路主要包括,数码管显示电路、按键电路、报警电路、H型全桥式驱动电热丝电路、温度检测电路及其控制电路
下面是温度读取处理转换函数
  1. /*******************************************************************************
  2. * 函 数 名         : datapros()
  3. * 函数功能                   : 温度读取处理转换函数
  4. * 输    入         : temp
  5. * 输    出         : 无
  6. *******************************************************************************/

  7. void datapros(int temp)         
  8. {
  9.            float tp;  
  10.         if(temp< 0)                                //当温度值为负数
  11.           {
  12.                 DisplayData[0] = 0x40;           //   -
  13.                 //因为读取的温度是实际温度的补码,所以减1,再取反求出原码
  14.                 temp=temp-1;
  15.                 temp=~temp;
  16.                 tp=temp;
  17.                 temp=tp*0.0625*100+0.5;        
  18.                 //留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
  19.                 //后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
  20.                 //算加上0.5,还是在小数点后面。

  21.           }
  22.          else
  23.           {                        
  24.                 DisplayData[0] = 0x00;
  25.                 tp=temp;//因为数据处理有小数点所以将温度赋给一个浮点型变量
  26.                 //如果温度是正的那么,那么正数的原码就是补码它本身
  27.                 temp=tp*0.0625*100+0.5;        
  28.                 //留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
  29.                 //后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
  30.                 //算加上0.5,还是在小数点后面。
  31.         }
  32.         DisplayData[0] = smgduan[temp % 10000 / 1000];
  33.         DisplayData[1] = smgduan[temp % 1000 / 100] | 0x80;
  34.         DisplayData[2] = smgduan[temp % 100 / 10];
  35.         DisplayData[3] = smgduan[temp % 10];
  36.         DisplayData[4] = smgduan[wendu /1000];
  37.         DisplayData[5] = smgduan[wendu % 1000/100]| 0x80;
  38.         DisplayData[6] = smgduan[wendu % 100/10];
  39.         DisplayData[7] = smgduan[wendu %10];
  40.         
  41. }
复制代码

58b652bee4497b9ee7404f9e036419d.png

恒温.rar

41.13 KB, 下载次数: 26, 下载积分: 黑币 -5

源代码

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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