基于stc89c52,ds18b2的电子温度计课设

合集下载

基于AT89S52和DS18B20的数字温度计设计资料

基于AT89S52和DS18B20的数字温度计设计资料

题目:基于AT89S52和DS18B20的数字温度计设计一、设计要求数字式温度计要求测温范围为-55~125°C,精度误差在±0.5°C以内,液晶显示。

二、方案确定根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89S52为测控系统的核心来完成数据采集、处理、显示功能。

选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。

该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度信号发送到AT89S52单片机上,经过单片机处理,然后在1602LCD上进行显示。

其温度测量及显示电路原理图如下:220V转5V电路原理图如下:2.1 元器件的介绍2.1.1 单片机的选择AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。

使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52单片机结构见图2.1:图2.1 AT89S52结构图2.2.2 传感器的选择DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

DS18B20的管脚排列、各种封装形式,DQ 为数据输入/输出引脚。

开漏单总线接口引脚。

基于STC89C52DS18B20电子温度计课设

基于STC89C52DS18B20电子温度计课设

正文1.设计内容和要求。

随着社会的进步和工业技术的发展,人们越来越重视温度因素,许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。

在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。

本课题以STC89C52单片机系统为核心,能对多点的温度进行实时巡检。

DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。

本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并通过LCD1602显示当前温度,实现实时温度测量。

2、系统总体结构系统的系统设计方框图如图1-1所示,它主要由三部分组成:①控制部分主芯片采用单片机STC89C52;②显示部分采用LCD1602以动态扫描方式实现温度显示;③温度采集部分的温度传感器采用DS18B20智能温度温度传感器。

DS18B20进行温度采集和转换输出数字型的温度值,然后通过数据引脚传到单片机的P3.7口,单片机通过P2口将数据扫描到LCD1602显示屏上。

图2-13、硬件设计3.1 控制模块本设计采用单片机基于数字温度传感器DS18B20的系统。

单片机STC89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用。

温度传感器DS18B20利用单总线的特点可以方便的实现多点温度的测量,组建传感器网络,且系统的抗干扰性好、设计灵活、方便,而且能在恶劣的环境下进行现场温度检测。

3.2温度采集模块这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。

DS18B20智能温度温度传感器进行温度采集和转换输出数字型的温度值,然后通过数据引脚传到单片机的P3.7口,单片机接受温度并存储。

基于DS18B20 89C52单片机的数字温度计设计).doc

基于DS18B20 89C52单片机的数字温度计设计).doc

基于DS18B20 89C52单片机的数字温度计设计)。

基于SCMIn日常生活和工业生产过程的数字温度计的设计,常用于温度的检测和控制,温度是生产过程和科学实验中的一般和重要的物理参数之一。

传统的热电偶和温度元件是第二个电阻。

热电偶和热电阻一般都是测量电压,然后用相应的温度来代替,这些方法比较复杂,需要相对大量的外部硬件支持。

我们用一种相对简单的方法来测量。

我们采用美国达拉斯半导体公司继DS1820改进后推出的智能温度传感器DS18B20作为检测元件,温度范围为-55℃至125℃,最高分辨率为0.0625摄氏度.DS18B 20可以直接读出北侧的温度,并与三线制单片机相连,减少了外部硬件电路,具有低成本和易用性。

摘要以下内容:介绍了一种基于AT89C52单片机的一种温度测量电路,该电路采用DS18B20高精度温度传感器,测量范围0℃至100℃,可设置报警限值,使用七段发光二极管即能显示当前温度。

本文重点提供了软硬件系统组成电路,介绍了DS18B20的原理、AT89C-的功能和应用省略部分-=0;对于(I=8;i0;DQ=0;//给脉冲信号dat=1;DQ=1;//给脉冲信号if(DQ)dat |=0x 80;tmpDelay(4);消息范文\\ f 6527 . }返回(dat);}void WriteOneChar(无符号字符dat)//写一个字节{无符号字符I=0;对于(I=8;i0;DQ=0;DQ=dat0x 01;tmpDelay(5);DQ=1;dat=1;}}无符号int Readttemp()//读取温度{无符号字符a=0。

无符号字符b=0;无符号int t=0;浮点TT=0;init _ DS18B 20();消息范文写OneChar(0xCC)。

//跳过读序号列号的操作写OneChar(0x 44);//启动温度转换init _ DS18B 20();写OneChar(0xCC);//跳过读序号列号的操作写OneChar(0xBe);//读取温度寄存器a=ReadNecHar();//连续读两个字节数据//读低8位b=ReadNecHar();//读高8位t=b .t37)字范文{ D1=0;D2=1;延迟(500);}如果(num 110){ D1=1;D2=0;延迟(500);}否则{ D1=1;D2=1;}史=num/100;ge=num/10;萧墅=numwrite _ com(0x 800x 40 5);write_date(杜文[施);write _ com(0x 800x 40 6);write_date(杜文[格);write _ com(0x 800x 40 7);write _ date(0x2e);write _ com(0x 800x 40 8);write_date(杜文[萧墅);}void main(){word 范文初始化_液晶();而(1){显示();延迟(10);} }单词范文。

基于DS18B20 89C52单片机的数字温度计设计)

基于DS18B20  89C52单片机的数字温度计设计)

