任务实施

更新于 2026年10月10日 版权声明
任务实施

一、任务分析

根据电路分析可知:单片机的P0端口作为4位共阳数码管的数据总线,由两个74HC573锁存器分别控制段码和位码。单片机P2.2作为DS18B20数据传输端口。

DS18B20驱动函数如下:

●DS18B20初始化函数:void ds_reset();。

●读DS18B20函数:首先读取一位bit ds_read_bit();,再读取一个字节uchar ds_read_byte();。

●读取温度实现温度转换函数:uint read_temp();。

二、程序设计

程序执行流程图如图8-2-8所示。

参考程序:

#include <reg51.h>

#include <intrins.h>

#define uchar unsigned char

#define uint unsigned int

#define segdata P0

uchar a[4];

sbit du=P2^0;

sbit we=P2^1;

sbit DQ=P2^2;

bit flag;

uint temp;

unsigned char segd[]={

0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,

//不带小数点数字"0~9"

0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10,

//带小数点数字"0~9"0XC6(https://www.daowen.com)

图示

图8-2-8 程序流程图

图示

图示

图示

图示

三、电路仿真

1.绘制电路图

启动Proteus软件,建立“电子体温计”文件,放置元器件,所需元器件见表8-2-2。绘制完成的电路图如图8-2-9所示。

表8-2-2 元件清单

图示

图示

图8-2-9 绘制电路图

2.程序编写

打开Keil软件,新建“电子体温计的制作与实现”工程文件,新建“DS18B20.c”文件,编写程序,并生成hex文件。编写完成的程序如图8-2-10所示。

图示

图8-2-10 编写程序

3.电路仿真

加载hex文件,单击“仿真”按钮,仿真电路。仿真结果如图8-2-11所示。

图示

图8-2-11 仿真结果

图示

仿真视频

仿真结果显示:DS18B20设置的温度为26.0 ℃,在数码管上显示了26.0 ℃。DS18B20根据外界环境(人体)温度的变化,随时在数码管上显示温度值。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)