当前位置:文档之家› 数字温度计的设计

数字温度计的设计

数字温度计的设计【摘要】本文将介绍一种基于单片机控制的数字温度计,就是用单片机实现温度测量,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。

本次采用DS18B20数字温度传感器来实现基于AT89S52单片机的数字温度计的设计用LCD数码管以串口传送数据,实现温度显示,能准确达到以上要求,可以用于温度等非电信号的测量,主要用于对测温比较准确的场所,或科研实验室使用,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。

【关键词】关键词1温度计;关键词2单片机;关键词3数字控制;关键词4DS1620目录第一章绪论 (2)1.1 前言 (3)1.2 数字温度计设计方案 (3)1.3 总体设计框图 (3)第二章硬件电路设计............................ 错误!未定义书签。

2.1 主要芯片介绍 (5)2.1.1 AT89C51的介绍 (5)2.1.2 AT89C51各引脚功能介绍 (5)2.2 温度传感器 (7)2.2.1 DS1620介绍 (7)第三章软件设计................................ 错误!未定义书签。

3.1 主程序流程图 (11)3.4 计算温度子程序流程图 (13)3.5 显示数据刷新子程序流程图 (13)第四章 Proteus仿真调试......................... 错误!未定义书签。

4.1 Proteus软件介绍 (15)4.2 Proteus界面介绍 (16)4.2.1 原理图编辑窗口 (18)4.2.2 预览窗口 (23)4.2.3 模型选择工具栏 (31)4.2.4 元件列表 (35)4.2.5 方向工具栏 (37)4.2.6 仿真工具栏 (38)4.3 本次设计仿真过程 (39)4.3.1 创建原理图 (40)设计总结 (50)结论 (57)参考文献 (59)致谢 (62)附录 (72)1 1.1前言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,单片机已经在测控领域中获得了广泛的应用本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,该设计控制器使用单片机AT89C51,测温传感器使用DS1620,用LCD数码管以串口传送数据,实现温度显示,能准确达到以上要求。

1.2数字温度计设计方案在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS1620,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

1.3总体设计框图温度计电路设计总体设计方框图如图1.1所示,控制器采用单片机AT89C51,温度传感器采用DS1620,用LCD液晶显示屏以串口传送数据实现温度显示:图1.1 总体设计方框图22.1 主要芯片介绍2.1.1 AT89C51的介绍选用的AT89C51在功能上最突出是的可以实现在线的编程。

用于实现系统的总的控制。

其主要功能特性列举如下:·与MCS-51 兼容·4K字节可编程FLASH存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.1.2 AT89C51各引脚功能介绍VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时, ALE只有在执行MOVX,MOVC 指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE 禁止,置位无效。

/PSEN:外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度AT89C51引脚图2.2 温度传感器2.2. 1 DS1620介绍DS1620是Dallas公司推出的数字温度测控器件。

2.7~ 5.0V供电电压,测量温度范围为-55~+125℃,9位数字量表示温度值,分辨率为0.5℃。

在0~+70℃精确度为0.5℃,-40~0℃和+70~+85℃精确度为1℃,-55~-40℃和+85~ +125℃精确度为2℃。

TH和TL寄存器中的温度报警限设定值存放在非易失性存储器中,掉电后不会丢失。

通过三线串行接口,完成温度值的读取和TH、TL的设定。

DS1620的外围接线简单,使用灵活。

使用时请注意它的测量范围及精度能否满足要求。

用作热继电器使用时必须写入控制寄存器操作模式和TH、TL寄存器的温度设定值。

2.2.2 DS1620引脚功能说明DS1620采用8脚DIP封装或8脚SOIC封装。

引脚排列如图1所示,引脚功能说明如下所列。

DS1620引脚功能说明1.DQ三线制的数据输入/输出2.CLK/CONV三线制的时钟输入和标准转换输入3.RST三线制的复位输入4.GND地5.TCOM温度高/低限触发输出6.TLOW温度低限触发输出7.THIGH温度高限触发输出8.VDD3~5V电源2.3主板电路系统整体硬件电路包括,传感器数据采集电路,温度显示电路,单片机主板电路等,如图2.5 所示:2.4 显示电路显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p2口串口的发送和接收,LCD液晶显示屏显示,显示比较清晰。

温度显示电路如图2.2所示:图2.2 温度显示电路3系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。

3.1 主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS1620的测量的当前温度值,温度测量每1s进行一次。

这样可以在一秒之内测量一次被测温度,其程序流程见图3.1示:图3.1 主程序流程图3.2读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。

其程序流程图如图3.2所示:图3.2 温度子程序流程图3.3 温度转换命令子程序流程图温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。

温度转换命令子程序流程图如上图,图3.3所示:图3.3 温度转换命令子程序流程图3.4 计算温度子程序流程图计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图3.4所示:图3.4 温度子程序流程图3.5 显示数据刷新子程序流程图显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。

相关主题