Design of Digital Thermomer Based on SCMIn daily life and industrial production process, often used in the detection and control of temperature, temperature is the production process and scientific experiments in general and one of the important physical parameter.Traditional thermocouple and temperature components are the second resistor. The thermocouple and thermal resistance are generally measured voltage, and then replaced by the corresponding temperature, these methods are relatively complex, requiring a relatively large number of external hardware support. We use a relatively simple way to measure.We use the United States following DALLAS Semiconductor DS1820 improved after the introduction of a smart temperature sensor DS18B20 as the detection element, a temperature range of -55 º C ~ 125 º C, up to a maximum resolution of 0.0625 º C. DS18B20 can be directly read out the temperature on the north side, and three-wire system with single-chip connected to a decrease of the external hardware circuit, with low-cost and easy use.The introduction of a cost-based AT89C52 MCU a temperature measurement circuits, the circuits used DS18B20 high-precision temperature sensor, measuring scope 0 º C~+100 º C, can set the warning limitation, the use of seven segments LED that can be display the current temperature. The paper focuses on providing a software and hardware system components circuit, introduced the theory of DS18B20, the functions and applications of AT89C52 .This circuit design innovative, powerful, can be expansionary strong.Keywords:Temperature measurement DS18B20 AT89C52目录第1章引言 (1)1.1课题背景及研究意义 (1)1.2课题的设计目的 (1)1.3课题设计主要工作 (2)1.4本文研究内容 (2)第2章开发工具Proteus与Keil (3)2.1 Proteus软件简介 (3)2.2 Keil软件简介 (3)第3章系统概述 (5)3.1设计方案 (5)3.2系统设计原理 (5)3.3系统组成 (6)3.4 DS18B20温度传感器与单片机的接口电路 (7)第4章系统硬件设计 (8)4.1 89C52单片机的介绍 (8)4.1.1 89C52单片机主要特性 (9)4.1.2 89C52单片机管脚图 (10)4.2液晶模块简介 (13)4.3 DS18B20介绍 (16) (17)4.3.2 DS18B20相关介绍 (19)第5章系统软件设计 (21)5.1主程序设计 (21)5.2 DS18B20初始化 (22)5.3仿真结果 (23)结论 (26)致谢 (27)参考文献 (28)附录A 系统整体电路 (29)附录B 全部程序清单 (30)第1章引言1.1课题背景及研究意义随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。

基于STC89C52和DS18820的温度报警器设计

基于STC89C52和DS18820的温度报警器设计

片具有传统 5 l 单 片机不具备 的功能 。在单芯片上 ,拥有灵 巧的 8
[ 3 】 陈海宴. 5 1 单 片机 原理及 应用[ M] . 北京航 空航 天大 学 出版
所 需的温度 环境 , 为防止温度 超出范围造成巨大损失 , 对特定 的环 洁, 便于学习。运行于单片机平 台, 可移植性好。软件设计包括: 主 D S 1 8 B 2 0初始化子程序 、 键盘扫 描子程序 、 读温度 子程序 、 温 境温度 进行实时监控 , 在 超出范围时进行报警就非常 的有必 要, 采 程序 、
设 定 温 度 范 围和 其他 参数 , 系统结构图如图 1 所示 。
。 = = = 垦 竺 矍
C P U

S T C8 9 C 5 2

Байду номын сангаас

图 2主程序 流程图
图 1系 统结构图
2 . 1 温度传感器 D S 1 8 B 2 0
4小 结
本 文 以 温 度 作 为 主 要 检 测 和 处 理 参 数 , 整 个 系 统 采 用
用 单片机和温度传感器的组合是非常实用 的一种方 式 。该设计 的 度数据处理子程序 、 温度 显示 子程 序、 报警 处理 子程 序等 。主程序 基 本原理是通过单片机来控制温度传感器 的采样值 ,将采样值与 流程 图如 图 2 所 示 。限 于 篇 幅 , 子 程 序 流 程 图 和 相 应 的 程序 略去 。 设定范围进 行 比较 , 如果超 出设定范围则驱动扬声器报警 , 可 以通 过 按键和显示器来进行参数和功能的调整。
计, 选 用 DS 1 8 B 2 0温 度 传 感 器检 测 温度 , 利用 L C D1 6 0 2显 示 , 通 过 的 内容 为 1 6 X 2 , 即可 以显 示 两 行 , 每行 1 6个 字 符 液 晶模 块 ( 显 示 字

基于STC89C52和DS18B20的温度显示报警系统

基于STC89C52和DS18B20的温度显示报警系统

基于STC89C52和DS18B20的温度显示报警系统【摘要】:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度低于或高于设置温度范围内时,可以报警。

本系统采用STC89C52单片机作为控制主芯片,DS18B20数字温度传感器作为温度采集器件,运用蜂鸣器作为报警器,LED灯作为闪烁指示灯,三位共阴数码数作为LED显示器件。

关键词:单片机STC89C52 温度传感器DS18B20 蜂鸣器显示器一、设计目的1、学习基本理论在实践综合运用的经验,掌握工程系统设计的基本方法、设计步骤,培养综合设计与调试能力。

2、学会以STC89C52为核心芯片的温度报警器的设计方法和性能指标测试方法。

3、培养实践技能,提高分析和解决实际问题的能力。

二、设计任务及要求1、设计并制作一个可用显示模块显示实时温度、报警温度,当环境温度超过或低于某个值时,实施报警。

主要技术指标要求:设计温度分辨率为0.1摄氏度2、设计电路结构,画出编程流程框图,选择电路元件,计算确定元件参数,画出实用原理电路图。

二. MCS-51单片机单片机SCM(Single Chip Microcomputer),即Microcontroller,是把微型计算机主要部分都集成在一个芯片上的单芯片微型计算机。

主要包括了微处理器(CPU)、存储器(ROM, RAM)、输入/输出口(I/O口)和定时器/计数器、中断系统等功能部件。

单片机自70年代出现以来,已经有了很大的发展,被广泛应用于机械、测量控制、工业自动化、智能接口和智能仪表等许多领域。

1.MCS-51单片机的引脚图:2. MCS-51单片机的内部结构图:(1)电源引脚Vcc和Vss:Vcc(40脚):电源端,+5伏Vss(20脚):接地端(2)时钟电路引脚XTAL1和XTAL2XTAL1(18脚)和XTAL2(19脚):接外部晶体和微调晶体。

基于STC89C52,DS18B20的电子温度计课设

基于STC89C52,DS18B20的电子温度计课设

正文1.设计内容和要求。

随着社会的进步和工业技术的发展,人们越来越重视温度因素,许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。

在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。

本课题以STC89C52单片机系统为核心,能对多点的温度进行实时巡检。

DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。

本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并通过LCD1602显示当前温度,实现实时温度测量。

2、系统总体结构系统的系统设计方框图如图1-1所示,它主要由三部分组成:①控制部分主芯片采用单片机STC89C52;②显示部分采用LCD1602以动态扫描方式实现温度显示;③温度采集部分的温度传感器采用DS18B20智能温度温度传感器。

DS18B20进行温度采集和转换输出数字型的温度值,然后通过数据引脚传到单片机的P3.7口,单片机通过P2口将数据扫描到LCD1602显示屏上。

图2-13、硬件设计3.1 控制模块本设计采用单片机基于数字温度传感器DS18B20的系统。

单片机STC89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用。

温度传感器DS18B20利用单总线的特点可以方便的实现多点温度的测量,组建传感器网络,且系统的抗干扰性好、设计灵活、方便,而且能在恶劣的环境下进行现场温度检测。

3.2温度采集模块这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。

DS18B20智能温度温度传感器进行温度采集和转换输出数字型的温度值,然后通过数据引脚传到单片机的P3.7口,单片机接受温度并存储。

基于DS18B20--+89C52单片机的数字温度计设计)

基于DS18B20--+89C52单片机的数字温度计设计)

