基于单片机的数字温度计设计(附代码及仿真)
基于单片机控制的简易数字温度计的设计
目录一、设计要求 (4)二、设计方案和论证 (4)1.总设计原理图 (4)2 .元器件清单 (5)3、各部分功能实现 (5)4、STC89C52单片机介绍 (5)5、上电按钮复位电路 (8)6、晶振电路 (8)7.下载端口 (8)8、1602A液晶显示器 (10)9、时钟显示校正电路 (12)10、蜂鸣器电路 (12)11、外接电源电路 (13)12、总电路原理图 (14)13、程序流程图 (15)三、设计总结 (15)1 实验中遇到的问题及解决方法 (15)2 设计体会 (16)四、参考文献 (16)一、 设计要求1、准确计时,以数字形式显示时、分、秒的时间。
2、小时以24小时计时形式,分秒计时为60进位。
3、校正时间功能(即调整时间)4、闹钟功能。
5、整点报时。
6、总结检验电路设计结果二、 设计方案和论证本次设计时钟电路,使用了ATC89C52单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用C 语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、显示屏即可满足设计要求。
1、 总设计原理框图如下图所示:2、元器件清单3(1)单片机发送的信号通过程序控制最终在数码管上显示出来。
(2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。
(3)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正液晶显示器上显示的时间。
(5)单片机通过控制闹铃电路来完成定时闹钟的功能。
4、STC89C52单片机介绍STC89C52单片机是由深圳宏晶公司代理销售的一款MCU,是由美国设计生产的一种低电压、高性能CMOS 8位单片机,片内含8kbytes的可反复写的FlashROM和128bytes的RAM,2个16位定时计数器[5]。
STC89C52单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0~P3、定时器/计数器、串行I/O接口以及定时控制逻辑电路等。
基于单片机的数字温度计设计_课程设计(仿真+C程序))
基于单片机的数字温度计设计_课程设计(仿真+C程序))前言科技发展到今天,人们的生活中涌现出各种各样的科技产品,各种各样的电子产品更是花样百出、遍及人们生活中的每一部分,现在人们更是感觉到了科技给人们带来的巨大发展,科学技术作为第一生产力在人类社会的发展中起了很大的推动作用,人类从原始向先进的发展都伴随着科学的发展。
当今微型计算机技术发展形成两大分支,一是以微处理器(Micro Processor Unit)为核心所构成的通用微机系统,主要用于科学计算、数据处理、图形图像处理、数据库管理、人工智能、数字模拟与仿真等领域。
另一分支是为控制器( Micro Controller Unit),俗称单片机。
单片机主要用于工业测控,如家用电器、计算机外围设备、工业智能化仪表、机器人、生产过程的自动控制、农业、化工、军事、航空航天等领域。
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片机也被称为微控制器(Microcontroller Unit),常用英文字母的缩写MCU 表示单片机,它最早是被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。
摘要:单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
基于STC89C52单片机的数字温度计(附源代码,完美实现)
基于STC89C52单片机的数字温度计学院:信息科学与工程学院专业:电子信息科学与技术一、摘要温度的检测是工业生产中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型数字温度传感器实现对温度的测试与控制得到更快的开发。
本文设计了一种基于STC89C52单片机的温度检测系统,该系统将温度传感器DS18B20接在控制器的端口上,对温度进行采集,将采集到的温度值显示在1602液晶屏上。
经实验测试表明,该系统设计和布线简单,结构紧凑,有可读性高,反应速度快,测量准确,抗干扰能力强,性价比高,扩展方便等优点,具有关阔的应用前景。
关键词:STC89C52 数字温度计 DS18B20二、前言随着人民生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,其中数字温度计就是一个典型的例子。
单片机控制温度检测系统的温感系统主要是DS18B20芯片,该芯片由一根总线控制,电压范围为3.0v--5.5v。
DS18B20具有测温方便、测温范围广、测温精度高等特点。
出于对此类问题的探索,我们设计并制作了此温度检测系统。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确。
其输出温度采用数字显示,主要用于对测温比较准确的场所,该设计控制器模块主要使用STC89C52单片机,测温传感模块使用DS18B20;显示模块使用1602液晶显示屏,可以只管、准确的显示所测温度值。
三、系统组成及工作原理3.1、总体设计方案经分析,将系统分为两个部分,一个是由温度传感器DS18B20组成的检测部分,另一个是由单片机和1602液晶组成的主控与显示部分。
如图所示DS18B20将检测到的数据送到单片机,单片机对接收到的数据进行处理并送到1602显示,6V电源给各个部分供电。
3.2系统单元的选择与论证3.2.1单片机控制模块的选择与论证方案一:采用XC9000系列的FPGA。
基于单片机控制的数字温度计的设计
基于单片机控制的数字温度计的设计摘要:基于实际应用中许多场合对温度高精度测量的需求,利用ATF1504芯片与单片机最小系统,采用等精度频率测量技术,设计了一款高精度数字温度计。
该方案采用ATF1504芯片作为可编程逻辑器件,以高灵敏度负温度系数热敏电阻为温度传感器。
利用ATF1504芯片与单片机配合完成待测信号频率的精确测量,从而实现温度的精确测量。
实验数据表明该温度计的测温相对误差小于0.3%。
温度是人们日常生活中常常需要测量和控制的一个物理量。
传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,而在某些特定的场合,器材设备对温度的要求极高,设计一种高精度的温度计就显得十分有意义。
设计的高精度温度计有着线性优良、性能稳定、灵敏度高、使用方便、软硬件结构实现了模块化、电路简单等优点。
1 设计方案热敏电阻是对温度变化非常敏感的电阻元件,它在测温技术、无线电技术、自动化和遥控等方面都得到广泛的应用。
热敏电阻能够将环境温度的变化转化为电阻自身阻值的变化,它将温度的变化转换为连续的电信号的变化,再由外电路把该电信号转化成单片机可处理的脉冲(频率)信号,由单片机来直接处理。
热敏电阻构成的555振荡电路能够实现由电阻到频率的转换功能,建立起由温度到电阻值再到频率的对应关系。
处理器对频率信号的处理精度直接影响着温度测量的精度,采用等精度测频方案能够满足精度的要求,设计中采用查表法和插值法来建立频率与温度的转换关系。
设计的数字温度计主要由下面4部分组成:温度传感部分、等精度测频部分、频率温度转换部分、数据缓存及显示部分,原理图如图1所示。
设计中用到的主要模块有:1)单片机最小系统。
单片机最小系统或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
单片机最小系统一般应该包括:单片机、晶振电路、复位电路。
2)CPLD(Complex ProgrammableLogic Device)。
复杂可编程逻辑器件。
基于单片机的数字温度计设计(课程设计有电路图和程序)
课程设计题目数字式温度计设计学院计信学院专业测控技术与仪器班级2006级2班学生姓名徐春数字式温度计设计组长:徐春 2006004071组员:蒋薇薇 2006004041 张静 2006004039 雷小利 2006004042 叶赛虎 2006004068 杨欣 2006004012摘要:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。
关键词:单片机,数字控制,温度计,DS18B20,AT89S520 引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S52,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求1、设计方案本设计方案的选择主要是感温元件的选择,经查阅资料,IC式感温器在市场上应用比较广泛的有以下几种:(1)AD590:电流输出型的测温组件,温度每升高1摄氏度K(凯式温度),电流增1uA,温度测量范围在-55℃~150℃之间。
其所采集到的数据需经A/D转换,才能得到实际的温度值。
.(2)DSl8B20:除了测量温度外,它还可以把温度值以数字的方式(9Bit)送出,温度送出的精度为O.5℃,温度测量范围在-55℃~125℃之间,可以做恒温控制。
(3)SMARTEC感温组件:这是一只3个管脚感温IC,温度测量范围在—45℃~130。
51单片机设计数字温度计(流程图+源码+实物图片)
DS18B20获取温度程序流程图DS18B20的读字节,写字节,获取温度的程序流程图如图所示结束DS18B20初始化程序流程图写0x44启动DS18B20延时500 s_____ 、一DS18B20 初始化写0xcc跳过读RCMDS18B20获取温度程序流程图DS18B20读字节程序流程图图3-4 DS18B20程序流程图DS18B20写字节程序流程图显示程序设计显示电路是由四位一体的数码管来实现的。
由于单片机的I/O 口有限,所以数码管采用动态扫描的方式来进行显示。
程序流程图如图所示。
图显示程序流程图按键程序设计按键是用来设定上下限报警温度的。
具体的程序流程图如图所示N附 1 源程序代码******************************************************************* 程序名 ; 基于 DS18B20 的测温系统* 功 能: 实时测量温度,超过上下限报警,报警温度可手动调整。
K1 是用来 * 进入上下限调节模式的,当按一下 K1 进入上限调节模式,再按一下进入下限 * 调节模式。
在正常模式下,按一下K2 进入查看上限温度模式,显示 1s 左右自动* 退出;按一下 K3 进入查看下限温度模式,显示 1s 左右自动退出;按一下 K4 消除 * 按键音,再按一下启动按键音。
在调节上下限温度模式下, K2 是实现加 1 功能, * K1 是实现减 1 功能, K3 是用来设定上下限温度正负的。
* 编程者: ZPZ * 编程时间: 2009/10/2*******************************************************************bit s=0;〃s 是调整上下限温度时温度闪烁的标志位, s=0不显示200ms , s=1 显示 1s 左右bit s1=0; void display1(uint z); #include"ds18b20.h" //s1 标志位用于上下限查看时的显示//声明 display1 ()函数//将 ds18b20.h 头文件包含到主程序#include"keyscan.h" #include"display.h"/***********************//将 keyscan.h 头文件包含到主程序 //将 display.h 头文件包含到主程序 主函数 ************************/#include<AT89X52.h> #include<intrins.h>// 将 AT89X52.h 头文件包含到主程序 //将 intrins.h 头文件包含到主程序(调用其中的 函数延时)_nop_() 空操作#define uint unsigned int #define uchar unsigned char uchar max=0x00,min=0x00;//变量类型宏定义,用 //变量类型宏定义,用//max 是上限报警温度, uint 表示无符号整形( 16 位) uchar 表示无符号字符型( 8 位)min 是下限报警温度void main(){beer=1;led=1; timer1_init(0); get_temperature(1);while(1){keyscan();get_temperature(0);//获取温度函数//关闭蜂鸣器// 关闭LED 灯//初始化定时器1(未启动定时器1)// 首次启动DS18B20 获取温度(DS18B20 上点后自动将EEPROM 中的上下限温度复制到TH 和TL 寄存器)//主循环//按键扫描函数keyscan(); // 按键扫描函数display(temp,temp_d*0.625);// 显示函数 alarm(); //报警函数 keyscan();// 按键扫描函数}}/******************************************************************** * 程序名 ; __ds18b20_h__ * 功 能: DS18B20 的 c51 编程头文件 * 编程者: ZPZ * 编程时间: 2009/10/2* 说 明:用到的全局变量是:无符号字符型变量temp ( 测得的温度整数部分 ),temp_d* ( 测得的温度小数部分 ),标志位 f (测量温度的标志位‘ 0'表示“正温度”‘ 1'表 * 示“负温度”),标志位 f_max (上限温度的标志位‘ 0'表示“正温度”、‘ 1'表 * 示“负温度”),标志位f_min (下限温度的标志位‘ 0'表示“正温度”、‘ 1'表* 示“负温度”),标志位 w ( 报警标志位‘ 1'启动报警‘ 0'关闭报警 ) 。
基于单片机的数字温度计方案设计书(附代码及仿真)
目录1、绪论 (3)2、方案选择2.1、主控芯片选择 (3)2.2、显示模块 (3)2.3、温度检测模块 (4)3、系统硬件设计3.1、51单片机最小系统设计 (4)3.2、电源供电电路设计 (5)3.3、LCD显示电路设计 (6)3.4、温度检测电路设计 (7)4、系统软件设计4.1、温度传感器数据读取流程图 (9)4.2、系统程序设计 (10)5、编程和仿真5.1、Keil编程软件 (11)5.2、proteus (11)5.3、仿真界面 (11)6、总结 (12)7、附录附录1、原理图 (12)附录2、程序清单 (13)1、绪论在信息高速发展的21世纪,科学技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了翻天覆地的变化。
我们已经进入了高速发展的信息时代,测量技术也成为当今科技的一个主流,广泛地深入到研究和应用工程的各个领域。
温度和人们的生活息息相关,温度的测量也就变得很重要。
2、系统方案选择2.1 主控芯片选择方案一:STC89C52RCSTC89C52RC是采用8051核的ISP在线可编程芯片,最高工作时钟频率80MHz,片内含8KB的可反复擦写1000次的Flash只读存储器,器件兼容MCS-51指令系统及8051引脚结构,芯片内集成了通用8位中央处理器和ISP Flash 存储单元,具有在线可编程特定,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。
STC89C52RC系列单片机是单时钟周期、高速、低功耗的新一代8051单片机。
方案二:ATmega8ATmega8是ATMAL公司在2002年第一季度推出的一款新型AVR高档单片机。
在AVR家族中,ATmega8是一种非常特殊的单片机,它的芯片内部集成了较大容量的存储器和丰富强大的硬件接口电路,具备AVR高档单片机MEGA系列的全部性能和特点。
但由于采用了小引脚封装(为DIP28和TQFP/MLF32),所以其价格仅与低档单片机相当,再加上AVR单片机的系统内可编程特性,使得无需购买昂贵的仿真器和编程器也可进行单片机嵌入式系统的设计和开发,同时也为单片机的初学者提供了非常方便和简捷的开发环境。
基于单片机数字温度计课程设计
基于单片机数字温度计课程设计
基于单片机的数字温度计课程设计是一个非常有趣和实用的项目。
首先,我们需要选择合适的单片机,比如常用的Arduino或者STM32等。
然后,我们需要选择合适的温度传感器,比如LM35或者DS18B20等。
接下来,我们可以按照以下步骤进行课程设计:
1. 硬件设计,首先,我们需要将单片机和温度传感器连接起来,这涉及到电路设计和焊接。
我们需要确保电路连接正确,传感器能
够准确地读取温度,并且单片机能够正确地接收并处理传感器的数据。
2. 软件设计,接下来,我们需要编写单片机的程序,以便能够
读取传感器的数据,并将其转换为数字温度值。
我们可以使用C语
言或者Arduino的编程语言来实现这一步骤。
在程序设计中,需要
考虑到温度的单位转换、数据的精度等问题。
3. 显示设计,我们可以选择合适的显示设备来展示温度数值,
比如数码管、液晶显示屏或者OLED屏幕等。
在设计中,我们需要考
虑到显示的清晰度、易读性以及节能等因素。
4. 功能扩展,除了基本的温度显示功能,我们还可以考虑对数
字温度计进行功能扩展,比如添加报警功能、数据存储功能或者远
程监控功能等,这些功能的添加可以提升数字温度计的实用性和趣
味性。
5. 测试与优化,最后,我们需要对设计的数字温度计进行测试,并不断优化,确保其稳定可靠、准确无误地显示温度。
总的来说,基于单片机的数字温度计课程设计涉及到硬件设计、软件设计、显示设计、功能扩展、测试与优化等多个方面,学生可
以通过这样的课程设计项目,全面提升自己的电子设计和编程能力,同时也能够实现一个实用的数字温度计产品。
基于单片机的数字温度计设计(含程序、仿真图)
基于单片机的数字温度计设计1引言随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。
传统的温度检测以热敏电阻为温度敏感元件。
热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。
与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。
选用AT89C51型单片机作为主控制器件,DSl8B20作为测温传感器通过4位共阳极LED数码管串口传送数据,实现温度显示。
通过DSl8B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.1℃。
该器件可直接向单片机传输数字信号,便于单片机处理及控制。
另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
2 系统硬件设计方案根据系统功能要求,构造图1所示的系统原理结构框图。
图1 系统原理结构框图2.1单片机的选择AT89C51作为温度测试系统设计的核心器件。
该器件是INTEL公司生产的MCS一5l系列单片机中的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS—51的CMOS产品。
不仅结合了HMOS的高速和高密度技术及CHMOS 的低功耗特征,而且继承和扩展了MCS —48单片机的体系结构和指令系统。
单片机小系统的电路图如图2所示。
图2 单片机小系统电路AT89C51单片机的主要特性:(1)与MCS-51 兼容,4K 字节可编程闪烁存储器;(2)灵活的在线系统编程,掉电标识和快速编程特性;(3)寿命为1000次写/擦周期,数据保留时间可10年以上;(4)全静态工作模式:0Hz-33Hz ;(5)三级程序存储器锁定;(6)128*8位内部RAM ,32可编程I/O 线;(7)两个16位定时器/计数器,6个中断源;(8)全双工串行UART 通道,低功耗的闲置和掉电模式;(9)看门狗(WDT )及双数据指针;(9)片内振荡器和时钟电路;2.2 温度传感器介绍DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C 。
基于51单片机和DS18B20的数字温度计设计说明
基于51单片机和DS18B20的数字温度计设计说明
1.硬件设计:
-51单片机:选择合适的型号,如STC89C52或AT89C52等。
-DS18B20温度传感器:该传感器是一种数字温度传感器,具有单总线接口和高精度测量能力。
-接口电路:将51单片机和DS18B20传感器连接起来,要注意电平转换和信号线的阻抗匹配。
2.软件设计:
-初始化:在主函数中,首先对单片机进行初始化设置,包括时钟设置、串口配置等。
-DS18B20通信协议:使用单总线协议与DS18B20传感器进行通信,包括发送复位信号、读写数据等操作。
-温度测量:通过向DS18B20发送读取温度的命令,从传感器中读取温度值并保存。
-数据传输:将温度值转换为可显示的格式,如摄氏度或华氏度,并通过串口输出或LED显示。
3.程序流程:
-初始化单片机,设置时钟和串口参数。
-进入主循环,循环执行以下操作:
-发送复位信号,启动温度转换。
-等待转换完成,发送读取温度命令。
-读取温度值,并进行数据处理转换。
-输出温度值。
4.其他功能:
-可以添加LCD显示模块,将温度值显示在液晶屏上。
-可以添加按键输入模块,通过按键切换温度单位或进行其他操作。
需要注意的是,该设计只是一个简单的示例,实际应用中可能需要根据具体需求进行扩展和修改。
同时,在程序设计过程中,也要注意低功耗和数据稳定性等方面的考虑。
基于单片机的数字温度测量仪的设计(DOC)
--基于单片机的数字温度测量仪的设计系 部: 学生姓名: 专业班级: 学 号: 指导教师:2012年 10月 26日声明本人所呈交的基于单片机的数字温度测量仪设计 ,是我在指导教师的指导和查阅相关著作下独立进行分析研究所取得的成果。
除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。
对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名:日期:--目录摘要 (1)一、引言 (2)(一)课题研究的背景及意义 (2)1.设计背景 (2)2.设计意义……………………………………………………………………………2(二)设计方案论证....................................................................................2(三)设计要求及设计思路 (3)1.设计要求 (3)2.设计思路 (3)二、硬件设计 (4)(一)总设计框图 (4)(二)硬件电路设计 (4)1.主控制器AT89C51 (4)2.复位与时钟电路 (8)3.温度传感电路………………………………………………………………………94.液晶显示电路………………………………………………………………………115.按键输入电路 (12)6.报警电路 (13)三、软件设计 (13)(一)主程序设计 (13)(二)子程序的设计…………………………………………………………………………141.读出温度子程序……………………………………………………………………142.温度转换命令子程序 (15)3.计算温度子程序 (16)--四、仿真与调试 (17)五、总结……………………………………………………………………………………19六、致谢 (20)七、参考文献 (20)附录一: 电路仿真图 (21)附录二: 源程序 (21)--【摘要】随着时代的进步和发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,特别适合与控制有关的系统设计。
基于AT89S52单片机的数字温度计设计
基于AT89S52单片机的数字温度计设计一引言在生活和生产中,经常要用到一些测温设备,但是传统的测温设备具有制作本钱高、硬件电、和软件设计复杂等缺点。
基于AT89S52单片机的数字温度计具有制作简单、本钱低、读数方便、测温*围广和测温准确等优点,应用前景广阔。
二工程要求基于AT89S52单片机的数字温度计设计具体要求如下:〔1〕温度值用LED显示。
〔2〕围为-30℃~100℃,且测量误差不得大于±0.5℃。
〔3〕本钱的体积、质量要尽可能小。
三系统设计1 框图设计根据设计要求分析,基于AT89S52单片机的数字温度计设计由AT89S52单片机控制器、电源、显示电路、温度传感器、复位电路和时钟电路组成,系统框图如图1所示。
电源给整个电路供电,显示电路显示温度值,时钟电路为AT89S52提供时钟频率。
传感器采用美国DALLAS半导体公司生产的一种智能温度传感器DS18B20,其测温*围为-55~125℃,最高分辨率可达0.0625℃,完全符合设计要求。
图一基于AT89S52单片机的数字温度计系统框图2 知识点本工程需要通过学习和查阅资料,掌握和了解如下知识:●+5V电源原理及设计。
●单片机复位电路工作原理及设计。
●单片机晶振电路工作原理及设计。
●按键电路的设计。
●数码管的特性及使用。
●DS18B20的特性及使用。
●74LS07的特性及使用。
●AT89S52单片机引脚。
●单片机C语言程序设计。
四硬件设计1 电路原理图控制器使用单片机AT89S52,测温传感器使用DS18B20,用4位共阳极LED数码管以动态扫描法实现温度显示,电路图可见仿真图所示。
2 元件清单基于AT89S52单片机的数字温度计元件清单如表1所示。
五软件设计1 程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20测量的当前温度值,温度测试每1S进展一次。
这样可以在1S之内测量一次被测温度,其程序流程图如图3所示。
基于单片机的数字温度计的设计
引言温度是一种最基本的环境参数,人民的生活环境与温度息息相关,因此研究温度的测量方法和装置具有重要意义。
温度测量在工业、农业、国防等行业有着广泛的应用,而且随着科学技术的发展对温度测量的应用范围愈来愈广。
利用单片机技术的温度测控系统以其体积小,可靠性高而被广泛采用。
由于AT89S52单片机可以直接应用在对温度测量的各种测温器件。
本文就介绍了一种基于单片机的温度测量的方法。
用此方法所设计的数字温度计,结构简单,体积较小,可靠性高,操作方便,测量精度高,只需接通电源便可进行及时有效的温度测量,在各行各业均具有较广泛的用途,发展前景良好。
1. 方案论证1.1 系统功能定义根据设计要求,可以先大致勾勒出要完成设计,需要几个模块具有如下图所示的的功能,图1.1功能模块框图1.2总体方案通过对系统功能的定义,可以将基于单片机的数字温度计采用温度传感器DS18B20作为测温元件用来满足温度测量,并将温度信号经由其本身所具有的A/D转换功能,转换成数字信号经单片机处理显示于液晶显示器,从而完成温度的测量和显示。
整个系统控制将由AT89S52单片机芯片为核心构成。
选用DS18B20作为测温元件,SMC1602A作为显示器件,各个检测信号、显示信号可由单片机的I/O口进行。
设计任务:用单片机设计一个测温范围在—55~125℃的数字温度计。
设计要求:完成该系统的软硬件设计,学习掌握单片机采集温度的设计方法提高学习新知识、新技能的能力,培养独立设计的能力。
2.系统硬件电路设计2.1系统硬件框图根据系统功能要求,可以先大致勾勒出完成任务所需的系统硬件框图如下:图2.1硬件结构框图主控模块采用性价比较高的单片机芯片,在其内部将预设好的程序储存,可通过程序的运行控制测温模块进行测温,测温模块主要是由DS18B20构成,将其与所测对象进行接触即可获取被测对象的温度数据,报警模块只有当温度超出预定值时才会工作,而所测得的温度将通过显示模块的液晶显示器以数字形式显示。
基于单片机的数字温度计设计与仿真
基于单片机的数字温度计设计与仿真盘桂云(吉首大学物理科学与信息工程学院,湖南吉首 416000)摘要本课题以单片机为控制核心,设计了一款数字温度计。
该系统由51单片机、DS18B20温度传感器以及1602 LCD液晶显示屏等部件组成。
系统上电后进入实时温度显示状态,此时将DS18B20中的温度值读到单片机中并将其显示在LCD液晶显示屏上。
系统可以设置上下限报警温度值,当测得结果超过设定值时进行相应的报警,提供一个接口可以将温度值传送给其它控制器或计算机,测量准确且误差小,其误差在±0.02℃。
关键词:单片机;温度采集;LCD显示;温度传感器;数字温度计;Emluater and Design of Digital Thermometer Based onMicrocomputer ControlPanguiyun(College of Physics Science and Information Engineering,JishouUniversity,Jishou,Hunan 416000)AbstractThis topic with the microcontroller as control core , and design a digital thermometer.It consists of 51 single -chip microcomputer, 18B20 temperature sensor and 1602 LCD screen display etc.After power on, the system into real-time temperature display state, then the temperature 18B20 will read in the single-chip microcomputer and displayed in the LCD screen.System can set upper temperature alarm, when the alarm measured results than the setting measured corresponding alarm, System can provide an interface which sends the temperature to other controller or computer. There is little measuring error, measuring error at ±0.02℃.Key words:Microcontroller;Temperature acquisition;LCD display;Temperatere sensor;Digital thermometer目录第一章绪论 (1)1.1 系统背景 (1)1.2 系统概述 (1)1.2.1 系统功能 (1)1.2.2 系统所用器件及其作用 (1)第二章系统总体设计2.1 系统硬件电路总体设计 (3)2.2系统软件的总体设计 (4)2.3主程序的流程设计与实现程序 (6)3.2.1 主程序的流程设计 (6)3.2.2 主程序的实现程序 (7)第三章主要器件介绍3.1 18B20温度传感器 (8)3.2 1602液晶显示器 (8)第四章系统详细设计4.1控制模块电路设计 (10)4.1.1晶振电路设计 (10)4.1.2复位电路设计 (10)4.2温度传感器模块 (11)4.2.1温度传感器模块电路设计 (11)4.2.2温度传感器模块程序设计 (12)4.3 液晶显示模块 (16)4.3.1液晶显示模块电路设计 (16)4.3.2液晶显示模块程序设计 (17)4.4 键盘输入模块 (17)4.4.1键盘输入模块电路设计 (17)4.4.2键盘输入模块程序设计 (18)4. 5报警模块 (19)4.5.1报警模块电路设计 (19)4.5.1报警模块程序设计 (20)4. 6串行输出模块 (20)第五章软件仿真与测试5.1软件的仿真分析与仿真结果 (21)结束语 (25)参考文献 (26)致谢 (27)附录1:系统电路图 (28)附录2:源程序清单 (29)第一章绪论1.1 系统背景在工农业生产和日常生活中,对温度的测量占据着极其重要地位。
基于单片机的数字温度计软件设计
基于单片机的数字温度计软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。
从DS18B20读出的二进制值必须先转换成十进制值,才能用于字符的显示DS18B20的转换精度为9~12位可选,为了提高精度采用12位。
温度寄存器里的值是以0.0625为进步的,计温度值为温度寄存器里的二进制值成一0.0625,就是实际的十进制温度值。
主要程序设计如下:1.主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s 进行一次。
这样可以在一秒之内测量一次被测温度,其程序流程见图1所示。
2.读出温度子程序的主要功能是读出RAM 中的9字节,在读出时需进行CRC 校验,校验有错时不进行温度数据的改写。
,程序流程图如图2所示。
3.温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms ,在本程序设计中采用1s 显示程序延时法等待转换的完成,程序流程图如图3所示。
4. 计算温度子程序将RAM 中读取值进行BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图4-4所示。
5.显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。
程序流程图如图5。
图1 主程序流程图 图2 读温度流程图图3 温度转换流程图图4 计算温度流程图 图5显示数据刷新流程图实现控制源程序:#include<reg51.h>#include<intrins.h> //_延时函数用nop_()函数 #define Disdata P1 //段码输出口 #define discan P3 //扫描口 #define uchar unsigned char #define uint unsigned intsbit DQ=P3^7; //温度输入口sbit DIN=P1^0; //LED 小数点控制//*******温度小数部分用查表法**********//uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};uchar code dis_7[13]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff,0xfd,0x00};/* 共阳LED段码表"0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" "全亮"*/ uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; // 列扫描控制字uchar data temp_data[2]={0x00,0x00}; // 读出温度暂放uchar data display[5]={0x00,0x00,0x00,0x00,0x00};//显示单元数据,共4个数据,一个运算暂存用/////**************11us延时函数**************/void delay(uint t){for(;t>0;t--);}/**************显示扫描函数**************/scan(){char k;for(k=0;k<4;k++)//4位LED扫描控制{disdata=dis_7[display[k]];//数据显示if(k==1){DIN=0;//小数点显示}discan=scan_con[k];delay(300);}}/*************总线复位函数**************/ow_reset(void){char flag=1;while(flag){while(flag){DQ=1;_nop_();_nop_();//稍延时2usDQ=0;//DQ复位,从高拉到低delay(50);//延时550usDQ=1;delay(6);//延时66usflag=DQ;//flag=0复位成功,继续下一步}}DQ=1;// 拉高电平}/************向18B20写命令函数*************///向1-wire总线(P2.7口线)上写一字节void write_byte(uchar val){uchar i;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();//稍延时2usDQ=0;//DQ复位,从高拉到低_nop_();_nop_();_nop_();_nop_();_nop_();//延时5usDQ=val&0x01;//最低位移出delay(6);//延时66usval=val/2;//右移一位}DQ=1;delay(1);//延时11us}/**************读一字节函数**************///从1-wire总线(P2.7口线)上读取一字节uchar read_byte(void){uchar i;uchar value=0;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();//稍延时2usvalue>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_();////稍延时4usDQ=1;_nop_();_nop_();_nop_();_nop_();//稍延时4usif(DQ) value|=0x80;delay(6);//延时66us}DQ=1;return(value);}/**************读出温度函数**************/uint read_temp()delay(200);//延时2.2mswrite_byte(0xcc);//发Skip(跳过) ROM命令write_byte(0x44);//发启动一次温度转换命令ow_reset();delay(1);//延时11uswrite_byte(0xcc);//发Skip(跳过) ROM命令write_byte(0xbe);//发读命令temp_data[0]=read_byte();//读温度值的低8位temp_data[1]=read_byte();//读温度值的高8位temp=temp_data[1];temp<<=8;temp=temp|temp_data[0];//两个字节合成一个整型变量return temp;//返回温度值}/************温度数据处理函数************/work_temp(uint tem){uchar s=0;if(tem>4095)//温度值正负判断{tem=65536-tem;s=1;}//负温度求补码,标志位置1display[4]=tem&0x0f;//取小数部分的值display[0]=ditab[display[4]];//存入小数部分显示值display[4]=tem>>4;//取中间8位,即整数部分的值display[3]=display[4]/100;//display[1]=display[4]%100;//取后两位数据暂存display[2]=display[1]/10;//存入十位display[1]=display[1]%10;//存入个位//符号位显示判断if(! display[3]){display[3]=0x0a;//最高位为0时不显示if(!display[2]){display[2]=0x0a;//次高位为0时不显示}}if(s){display[3]=0x0b;}//负温度时最高位显示"-"}/*****************主函数*****************/void main()discan=0xff;for(h=0;h<4;h++){display[h]=0;}//开机显示"0000"ow_reset();//开机先转换一次write_byte(0xcc);//发Skip(跳过) ROM命令write_byte(0x44);//发转换命令for(h=0;h<100;h++){scan();}//开机显示"0000"2swhile(1){work_temp(read_temp());//处理从18B20读出的温度数据scan();//显示温度值}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于STC89C52的数字温度计目录1、方案选择1.1、主控芯片选择 (2)1.2、显示模块 (2)1.3、温度检测模块 (2)2、系统硬件设计2.1、51单片机最小系统设计 (2)2.2、温度检测电路设计 (2)3、系统软件设计3.1、LED显示电路设计 (2)3.2、温度检测电路设计 (2)3.3、仿真界面 (3)4、实训与焊接过程4.1、焊接与调试 (4)4.2、焊接实物图 (4)6、总结 (4)7、附录附录1、原理图 (5)附录2、程序清单………………………………………….5~91、系统方案选择1.1 主控芯片选择STC89C52RC是采用8051核的ISP在线可编程芯片,最高工作时钟频率80MHz,片内含8KB的可反复擦写1000次的Flash只读存储器,器件兼容MCS-51指令系统及8051引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在线可编程特定,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。
STC89C52RC系列单片机是单时钟周期、高速、低功耗的新一代8051单片机。
1.2 时钟及显示模块数码管亮度高,显示大,特别是显示的温度很直观,价格比较便宜。
1.3 温度检测模块DS18B20数字温度传感器是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
它在实际应用中不需要外部任何元器件即可实现测温,测量温度范围在-55到+125摄氏度之间。
2、系统硬件设计2.1 51单片机最小系统设计以STC89C52单片机为核心,选用12M的晶振,这是最常用的选择,外接电容没有特别的要求,但是外接电容的大小会影响振荡器的频率高低、振荡器的稳定性和起振的快速性,因此我们选用30pf的电容作为起振电容。
复位电路为按键低电平复位,当按键按下,RET端为高电平,当高电平持续4us的时间就可以使单片机复位。
2.2 电源供电电路设计我们采用USB作为电源,D1为电源指示灯,当开关打开,显示灯亮,表示给电路供+5V电压。
3、系统软件设计3.1 LED显示电路设计数码管我们用四位一体共阳数码管,A~B笔段加上350欧电阻接单片机的P1.0~7口,位选段我们加上三极管作为驱动接单片机的P2.3~0口。
3.2 温度检测电路设计DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如基于STC89C52的数字温度计下:•独特的单线接口仅需一个端口引脚进行通讯•简单的多点分布应用•无需外部器件•可通过数据线供电•零待机功耗•测温范围-55~+125℃,以0.5℃递增。
华氏器件-67~+2570F,以0.90F 递增•温度以9 位数字量读出•温度数字量转换时间200ms(典型值)•用户可定义的非易失性温度报警设置•报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DQ 为数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD 为可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
3.3仿真界面4、实训与焊接过程4.1、焊接与调试4.1、焊接实物图6、总结1、选择芯片和传感器时,够用易用就可以,综合考虑选择性价比最好的。
2、在进行电路实际制作之前,应该用仿真软件进行仿真,可以使开发进程加快。
3、在实际制作电路时,需要注意电源端和地端要检测过不导通后才能通电检测,防止烧坏芯片。
7、附录附录1、原理图附录2、程序清单ORG 00HTMPL EQU 29HTMPH EQU 28HFLAG1 EQU 38HDATAIN BIT P3.7MAIN: LCALL GET_TEMPERLCALL CVTTMPLCALL DISP1AJMP MAININIT_1820:SETB DATAINNOPCLR DATAINMOV R1,#3TSR1: MOV R0,#107DJNZ 0,$DJNZ R1,TSR1SETB DATAINNOPNOPMOV R0,#25H TSR2: JNB DATAIN,TSR3DJNZ R0,TSR2CLR FLAG1SJMP TSR7TSR3: SETB FLAG1CLR P1.7MOV R0,#117 TSR6: DJNZ R0,$TSR7: SETB DATAINRETGET_TEMPER:SETB DATAINLCALL INIT_1820JB FLAG1,TSS2NOPRETTSS2: MOV A,#0CCHLCALL WRITE_1820MOV A,#44HLCALL WRITE_1820ACALL DISP1LCALL INIT_1820MOV A,#0CCHLCALL WRITE_1820MOV A,#0BEHLCALL WRITE_1820LCALL READ_18200RETWRITE_1820:MOV R2,#8CLR CWR1: CLR DATAINMOV R3,#6DJNZ R3,$RRC AMOV DATAIN,CMOV R3,#23DJNZ R3,$SETB DATAINNOPDJNZ R2,WR1SETB DATAINREAD_18200:MOV R4,#2MOV R1,#29HRE00: MOV R2,#8RE01: CLR CSETB DATAINNOPNOPCLR DATAINNOPNOPNOPSETB DATAINMOV R3,#9RE10: DJNZ R3,RE10MOV C,DATAINMOV R3,#23RE20: DJNZ R3,RE20RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00RETCVTTMP: MOV A,TMPHANL A,#80HJZ TMPC1CLR CMOV A,TMPLCPL AADD A,#1MOV TMPL,AMOV A,TMPHCPL AADDC A,#0MOV TMPH,AMOV 73H,#0BHSJMP TMPC11 TMPC1: MOV 73H,#0AH TMPC11: MOV A,TMPLANL A,#0FHMOV DPTR,#TMPTABMOVC A,@A+DPTRMOV 70H,AMOV A,TMPLANL A,#0F0HSWAP AMOV TMPL,AMOV A,TMPHANL A,#0FHSWAP AORL A,TMPLH2BCD: MOV B,#100DIV ABJZ B2BCD1MOV 73H,AB2BCD1: MOV A,#10XCH A,BDIV ABMOV 72H,AMOV 71H,BTMPC12: NOPDISBCD: MOV A,73H;ANL A,#0FH;CJNE A,#1,DISBCD0;SJMP DISBCD1DISBCD0: MOV A,72HANL A,#0FHJNZ DISBCD1MOV A,73H;MOV 72H,AMOV 73H,#0AH DISBCD1: RETTMPTAB: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9 DISP1: MOV R1,#70HMOV R5,#0FEHPLAY: MOV P1,#0FFHMOV A,R5MOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P1,AMOV A,R5JB ACC.1,L00P1CLR P1.7L00P1: LCALL DL1MSINC R1MOV A,R5JNB ACC.3,ENDOUTRL AMOV R5,ASJMP PLAYENDOUT: MOV P1,#0FFHMOV P2,#0FFHRETTAB: DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,80H,90H,0FFH,0BFH DL1MS: MOV R6,#14HDL1: MOV R7,#100DJNZ R7,$DJNZ R6,DL1RETEND实训报告数字温度计姓名:学号:班级:专业:基于STC89C52的数字温度计。