对ds18b20温度控制C语言程序
- 格式:pdf
- 大小:101.84 KB
- 文档页数:6


仅供个人参考
不得用于商业用途 基于DS18B20的温度系统
• 实验目的
•了解 DS1820数字温度传感器特性
•掌握单片机基本功能的运用、简单接口电路如键盘、 LED显示电路或LCD显示电路设计及其相应驱动软件的编制软、硬件系统的调试
• 实验任务
设计一个具有基于DS1820数字温度传感器的温度检测及显示的系统。要求系统具有以下功能:
• 两路温度检测;
• 具有显示功能;
• 具有用户输入功能;
• 可通过输入补偿温度设定校准;
For personal use only in study and research; not for commercial use
• 实验原理
原理简述:数字温度传感器DS1820把温度信息转换为数字格式;通过“1-线协议”,单片机获取指定传感器的数字温度信息,并显示到显示设备上。通过键盘,单片机可根据程序指令实现更灵活的功能,如单点检测、轮转检测、越限检测等。基于DS1820数字温度传感器的温度检测及显示的系统原理图如图1
For personal use only in study and research; not for commercial use
仅供个人参考
不得用于商业用途
图 1 基于DS1820的温度检测系统框图
• 硬件设计
For personal use only in study and research; not for commercial use
电路设计--单片机基本系统电路:
图 2 单片机基本系统电路原理图
电路说明:
综合考虑系统使用到的单片机内部存储资源、系统处理信号的种类、处理数据的速度、系统的 I/O口开销,以及系统的可扩展性能,本系统选用了ATMEL公司的8位低功耗,高性能CMOS单片机,芯片内集成有通用8位中央处理器(兼容标准MCS -51指令系统及80C51引脚结构)和4K/8K Bytes ISP Flash存储单元(可实现在系统编程)。复位电路采用上电复位加按键复位的方式。采用无源晶体提供正弦振荡信号为系统提供时钟,其硬件原理图如图 2所示。 仅供个人参考
目录
1.引言 ......................................................... 1
1.1绪论 .................................................................. 1
1.2课程设计任务书 ........................................................ 1
2.设计方案 ..................................................... 3
3.硬件设计方案 ................................................. 3
3.1最小系统地设计 ........................................................ 3
3.2 LED发光报警电路 ...................................................... 5
3.3 DS18B20地简介及在本次设计中地应用 .................................... 5
3.3.1 DS18B20地外部结构及管脚排列 ...................................... 5
3.3.2 DS18B20地工作原理 ................................................ 6
3.3.3 DS18B20地主要特性 ................................................ 7
3.3.4 DS18B20地测温流程 ................................................ 8
DS18B20温度传感器实现代码
平台: freescale CodeWarriorMCU:MC9S12G128(汽车级芯⽚)
#include "Ds18b20.h"
/************************************************************
* DS18B20 status initialization
************************************************************/
#pragma MESSAGE DISABLE C12056 //屏蔽警告
INT8U Ds18b20StsInit(void)
{
INT8U ack = DB_OK;
INT16U outTime = 500;
//DisableInterrupts
/* 初始化状态 */
BUS_DIR = HIGH;
BUS = HIGH;
DelayUs(8);
/* 拉低BUS,延时500us */
BUS = LOW;
DelayUs(480);
/* BUS上拉,延时15us-60us */
BUS = HIGH;
DelayUs(30);
/* BUS设置为输⼊ */
BUS_DIR = LOW;
/* 等待DS18B20存在脉冲做出回应,0正常,60-240us */
DelayUs(8);
while(BUS)
{
--outTime; //超时处理
if(outTime == 0)
{
ack = DB_ERR;
break;
}
}
/* 等待DS18B20恢复稳定 */
DelayUs(128);
/* BUS上拉 */
BUS_DIR = HIGH;
BUS = HIGH;
DelayUs(280);
//EnableInterrupts
return (ack);
}
/************************************************************
时钟电路图:
*■11
PCB板:
酱时井務ft是用诵m-pdfMerisi 口叵因
Fjr 齐舱 C :s ® 工细理沖 缶皿ndm - * TfS ' 4' 包田 U i > 'ir ft ZS:M Z fH钟些fl是用说町-Pdf Wirrcf闻礒雜
sbit dis_ bitl
sbit dis_ bit2
sbit dis_ bit3
sbit dis_ bit4
sbit dis_ bit5
sbit dis_ bit6
sbit ledl _bit
sbit led2 ! bit =P2A7; II定义数码管控制口
=P2A6; II定义数码管控制口
=卩2八4; II定义数码管控制口 =卩2八3; II定义数码管控制口 =P2A1; II定义数码管控制口 =P2A0; II定义数码管控制口 =P2A2; II定时LED勺控制口 =P2A5; II定时LED勺控制口
单片机程序:
/*===================================================================
调试要求:
1. MCU:AT89S52 芯片或 AT89C52
2. 晶振:12MHz
功能:多功能时钟+温度计
/
#inelude
#inelude vintrins . h>
訂开始 LJ-雲匕® 务如1痒3月计ttVl. •呈T』d"吐拠席射■ w耳pg文宇■[豹… SS时軽件思冃说
#define uehar
#define uint unsigned char
unsigned int
sbit s1_bit =P1A0; // 定义S1 控制口
sbit s2_bit =P01; // 定义 S2控制口
sbit s3_bit =P02; // 定义 S3控制口
sbit dq_ds18b20 =P3A3;// 定义控制 DS18B20