基于DS18B20+89C52单片机的数字温度计设计简介数字温度计是现代生活中常见的电子设备之一,其广泛应用于医疗、环境监测、生产制造等领域。

本文介绍基于DS18B20+89C52单片机的数字温度计设计。

DS18B20是一款高精度数字温度传感器,能够实现0.5℃的温度测量精度,同时具备防水、防腐等特性。

89C52是一款高性能单片机,具备高速计算、高稳定性等特点。

本文将分析DS18B20的原理及使用方法,并结合89C52单片机设计出一款数字温度计。

DS18B20工作原理DS18B20是一种数字温度传感器,内置了AD转换器、数字信号处理器等。

其工作原理为利用其内部的温度传感器测量物体的温度,将温度转换为增量数字量输出,输出端为单总线,同时具备多级地址识别能力,因此可进行多个传感器测温。

DS18B20使用方法1.按照DS18B20的引脚标识将其连接至单总线上;2.DS18B20提供了ROM查询指令,用于查询DS18B20的唯一地址;3.测温需要通过读取DS18B20的EEPROM寄存器得到,读取指令由主控制器发出,DS18B20在收到读取指令后进行温度转换,然后将转换后的温度值存储至EEPROM中;4.读取温度值需要使用读温度命令,该命令由主控制器发出,DS18B20回送温度值。

89C52单片机使用方法89C52是一款AT89C系列单片机,具备丰富的I/O端口、高速时钟、EEPROM等特点。

在使用89C52进行数字温度计设计时,需要进行以下操作: 1.通过端口设定进行DS18B20的唤醒和读温度操作; 2. 通过定时器进行延时操作,调整温度传感器的读取时间; 3. 将温度值加以整型处理并显示。

数字温度计设计数字温度计的设计需要综合考虑到DS18B20的特性以及89C52单片机的能力和特点。

下面是数字温度计的设计实现过程: 1. 连接DS18B20至89C52单片机的I/O口; 2. 设计读取DS18B20的温度值程序; 3. 设计处理温度值的程序,并将其显示至数码管上; 4. 加入延时程序,以保障温度读取的准确性和稳定性。

基于STC89C52、DS18B20的电子温度计电子设...

基于STC89C52、DS18B20的电子温度计电子设...

一、课题介绍本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机STC89C52,,四位共阴极数码管一个,电容电阻若干。

传感器采用美国DALLAS半导体公司生产的智能温度传感器DS18B20,支持“一线总线”接口,测量温度范围-55°C~+125°C。

在-10~+85°C范围内,精度为±0.5°C。

最高分辩率可达0.0625。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。

根据设计要求,本次数字温度计的设计共分为五部分,主控制器,电源,LED 显示部分,传感器部分,复位部分,时钟电路。

主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路。

测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。

本设计能完成的温度测量范围是-55°C~+128°C,精度为0.1°C,支持温度正负提示,软件预设上限温度50°C,下限温度0°C,并支持硬件手动配置温度上下限,超过此上下限即实现报警功能。

二、方案论证方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,温度感应电路比较麻烦。

方案设计框图如下:方案二:使用温度传感器,可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。

基于STC89C52单片机的数字温度计_单片机课程设计 精品

基于STC89C52单片机的数字温度计_单片机课程设计 精品

单片机课程设计报告基于STC89C52单片机的数字温度计I摘要随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于STC89C52单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。

实验结果表明,DS18B20与STC89C52结合可以实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。

