一、硬件链接

在元件库中搜索DS18B20,按下图的连接方式链接。

二、驱动代码

#define uchar unsigned char
#define uint unsigned int
sbit DS1820_dat=P3^2;void DS18B20_delay(uint T)                               //????
{while(T--);
}void Initial()
{DS1820_dat=1;DS18B20_delay(8);          //??16??DS1820_dat=0;DS18B20_delay(80);DS1820_dat=1;DS18B20_delay(15);
} void Input(uchar f)           //18B20???????
{uchar j;for (j=0;j<8;j++){DS1820_dat=0;DS1820_dat=f&0x01;DS18B20_delay(10);DS1820_dat=1;f>>=1;}
}uchar Output()        //18b20 ????????
{uchar j,b;for (j=0;j<8;j++){DS1820_dat=0;b>>=1;DS1820_dat=1;if (DS1820_dat){b=b|0x80;}DS18B20_delay(10);}return(b);
}
int Temper()
{     int Store;int Store_2,Store_1;Initial();                 //对 DS18B20 复位Input(0xcc);               //跳过 ROMInput(0x44);               //启动温度转换Initial();                  //对 DS18B20 复位Input(0xcc);              //跳过 ROMInput(0xbe);            //读 RAM 命令Store_1=Output();        //读温度的低字节Store_2=Output();         //读温度的高字节     Store_2=(Store_2*256)+Store_1;      //合起来为温度的整数部分Store=(int) Store_2*0.625;return Store;
}

三、软件示例

完整代码功能为51单片机温度控制系统,proteus仿真资料
功能:
1、低于设定最低温度时加热丝加热,高于最高温度时停止加热。可用按键设置高低温度。

2、显示当前时间,时间可设置。
3、DAC液位监测,液位低于10%开启电机上水,高于90%关闭电机上水,百分比可在程序中修改

/*****************主函数********************/
void main()
{   beep = 0;                  //开机蜂鸣器叫一声delay_1ms(200);P0 = P1 = P2 = P3 = 0xff;   //初始化IO口init_time0();       //初始化定时器init_1602();        //lcd1602初始化init_1602_dis_csf(); //lcd1602初始化显示do{temp=Temper();}while(temp==850);             //因为DS18B20上电之后会读出来850,但不是温度值,所以等待读出温度值   delay_1ms(100);while(1){key();            //按键程序if(key_can > 0){beep = 0;delay_1ms(50);beep = 1;            key_with(); }if(flag_200ms == 1){ flag_200ms = 0;if(menu_1 == 0){read_time();        //读时间init_1602_ds1302();   //显示时钟vol_value=VOL_VAL*A_D()/256;               //获取模拟电压值percent = 100.0*vol_value/VOL_VAL;display_temp(55);}}delay_1ms(1);}
}

关注下方公众号,回复公众号“204”获取完整工程文件

Proteus仿真-DS18B20温度传感器使用方法相关推荐

  1. 基于51单片机多路温度检测proteus仿真 ds18b20

    本设计是基于51单片机多路温度检测proteus仿真_ds18b20(仿真+程序+原理图) 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:C0042 ...

  2. 51单片机+LCD12864驱动显示汉字模板+Proteus仿真

    51单片机+LCD12864驱动显示汉字模板+Proteus仿真 Proteus仿真效果 汉字显示方法 汉字通过取模软件取模. 取模软件:pctolcd2002 取模方式: 工程文件架构 主程序代码 ...

  3. 【Proteus仿真】数字温度计,利用 Mega16 控制 DS18B20 ,若温度达到设定阈值,即可报警提醒(用串口控制停止报警、用键盘输入改变报警阈值)

    (代码在文末) 工程文件和代码下载链接如下(求求下载前点个赞支持一下吧QAQ,博主自己做出来这个也hin累的) 链接: https://pan.baidu.com/s/1-aRZjyRZodzLcw8 ...

  4. 51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真

    51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真 本实验通过51单片机读取DS18B20温度传感器的温度,然后通过数码管显示,并通过串口,将读取到的温度数据发送出去. 本案例需要使 ...

  5. 【001】基于51单片机的DS18B20温度检测与报警装置的proteus仿真设计

    一.设计资料内容(私信获取) 1. 包含proteus仿真一份: 2. keil源代码一份: 3. 包含基于51单片机的DS18B20温度监测与报警的proteus仿真设计课程报告一份: 4. 包含基 ...

  6. 【Proteus仿真】51单片机汇编实现DS18B20+LCD1602显示

    [Proteus仿真]51单片机汇编实现DS18B20+LCD1602显示 Proteus仿真 汇编代码(.asm) ;**************************************** ...

  7. 51单片机DS18B20测温数码管显示例程(Proteus仿真+程序)

    编号:19 51单片机DS18B20测温数码管显示例程 功能描述: 本设计由STM32单片机+DS18B20温度传感器+四段数码管显示模块组成. 1.主控制器是51单片机 2.DS18B20温度传感器 ...

  8. 51单片机DS18B20温度报警器proteus仿真设计_可调上下限

    51单片机DS18B20温度报警器proteus仿真设计_可调上下限 (仿真+源码+原理图+报告) 原理图:Altium Designer 仿真版本:proteus 7.8 程序编译器:keil 4/ ...

  9. ds18b20温度转换指令_DS18B20温度传感器使用方法以及代码

    第 7 章 DS18B20 温度传感器 7.1 温度传感器概述 温度传感器是各种传感器中最常用的一种, 早起使用的是模拟温 度传感器, 如热敏电阻, 随着环境温度的变化, 它的阻值也发生线性 变化, ...

最新文章

  1. 输入http://localhost/,apache出现You don't have permission to access/on this server.的提示,如何解决?...
  2. 爱奇艺谢丹铭:用AI让创作者提升效率,让消费者简单快乐丨MEET2021
  3. linux重定向进程输出到文件删除,Linux文件编辑器vim输出输入重定向、管道以及进程(示例代码)...
  4. 这样准备面试,薪资比预期至少多拿20%!
  5. 重置mariadb密码
  6. charles 安装 ssl_「从零开始Python爬虫」1.7.1 Charles的安装与配置
  7. Node.js读取mongoDB并输出json数据
  8. Android 系统(40)--Android7.0 PowerManagerService亮灭屏分析(一)
  9. pytorch utils.data.DataLoader
  10. java sort方法_Java排序方法sort用法详解
  11. LinuxShell 脚本条件语句的运用
  12. 体验不尽,进化不止,看视频云技术六大创新
  13. 在线二进制取余计算机,二进制换算(进制转换计算器)
  14. the JDBC Driver has been forcibly unregistered
  15. 程序人生 - 游戏帧数很高,为什么还是会卡顿?
  16. 提高工作效率的12个小建议
  17. 遇见心想事成的自己……
  18. 又拍云php接口,又拍云 API 使用的那些小事
  19. python中if有几种使用方式_在 Python 中可以使用 if 作为变量名。 (2.0分)_学小易找答案...
  20. UVA - 1600 Patrol Robot (巡逻机器人)(bfs)

热门文章

  1. uni-app开发,防止踩坑
  2. 网络字节顺,大头,小头
  3. mysql 页分裂_Innodb页面分裂
  4. 移动盘同名文件夹EXE病毒
  5. GitHub下载加速神器
  6. 小米不插SIM卡,不能安装未知来源应用
  7. SDN/Openflow学习总结
  8. uwp连接mysql数据库_在UWP中使用SQLite数据库,支持加密
  9. 嵌入式工程师应该有的工作态度
  10. android 复制内容到剪切板方法