关键词:温度检测;单片机;数字温度传感器;温度采集;IIAbstractWith the progress and development of this epoch ,Single-chip Microcomputer (SCM ) technology has spread into various fields ---our lives ,work ,scientific researches and so on ,becoming a comparatively mature technology .This article was mainly written to introduce a temperature measurement system(TMS ) based on STC89C52 SCM .It’s with a detailed description of the development progress of TMS using digital temperature sensor ,putting emphasis on analyzing the hardware connection of the sensor under the SCM ,software programming and each module progress .This system can conveniently achieve the temperature data collection and display ,and can be arbitrarily set upper and lower alarm temperature .It’s quite easy to use ,with high accuracy ,wide range ,high sensitivity ,small size ,low power dissipation ,etc .Thus ,it’s suitable for our daily life and industrial and agricultural production’s temperature measurement ,and also can be used as temperature processing modules embedded in other systems ,as an auxiliary expansion of other main systems .Experimental results show that ,the integration of DS18B20 and STC89C52 can achieve the simplest TMS ,which has simple structure ,strong anti-jamming capability ,suitable for conducting in-situ temperature measurement ,all above leading this to have broad prospects of applications .Keywords:T emperature measurement ; Single-chip Microcomputer (SCM ) ; Digital Temperature sensor; Temperature data collectionIII目录摘要 (II)Abstract (III)第1章绪论 (1)1.1 背景 (1)1.2 数字温度计的设计目的 (1)1.3 本文研究的意义 (1)第2章系统硬件选择 (1)2.1 单片机的选择 (2)2.1.1 STC89C52单片机的性能介绍 (2)2.1.2 STC89C52单片机引脚图 (2)2.2. 温度传感器的选择 (4)2.2.1 DS18B20 介绍 (4)第3章原理分析 (6)3.1原理框图 (6)3.2原理分析 (6)第4章系统的硬件电路设计 (7)4.1 显示电路 (7)4.2报警电路 (7)4.3 数字温度传感器 (7)4.4单片机最小系统电路 (8)4.5数字温度计的实物图 (8)4.6系统板上硬件连线 (9)第5章系统的软件设计 (10)5.1 程序流程图 (10)5.2元件清单及程序代码 (11)第6章实验数据分析 (14)6.1 proteus仿真图 (14)6.2系统调试与分析 (14)结论 (15)参考文献 (16)附录1 (17)附录2 (18)致谢 (26)项目创新及特色 (27)IV第1章绪论1.1 背景在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。

基于STC89C52单片机的LED温度计设计说明

基于STC89C52单片机的LED温度计设计说明

目录1.、设计的任务与要求 (2)1.1系统设计背景 (2)1.2理论基础 (2)2、总体设计和系统框图 (2)2.1温度采集模块 (3)2.2温度显示模块 (3)3、设计方案 (3)3.1硬件设计 (3)3.1.1供电电路设计 (4)3.1.4温度采集模块设计 (4)3.1.5显示电路 (5)3.2软件设计 (5)3.2.1 DS18B20的读写时序 (5)3.2.2程序流程图 (7)4、硬件原理图 (8)5、系统仿真和调试 (8)6、结果分析 (14)7、设计总结和体会 (14)8、参考文献 (15)摘要设计中采用51系列单片机和DS18B20温度传感器,实现数字温度测量,用数码管把温度实时显示出来,温度以两位整数位和一位小数位的形式显示。

本系统主要包括供电模块、单片机最小系统模块、DS18B20温度采集模块和LED数码管显示模块。

关键词:51单片机 DS18B20 LED1.、设计的任务与要求1.1系统设计背景温度测量是从金属(物质)的热胀冷缩开始,常用的检测方法有电阻式、热电偶式、PN结型、辐射型、光纤式及石英谐振型等。

这些检测方法都是基于温度变化引起其物理参数(如电阻值,热电势等)变化的原理。

随着大规模集成电路工艺的提高,出现了多种集成的数字化温度传感器。

传统的水银温度计和热电偶等,存在测量不方便、精度低、采集和传输较复杂等缺点,用LED数码管实时显示温度,具有更高的智能性和直观性。

1.2理论基础设计出符合要求的温度计,首先需要了解DS18B20温度传感器的构造、接线、信息沟通,要较好的掌握51系列单片机的使用以及硬件搭建,LED数码管的显示原理以及与单片机的连接。

2、总体设计和系统框图包括方案比较、方案论证、方案选择(以方框图的形式给出各方案,并简要说明)为了以数字的形式来显示采集的温度我们需要以一个单片机来处理数据,由于对单片机的性能要求不是很高,我们采用51系列单片机来处理数据,系统总体方框图如图1。

基于STC89C52单片机的温度控制电路设计说明

基于STC89C52单片机的温度控制电路设计说明

基于温度传感器的单片机温控电路设计一、设计分析在各行业中广泛应用的温度控制器及仪器仪表主要具有如下的特点:一是在复杂的温度控制系统中能够适应于大惯性、大滞后的控制;二是在受控系统数学模型难以建立的情况下,得到控制;三是在受控系统中,能够被控制过程很复杂且参数时变的温度控制系统控制;五是温度控制系统普遍具有参数自检功能,借助计算机技术,能控制对象和参数,并且具有特性进行自动调整的功能等特点[1]。

本次电子工艺实训旨在练习实用单片机系统的设计与安装,掌握典型51系列单片机最小系统及外围电路设计、常用电子元器件的识别、万用板焊接电路的方法、巩固常用电子仪表测量与调试电路参数的方法,培养创新实践动手能力,为下学期单片机、电子系统设计等课程奠定理论和实践基础。

具体要求如下:1.自行设计以STC89C52RC40单片机为控制核心的实用单片机控制系统的硬件电路,实现至少一个环境参量信息采集、数值显示、报警功能。

2.根据设计,利用万用板焊接硬件电路,并做简单调试。

3.要求模块化设计,单片机最小系统模块、显示模块、信息采集报警模块、键盘模块,主要贵重器件用排座插接,电阻、电容、按键等元器件要求布局合理、排列整齐,无虚焊。

二、设计方案本文设计是以单片机为核心,实现温度实时测控和显示。

确定电路中的一些主要参数,了解温度控制电路的结构,工作原理,对该控制电路性能进行测试。

具体设计方案:(1)本设计是用来测控温度的,可以利用热敏电阻的感温效应,将被测温度变化的模拟信号,电压或电流的采集过来,首先进行放大和滤波后,再通过A/D 转换,将得到的数字量送往单片机中去处理,用数码管将被测得的温度值显示出来。

但是这种电路的设计需要用到放大滤波电路,A/D转换电路,感温电路等一系列模拟电路,设计起来较麻烦[2]。

(2)本设计采用单片机做处理器,可以考虑使用温度传感器,采用由达拉斯公司研制的DS18B20型温度传感器,此传感器可以将被测的温度直接读取出来,并进行转换,这样就很容易满足设计要求。

基于STC89C52的温度采集系统设计

基于STC89C52的温度采集系统设计

基于STC89C52的温度采集系统设计文章提出了一种基于STC89C52单片机的温度采集系统设计方案,该方案通过STC89C52单片机控制DS18B20温度传感器来采集温度,测量现场利用LED 数码管显示实时温度值,并采用RS-232串口作为单片机与计算机的数据通信接口。

系统设计完成后,既可以准确测量温度,又解决了通讯距离问题。

此方案已在某些领域得到应用。

标签:单片机;温度采集;串口通讯;STC89C521 概述温度采集是包含温度信号检测、信号处理、数据通信等相结合的综合应用技术。

在现代工业控制中是指将温度的模拟量信号通过传感器做适当变换后,再经过信号调理、数据量化、数据编码等步骤将之转换为数字信号,并通过数据通讯传给PC机进行进一步处理的过程。

2 系统构成2.1 系统硬件电路构成温度采集系统以单片机为核心,集温度的采集、信号处理、数据显示、无线传输、串口通讯为一体。

硬件组成包括单片机STC89C52、温度传感器DS18B20、PC机组成。

其原理框图见图1。

此系统仅利用一片单片机,通过采集温度传感器的测量数据,经单片机处理后通过LED显示屏显示当前实时温度,并将数据通过RS232串口通讯送至计算机,再通过计算机对收到的数据进行进一步处理。

2.2 单片机组成单片机采用STC89C52 单片机,该单片机完全兼容MCS-51 系列单片机的所有功能,支持在线下载,自带2K的存储器,是单片机中最典型的产品,具有功耗低、性能高等特点,它是采用CHMOS工艺的8位单片机。

单片机内部有FLASH程序存储器,可通过在线方式对其编程调试,极大的方便了开发人员。

2.3 温度传感器组成温度传感器直接采用数字式温度传感器DS18B20,是美国国家半导体公司推出的一种数字化单总线器件,与传统的PTC、NTC等热敏电阻相比,它能够直接测出温度,属于可直接适配微处理器的智能温度传感器。

传感器可通过单总线向DS18B20 供电,无需外接电源。

基于STC89C52单片机的温度控制电路设计

基于STC89C52单片机的温度控制电路设计

本科生毕业论文(设计)题目:基于温度传感器的单片机温控电路设计系部电子信息工程学院学科门类工学专业电子信息工程学号**********姓名徐晓龙指导教师万丽娟2012年5月18日基于温度传感器的单片机温控电路设计摘要随着微处理器和大规模集成电路的发展,及其在测试控制技术方面的广泛应用,仪器设备的智能化已成为自动化技术发展方向,数据采集与温度检测的自动化将取代传统的方法。

本设计采用STC89C52型号的单片机,数字温度传感器采用美国DALASS公司的1–Wire器件DS18B20,即单总线器件DS18B20,与单片机组成一个测温系统,当系统上电时,温度传感器就会读出当前环境的温度,并在LED数码显示管上显示出当前的温度,该测温系统的测温范围为-40℃~110℃,按此要求设计硬件和软件以实现这一功能。

关键词:单片机温度传感器DS18B20测量电子线路温度ABSTRACTAlong with the microprocessor and large scale integrated circuit, and in the test control technology is widely used, and the intelligent instrument and equipment has become automation technology development direction, data acquisition and temperature automatic testing would replace the traditional method.This design uses the STC89C52 type of single chip microcomputer, digital temperature sensor using the American DALASS company 1-Wire device DS18B20, namely single bus device DS18B20, and consists of a single chip microcomputer temperature measurement system, when the system is powered on, temperature sensors will read the current environment temperature, and in display tube LED digital showed on the current temperature, the temperature measurement system of measuring temperature range for 40 ℃~110 ℃-according to this design requirement for hardware and software to achieve this function.Keywords:single chip microcomputer temperature sensor DS18B20 measurement circuit temperature目录一绪论 (1)1.1课题研究背景及意义 (1)1.2国内外研究现状 (1)1.3研究内容 (2)二系统硬件设计 (3)2.1总体设计方案 (3)2.1.1 设计思路 (3)2.1.2设计方框图 (3)2.2单片机介绍 (3)2.2.1 STC单片机结构介绍 (4)2.2.2 STC单片机引脚介绍 (6)2.3 DS18B20数字温度传感器介绍 (8)2.3.1功能介绍 (8)2.3.2内部存储器介绍 (9)2.4 显示模块设计 (11)2.4.1 LED数码管结构 (12)2.4.2 共阳数码管数字编码 (12)2.5按键电路的设计 (13)2.5.1判键及其接口电路设计 (13)2.5.2键盘的工作方式 (13)2.6报警装置电路设计 (14)2.7系统整体硬件电路 (15)三系统软件设计 (16)3.1温度控制系统原理框图 (16)3.1.1 读温度子程序 (17)3.1.2温度转换子程序 (17)3.1.3计算温度子程序 (18)3.1.4温度显示子程序 (19)四总结与展望 (20)参考文献 (21)附录 (22)一绪论1.1课题研究背景及意义目前温度控制系统在很多场合都得到广泛的应用,因此在国内外发展非常迅速,并在智能化、环境自适应、参数自动调整等方面取得显著成果。

基于STCCDSB的电子温度计课设

基于STCCDSB的电子温度计课设

正文1.设计内容和要求。

随着社会的进步和工业技术的发展,人们越来越重视温度因素,许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。

在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。

本课题以STC89C52单片机系统为核心,能对多点的温度进行实时巡检。

DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。

本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并通过LCD1602显示当前温度,实现实时温度测量。

2、系统总体结构系统的系统设计方框图如图1-1所示,它主要由三部分组成:①控制部分主芯片采用单片机STC89C52;②显示部分采用LCD1602以动态扫描方式实现温度显示;③温度采集部分的温度传感器采用DS18B20智能温度温度传感器。

DS18B20进行温度采集和转换输出数字型的温度值,然后通过数据引脚传到单片机的口,单片机通过P2口将数据扫描到LCD1602显示屏上。

图2-13、硬件设计控制模块本设计采用单片机基于数字温度传感器DS18B20的系统。

单片机STC89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用。

温度传感器DS18B20利用单总线的特点可以方便的实现多点温度的测量,组建传感器网络,且系统的抗干扰性好、设计灵活、方便,而且能在恶劣的环境下进行现场温度检测。

温度采集模块这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。

DS18B20智能温度温度传感器进行温度采集和转换输出数字型的温度值,然后通过数据引脚传到单片机的口,单片机接受温度并存储。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

正文1.设计内容和要求。

随着社会的进步和工业技术的发展,人们越来越重视温度因素,许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。

在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。

本课题以STC89C52单片机系统为核心,能对多点的温度进行实时巡检。

DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。

本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并通过LCD1602显示当前温度,实现实时温度测量。

2、系统总体结构系统的系统设计方框图如图1-1所示,它主要由三部分组成:①控制部分主芯片采用单片机STC89C52;②显示部分采用LCD1602以动态扫描方式实现温度显示;③温度采集部分的温度传感器采用DS18B20智能温度温度传感器。

DS18B20进行温度采集和转换输出数字型的温度值,然后通过数据引脚传到单片机的P3.7口,单片机通过P2口将数据扫描到LCD1602显示屏上。

图2-13、硬件设计3.1 控制模块本设计采用单片机基于数字温度传感器DS18B20的系统。

单片机STC89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用。

温度传感器DS18B20利用单总线的特点可以方便的实现多点温度的测量,组建传感器网络,且系统的抗干扰性好、设计灵活、方便,而且能在恶劣的环境下进行现场温度检测。

3.2温度采集模块这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。

DS18B20智能温度温度传感器进行温度采集和转换输出数字型的温度值,然后通过数据引脚传到单片机的P3.7口,单片机接受温度并存储。

DS18B20是美国DALLAS半导体公司最新推出的一种单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,它可将温度信号直接转换为数字信号,实现了与单片机的直接接口,从而省去了信号调理和A/D转换等复杂模/数转换电路。

DS18B20构成的温度采集模块电路简单、功能可靠、测量效率高,很好地弥补了传统温度测量方法的不足可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。

它具有集成度高、模拟输入数字输出、抗干扰能力强、体积小、接口方便、传输距离远测温误差小等特点。

如图3-1.图3-13.3温度显示模块本课程设计的显示模块采用LCD1602液晶显示器显示温度数据,整数进行显示,从P0口送数,P2口扫描。

显示当前测量的温度。

3.4电源220V的交流变压器经过变压器转换成10V的交流电,经过整流电路得到5V 的直流电,供给电路使用。

4软件设计按照硬件设计中的模块划分,软件设计业可分为三部分:DS18B20模块程序设计,LCD1602驱动程序设计,单片机主程序设计。

其中前两部分是本例软件设计的关键,而相比较,主程序设计则比较简单。

下面分别为主程序流程图,DS18B20流程图和LCD1602液晶模块程序流程图。

如图4-1.4.1单片机主程序图4-14.2 DS18B20模块程序设计在主程序流程图中,先初始化液晶模块,然后延时几百微秒,进入While 循环,先初始化DS18B20,然后启动温度转换,读取转换后的温度值,并进行处理,最终将温度显示在LCD屏幕上。

DS18B20是1-wire单线器材,即在一根数据线上实现数据的双向传输,这就需要严格的通信协议来保证各位数据传输的正确性和完整性。

单片机操作单线器材DS18B20的流程图如图4-2所示。

图4-2首先DS18B20初始化。

复位DS18B20,然后单片机等待DS18B20的应答脉冲,一旦单片机监测到应答脉冲,变发起跳过ROM匹配操作命令。

成功执行了ROM 操作命令后,就可以使用内存操作命令,启动温度转换,延时一段时间后,等待温度转换完成。

再发起跳过ROM匹配操作命令,然后读暂存器,将转换结果读出,并转换为显示码,送液晶显示。

需要注意的是:复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

4.3 LCD1602驱动程序设计用LCD1602液晶显示模块显示字符或字符串之前必须对其进行初始化,LCD1602液晶显示模块的初始化程序流程图如图4-3所示。

图4-3上电复位以后,延时15ms,写3次38H指令,写指令前不监测忙标志位。

当3次写38H指令完成后,开始进行显示模式设置操作,此时必须先监测忙标志位,只有当其为空闲时,才能进行显示模式设置。

伺候依次为显示关闭。

显示清屏,显示光标移动设置和显示开关及光标设置。

同写显示模式设置一样,每次写之前,都必须先检测忙标志位。

5,系统调试5.1综述单片机应用系统的硬件调试和软件调试是分不开的.许多硬件故障只有通过软、硬件联调才能发现,但一般是先排除系统中比较明显的硬件故障后才和软件一起联调。

常见的硬件故障.5.2常见问题逻辑错误样机硬件的逻辑错误是由于设计错误和加工过程中的工艺错误而造成的,包括错线、开路、短路、相位错误、时序错误等,其中最常见的是短路故障。

2元器件错误元器件错误的原因有器件损坏或性能不符合要求,电解电容、二极管的极性接反或集成块装反等。

3可靠性差应用系统可靠性差的原因很多,如金属化孔、接插件接触不良、内部和外部的干扰、电压纹波系数过大、器件负载过重等均会造成系统的可靠性差。

另外,走线和布置的不合理也会造成系统可靠性差。

4电源故障电源故障包括:电压值不符合设计要求、电源功率不足、负载能力差、纹波太重等。

5.3.硬件调试力法(1)脱机调试脱机调试是在加电前,先用万用表等工具,按图纸仔细核对样机线路是否正确,并对元器件的安装、型号、规格等进行仔细检查,特别注意印制板加工和焊接时有无走线之间相互短路等。

(2)联机调试联机前先切断电源,把仿真插头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。

一切正常后,即可打开电源。

通电后执行开发机读/写指令,对用者样机的存储器I/O口进行读/写操作,进行逻辑检查。

若有故障,可用示波器观察有关点的波形,寻找和分析故障原因,并进一步排除故障。

在用者系统的样机(主机部分)调试好后,便可按入用者系统的其它外围部件,如键盘、显示器等,再进一步进行调试。

5.4软件调试方法:软件调试与所选用的软件结构有关,如果采用模块程序设计技术,则逐个模块调好后再进行系统程序总调。

如果采用实时多任务操作系统,一般是逐个任务进行调试。

对于模块结构程序.要一个个子程序分别调试。

调试时,一定要符合入口条件和出口条件,调试可用单步运行和断点运行方式,通过检查用者系统的CPU现场情况、 RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求,有无循环错误、有无机器码错误以及转移地址的错误,同时,还可以发现用者系统中存在的硬件设计错误和软件算法错误。

各程序模块通过后,则可以把相关功能块连在一起进行总调。

这个阶段若有故障,可以考虑各子程序运行时是否破坏了现场,缓冲单元、工作寄存器是否发生冲突,标志位的建立和清除是否有误,堆栈区是否有溢出,输入设备的状态是否正常等等,若用者系统是在开发机的监控程序下运行时,还要考虑用者缓冲单元是否和监控程序的工作单元发生冲突。

单步和断点调试后,还应进行连续调试,用以确定定时精度、CPU的实时响应等问题。

对于实时多任务操作系统的调试方法和模块结构的调试方法类似,只是需逐个任务进行调试,在调试某一个任务时,同时也调试相关的子程序、中断服务程序。

逐个任务调试好后,再使各个任务同时运行。

当全部调试和修改完成后,将用者程序固化到EPROM中,插入用者样机后,用者系统即能独立工作,至此,单片机应用系统研制完成。

6,设计小结本设计使用的温度控制器结构简单、测温准确,具有一定的实际应用价值。

该智能温度控制器只是DS18B20在温度控制领域的一个简单实例,还有许多需要完善的地方,例如可以将测得的温度通过单片机与通讯模块相连接,以手机短消息的方式发送给用户,使用户能够随时对温度进行监控。

此外,还能广泛地应用于其他一些工业生产领域,如建筑,仓储等行业。

本温度控制系统可以应用于多种场合,像花房的多点温度、育婴房的温度、水温的检测与控制。

用户可灵活选择本设计的用途,有很强的实用价值。

由衷感谢我们的老师,教予了我诸多传感器的理论知识。

指导了我顺利的独立地完成了这一次的课程设计。

期间,让我学到了许多在实践中需注意的问题。

怎样思考问题,然后如何去收集整理资料。

再次特别感谢庄老师对我们的帮助,以及平日对我们的谆谆教诲。

7:参考文献及资料[1]肖洪兵. 跟我学用单片机[M]北京:北京航空航天大学出版社,2002.8[2] 何立民. 单片机高级教程.第1版[M]北京:北京航空航天大学出版社,2001[3]赵晓安. MCS-51单片机原理及应用[m] 天津:天津大学出版社,2001.3[4]李广第.单片机基础.第1版[M]北京:北京航空航天大学出版社,1999[5]徐惠民、安德宁.单片微型计算机原理接口与应用[M] 第1版.北京:北京邮电大学出版社,1996[6]何立民.从Cygnal 80C51F看8位单片机发展之路[J] 单片机与嵌入式系统应用,2002年,第5期:P5~8[7]常敏,51单片机应用程序开发与实践[ M] 电子工业出版社 2009.3四,附录1)元器件清单2)原理图3)程序清单#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P3^7;//ds18b20与单片机连接口sbit RS=P3^0;sbit RW=P3^1;sbit EN=P3^2;unsigned char code str1[]={"temperature: "};unsigned char code str2[]={" "};uchar data disdata[5];uint tvalue;//温度值uchar tflag;//温度正负标志/*************************lcd1602程序**************************/ void delay1ms(unsigned int ms)//延时1毫秒(不够精确的){unsigned int i,j;for(i=0;i<ms;i++)for(j=0;j<100;j++);}void wr_com(unsigned char com)//写指令//{ delay1ms(1);RS=0;RW=0;EN=0;P2=com;delay1ms(1);EN=1;delay1ms(1);EN=0;}void wr_dat(unsigned char dat)//写数据//{ delay1ms(1);;RS=1;RW=0;EN=0;P2=dat;delay1ms(1);EN=1;delay1ms(1);EN=0;void lcd_init()//初始化设置//{delay1ms(15);wr_com(0x38);delay1ms(5);wr_com(0x08);delay1ms(5);wr_com(0x01);delay1ms(5);wr_com(0x06);delay1ms(5);wr_com(0x0c);delay1ms(5);}void display(unsigned char *p)//显示// {while(*p!='\0'){wr_dat(*p);p++;delay1ms(1);}}init_play()//初始化显示{ lcd_init();wr_com(0x80);display(str1);wr_com(0xc0);display(str2);}/******************************ds1820程序***************************************/void delay_18B20(unsigned int i)//延时1微秒{while(i--);}void ds1820rst()/*ds1820复位*/{ unsigned char x=0;DQ = 1; //DQ复位delay_18B20(4); //延时DQ = 0; //DQ拉低delay_18B20(100); //精确延时大于480usDQ = 1; //拉高delay_18B20(40);}uchar ds1820rd()/*读数据*/{ unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){ DQ = 0; //给脉冲信号dat>>=1;DQ = 1; //给脉冲信号if(DQ)dat|=0x80;delay_18B20(10);}return(dat);}void ds1820wr(uchar wdata)/*写数据*/ {unsigned char i=0;for (i=8; i>0; i--){ DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata>>=1;}}read_temp()/*读取温度值并转换*/{uchar a,b;ds1820rst();ds1820wr(0xcc);//*跳过读序列号*/ds1820wr(0x44);//*启动温度转换*/ds1820rst();ds1820wr(0xcc);//*跳过读序列号*/ds1820wr(0xbe);//*读取温度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a;if(tvalue<0x0fff)#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P3^7;//ds18b20与单片机连接口sbit RS=P3^0;sbit RW=P3^1;sbit EN=P3^2;unsigned char code str1[]={"temperature: "};unsigned char code str2[]={" "};uchar data disdata[5];uint tvalue;//温度值uchar tflag;//温度正负标志/*************************lcd1602程序**************************/ void delay1ms(unsigned int 1ms)//延时1毫秒(不够精确的){unsigned int i,j;for(i=0;i<ms;i++)for(j=0;j<100;j++);}void wr_com(unsigned char com)//写指令//{ delay1ms(1);RS=0;RW=0;EN=0;P2=com;delay1ms(1);EN=1;delay1ms(1);EN=0;}void wr_dat(unsigned char dat)//写数据// { delay1ms(1);;RS=1;RW=0;EN=0;P2=dat;delay1ms(1);EN=1;delay1ms(1);EN=0;}void lcd_init()//初始化设置//{delay1ms(15);wr_com(0x38);delay1ms(5);wr_com(0x08);delay1ms(5);wr_com(0x01);delay1ms(5);wr_com(0x06);delay1ms(5);wr_com(0x0c);delay1ms(5);}void display(unsigned char *p)//显示//{while(*p!='\0'){wr_dat(*p);p++;delay1ms(1);}}init_play()//初始化显示{ lcd_init();wr_com(0x80);display(str1);wr_com(0xc0);display(str2);}/******************************ds1820程序***************************************/void delay_18B20(unsigned int i)//延时1微秒{while(i--);}void ds1820rst()/*ds1820复位*/{ unsigned char x=0;DQ = 1; //DQ复位delay_18B20(4); //延时DQ = 0; //DQ拉低delay_18B20(100); //精确延时大于480us DQ = 1; //拉高delay_18B20(40);}uchar ds1820rd()/*读数据*/{ unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){ DQ = 0; //给脉冲信号dat>>=1;DQ = 1; //给脉冲信号if(DQ)dat|=0x80;delay_18B20(10);}return(dat);}void ds1820wr(uchar wdata)/*写数据*/{unsigned char i=0;for (i=8; i>0; i--){ DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata>>=1;}read_temp()/*读取温度值并转换*/{uchar a,b;ds1820rst();ds1820wr(0xcc);//*跳过读序列号*/ds1820wr(0x44);//*启动温度转换*/ds1820rst();ds1820wr(0xcc);//*跳过读序列号*/ds1820wr(0xbe);//*读取温度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a;if(tvalue<0x0fff)tflag=0;else{tvalue=~tvalue+1;tflag=1;}tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数return(tvalue);}/****************************************************************void ds1820disp()//温度值显示{ uchar flagdat;disdata[0]=tvalue/1000+0x30;//百位数disdata[1]=tvalue%1000/100+0x30;//十位数disdata[2]=tvalue%100/10+0x30;//个位数disdata[3]=tvalue%10+0x30;//小数位if(tflag==0)flagdat=0x20;//正温度不显示符号elseflagdat=0x2d;//负温度显示负号:-if(disdata[0]==0x30){disdata[0]=0x20;//如果百位为0,不显示if(disdata[1]==0x30){disdata[1]=0x20;//如果百位为0,十位为0也不显示}}wr_com(0xc0);wr_dat(flagdat);//显示符号位wr_com(0xc1);wr_dat(disdata[0]);//显示百位wr_com(0xc2);wr_dat(disdata[1]);//显示十位wr_com(0xc3);wr_dat(disdata[2]);//显示个位wr_com(0xc4);wr_dat(0x2e);//显示小数点wr_com(0xc5);wr_dat(disdata[3]);//显示小数位}/********************主程序***********************************/ void main(){ init_play();//初始化显示delaynms(100);while(1){read_temp();//读取温度ds1820disp();//显示}}4)实物图五:任务书二级学院:电子信息与电气工程学院班级: 11电卓姓名:翟俊先学号: 11060328指导教师:庄志红职称:副教授。

相关文档
最新文档