基于AT89S52单片机的数字温度计设计
- 格式:doc
- 大小:101.50 KB
- 文档页数:7
基于单片机的数字温度计的设计摘要:本文介绍了一种AT89S52单片机的数字温度计设计。
该数字温度计的主控系统采用AT89S52单片机,温度采集选用PT100型温度传感器,显示系统选用数码管,实现对温度的测量和显示。
该数字温度计具有稳定性高、精度准确、结构简单等优点。
关键词:AT89S51单片机温度传感器PT100数码显示温度传感器应用于诸多领域,不管是信息化还是工业化,我们都能够看到温度传感器的身影。
铂电阻温度传感器因其测量准确度高、测量范围大、稳定性好等,被广泛用于中温(-200℃~650℃)范围的温度测量中。
pt100是铂热电阻,它的阻值会随着温度的变化而改变,在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。
本设计采用PT100温度传感器,将把温度的变化转变成电压信号的变化并将其放大,然后通过A/D转换,将数据传递给单片机,再由单片机将信号进行处理,通过数码管显示出当前温度。
电路原理如图:本系统选择PT100温度传感器,选择AT89S52单片机,AT89S52接受PT100的信号,经过处理,当数码管接收到经过AT89S52单片机处理过的信号后,显示出接收到的温度。
而且温度传感器,输出信号是数字信号,而不是传统意义上的模拟信号,这样便于单片机处理及控制。
省去了传统的模拟温度传感器需要的A/D转换电路,省去了很多不必要的电路,从而电路得到了简化,也提高了系统的工作效率,降低了系统的硬件成本。
PT100是一种广泛应用的测温元件。
在-50~+600 ℃范围内具有其它温度传感器无可比拟的优势,包括高精度、稳定性好、抗干扰能力强等。
本设计PT电阻采用三线制接法,可将PT100的两侧相等的导线长度分别加在两侧的桥臂上,使得导线电阻得以消除。
LM324运放电路工作过程:通过集成运放将基准电压4.096V转换为恒流源,电流流过PT100时在其上产生压降,再通过运放将该微弱压降信号放大,即输出期望的电压信号,将信号直接连AD转换芯片。
第一章前言频率测量是电子学测量中最为基本的测量之一。
由于频率信号抗干扰性强,易于传输,因此可以获得较高的测量精度。
随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,测频原理和测频方法的研究正受到越来越多的关注。
1.1频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
它是一种用十进制数字显示被测信号频率的数字测量仪器。
它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。
在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。
传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路组成,产品不但体积大,运行速度慢而且测量低频信号不准确。
本次采用单片机技术设计一种数字显示的频率计,测量准确度高,响应速度快,体积小等优点[1]。
1.2频率计发展与应用在我国,单片机已不是一个陌生的名词,它的出现是近代计算机技术的里程碑事件。
单片机作为最为典型的嵌入式系统,它的成功应用推动了嵌入式系统的发展。
单片机已成为电子系统的中最普遍的应用。
单片机作为微型计算机的一个重要分支,其应用范围很广,发展也很快,它已成为在现代电子技术、计算机应用、网络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用范围十分广泛。
其中以AT89S52为内核的单片机系列目前在世界上生产量最大,派生产品最多,基本可以满足大多数用户的需要[2]。
1.3频率计设计内容利用电源、单片机、分频电路及数码管显示等模块,设计一个简易的频率计能够粗略的测量出被测信号的频率。
参数要求如下:1.测量范围10HZ—2MHZ;2.用四位数码管显示测量值;第二章系统总体方案设计2.1测频的原理测频的原理归结成一句话,就是“在单位时间内对被测信号进行计数”。
被测信号,通过输入通道的放大器放大后,进入整形器加以整形变为矩形波,并送入主门的输入端[3]。
精品文档河北工程大学2014—2015学年第(二)学期课程设计课题名称:基于AT89S52单片机的数字温度测量及显示系统设计设计时间:2015年 06月系部:计算机科学与技术班级:计算机1401小组成员:张朔萌李丹丹郭星星石凤丹指导老师:赵建明河北工程大学目录1.课程设计题目................................................... (2)1.1实验题目................................................... .. (2)1.2小组成员贡献................................................... (2)2.设计方案................................................... .. (2)2.1设计目的................................................... .. (2)2.2性能指标................................................... .. (2)3.数字温度计系统的硬件设计 (3)3.1数字温度计硬件框图................................................... (3)3.2AT89C52单片机................................................... .. (3)3.3外围电路................................................... .. (4)3.4总设计图................................................... .. (4)4.数字温度计系统的软件分析及系统整体流程 (4)4.1总体流程图................................................... . (5)4.2子程序流程图................................................... (6)5.仿真结果................................................... .. (8)6.总结................................................... . (9)7.附录................................................... . (10)河北工程大学1 课程设计题目1.1实验题目基于单片机的数字温度计设计。
基于AT89S52单片机多彩温度计的设计【摘要】根据色彩合成的三基色原理,任何颜色的光都可以通过改变红、绿、蓝三基色按照不同的比例而合成,由此原理,采用AT89S52单片机作为控制核心,DS18B20作为温度采集芯片,12864LCD作为温度显示模块,实现LED 背景灯的亮度、色彩和发光范围的随温度变化而连续变化的功能。
【关键词】控制;设计;调节1.功能要求设计一个多彩温度计,可应用于酒店、商场、车站等公共场所,也可以应用在家庭、办公室等小型场所,作为装饰使用。
该设计可以显示当前环境温度,同时也能够显示当前日期时间。
温度和时间信息显示使用的是12864LCD,多彩温度计的背景光源使用的是全彩LED。
背景光源的亮度、色彩可以随着环境温度的变化而逐渐变化,在温度从-20℃→40℃变化过程中,背景光源的色彩从蓝色渐变为红色。
2.方案的设计2.1 LED的亮度控制设计LED使用的是三合一的全彩芯片,它有4个引脚,其中公共端引脚连接电源,其余3个引脚分别对应于三基色的红、绿、蓝,这3个引脚与单片机的3个引脚相连,当单片机引脚置于低电平时,对应的LED会发光。
而LED的亮度调节是通过占空比来实现的,占空比就是单片机引脚输出的脉冲中,高电平保持的时间与该脉冲周期的时间之比。
由于该设计单片机引脚是低电平时LED点亮,即占空比为0时(没有高电平信号),LED有亮度有最大值;而当单片机引脚是高电平时,即占空比为1时,LED亮度有最小值(熄灭);当占空比为50%时,即脉冲高、低电平所占时间相同,此时的亮度应该介于最大亮度和最小亮度两者之间。
该设计我们选用了4档亮度,占空比在程序中赋予5个值,有4个档位:0%、25%、50%、75%、100%(熄灭),以此按不同命令实现LED亮度的调节。
2.2 LED的色彩控制设计根据色彩合成的三基色原理,任何颜色的光都可以通过改变红、绿、蓝三基色按照不同的比例而合成,当用红光、蓝光、绿光三色光进行混合时,可分别得到黄光、青光和品红;将这三色光等比例混合时,可得到白光;而将此三色光不同比例混合时,可以获得不同颜色的光。
基于AT89S52的数字温度计设计说明一、设计背景温度计是指可以测量并显示环境温度值的仪器。
数字温度计是将温度转换为数字信号,再通过数码管显示温度值的一种温度计。
随着微处理器技术的不断发展,数字温度计也不断得到改进,成为了一种重要的电子测量仪器。
本设计基于AT89S52单片机,设计一款简单的数字温度计。
二、设计方案本设计方案采用DS18B20数字温度传感器作为温度检测器件,通过AT89S52单片机进行信号处理,并将温度值显示在四位数码管上。
具体方案如下:1. 电路连接将DS18B20数字温度传感器的VCC引脚连接到单片机的5V供电端口,GND引脚连接到单片机的GND端口,DQ引脚连接到单片机的P2.0口。
将四位共阳数码管的COM1-COM4引脚连接到单片机的P1.0-P1.3口,a-g引脚连接到单片机的P0.0-P0.6口。
2. 软件设计主程序通过定时器产生1s的时间基准,读取DS18B20传感器的温度值,将温度值转化为数码管可以显示的温度值,并将温度值显示在数码管上。
主程序具体运作流程如下:(1)初始化定时器,设定时间基准为1s。
(2)初始化DS18B20传感器,进行一次温度检测。
(3)将读取到的温度值存入RAM中。
(4)将温度值转化为数码管可以显示的温度值,并存入RAM中。
(5)将数码管显示温度值。
(6)等待1s后,再进行温度检测,重复执行。
三、应用领域数字温度计是一种广泛应用于家庭、实验室、工厂、疾病诊断等领域的电子测量仪器。
本设计采用的AT89S52单片机和DS18B20数字温度传感器成本较低,制作简单,可以在生活中进行自制,具有一定的实用价值。
项目名称基于AT89S52的数字温度计设计目录项目名称 (1)基于AT89S52的数字温度计设计 (1)第1章绪论 (4)1.1 概述 (4)1.2 数字温度计的特点与问题 (4)第2章设计方案 (5)2.1 设计指标 (5)2.1.1检测范围 (5)2.1.2 检测误差 (5)2.1.3 系统反应速度 (5)2.2 基于单总线温度检测芯片的检测方案 (5)2.3 关键技术 (6)2.3.1单总线技术 (6)2.3.2单片机开发技术 (6)第3章具体设计与实现 (7)3.1 系统总体设计 (7)3.2 硬件设计 (8)3.2.1 温度检测系统设计 (8)3.2.2 单片机最小系统设计 (9)3.2.3 显示系统设计 (9)3.2.4 电源系统设计 (10)3.3 软件设计 (10)3.3.1温度传感器驱动设计 (10)3.3.2显示驱动设计 (15)3.3.3开关控制设计 (18)3.3.4系统软件设计 (21)第4章系统集成与测试 (22)4.1软件调试 (22)4.2硬件调试 (23)4.3系统测试 (23)结论 (24)致谢 (25)参考文献 (26)附录1 (27)附录2 (28)第1章绪论1.1 概述数字温度计相对与传统的温度计,用数字信号来表示温度变化,方便计算机控制系统进行处理和记录,应用单片机使仪器仪表智能化,可以提高测量的自动化程度和精度,广泛应用于各行各业。
测量温度的关键是温度传感器。
随着技术飞速发展,传感器已进入第三代数字传感器。
本测温系统采用的DS18B20就是属于这种传感器。
DS18B20是美国DALLAS半导体公司推出的数字式温度传感器,是DS1820的更新产品。
它能够直接读出被测温度,可通过简单的编程实现9位-12位的数字读数方式,并且,从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写。
温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源,因而使用DS18B20可使系统结构更趋简单、灵活。
基于单片机的数字温度计设计摘要在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。
传统的测温元件有热电偶和二电阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。
我们用一种相对比较简单的方式来测量。
我们采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度范围为-55~125℃,最高分辨率可达0.0625℃。
DS18B20可以直接读出北侧温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
本文介绍一种基于AT89C52单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围0℃~+100℃,使用LCD模块显示,能设置温度报警上下限。
正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C52单片机功能和应用。
该电路设计新颖、功能强大、结构简单。
关键词:温度测量,AT89C52,DS18B20,系统仿真Design of Digital Thermometer Based on SCMABSTRACTIn 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℃~125℃, up to a maximum resolution of 0.0625℃. 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 SCM a temperature measurement circuits, the circuits used DS18B20 high-precision temperature sensor, measuring scope 0℃~+100℃, can set the warning limitation, the use of seven segments LCD 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.KEY WORDS: Temperature measurement,AT89C52,DS18B20,System simulation目录前言 (1)第1章绪论 (2)1.1 设计背景 (2)1.1.1 温度计的介绍 (2)1.1.2 温度传感器的发展状况 (3)1.2 选题的目的和意义 (4)1.2.1 选题的目的 (4)1.2.2 选题的意义 (4)第2章系统概述 (5)2.1 设计方案的选择 (5)2.1.1 方案一 (5)2.1.2 方案二 (6)2.2 系统设计原理 (6)第3章系统硬件的设计 (8)3.1 AT89C52的介绍 (8)3.2 DS18B20的介绍 (11)3.2.1 DS18B20的引脚排列 (11)3.2.2 DS18B20内部结构 (12)3.2.3 DS18B20的测温原理 (16)3.2.4 DS18B20使用的注意事项 (17)3.3 数字温度计电路设计 (18)3.3.1 数字温度计原理图 (18)3.3.2 时钟电路的设计 (18)3.3.3 复位电路的设计 (19)3.3.4 接口电路的设计 (20)3.3.5 显示电路的设计 (20)3.3.6 报警电路的设计 (23)第4章系统软件的设计 (24)4.1软件Proteus与Keil (24)4.1.1 Proteus软件 (24)4.1.2 Keil软件 (27)4.2 系统主程序 (29)4.2.1 主程序 (29)4.2.2 DS18B20初始化 (30)4.2.3 温度转换命令子程序 (30)4.2.4 温度数据的计算处理方法 (31)4.3 源程序 (31)第5章仿真 (32)5.1 仿真结果 (32)结论 (34)谢辞 (35)参考文献 (36)附录 (37)外文资料翻译 (47)前言随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确迅速的获得这些参数就需要受制于现代信息基础的发展水平。
基于AT89S52单片机的数字温度计设计一引言在生活和生产中,经常要用到一些测温设备,但是传统的测温设备具有制作成本高、硬件电、和软件设计复杂等缺点。
基于AT89S52单片机的数字温度计具有制作简单、成本低、读数方便、测温范围广和测温准确等优点,应用前景广阔。
二项目要求基于AT89S52单片机的数字温度计设计具体要求如下:(1)温度值用LED显示。
(2)围为-30℃~100℃,且测量误差不得大于±0.5℃。
(3)成本的体积、质量要尽可能小。
三系统设计1 框图设计根据设计要求分析,基于A T89S52单片机的数字温度计设计由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所示。
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写,其程序流程图如图4所示。
温度转换命令子程序主要是发温度转换开始命令,采用12位分辨率转换时间约为750ms 。
程序设计中采用1s 显示程序延时等待转换的完成。
计算温度子程序将RAM 中读取值进行BCD 码地转换运算,并进行温度值正负的判定,显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。
2 程序清单基于AT89S52单片机的数字温度计程序清单如下: #include "reg51.h"#include "intrins.h" //延时函数用 #define Disdata P1 //段码输出口 #define discan P3 //扫描口 #define uchar unsigned char #define uint unsigned intsbit DQ=P3^7; //温度输入口sbit DIN=P1^7; //LED小数点控制uint h;uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x 09};//温度小数部分用查表法uchar code dis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};/* 共阳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个数据,一个运算暂存用void delay(uint t)//11微秒延时函数{for(;t>0;t--);}scan()//显示扫描函数{char k;for(k=0;k<4;k++) //四位LED扫描控制{Disdata=dis_7[display[k]];if(k==1){DIN=0;}discan=~scan_con[k];delay(90);discan=0x00;}}ow_reset(void)//18B20复位函数{char presence=1;while(presence){while(presence){DQ=1;_nop_();_nop_();DQ=0;delay(50); // 550usDQ=1;delay(6); // 66uspresence=DQ; // presence=0继续下一步}delay(45); //延时500uspresence = ~DQ;}DQ=1;}void write_byte(uchar val)//18B20写命令函数{uchar i;for (i=8; i>0; i--) //{DQ=1;_nop_();_nop_();DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();//5us DQ = val&0x01; //最低位移出delay(6); //66usval=val/2; //右移一位}DQ = 1;delay(1);}uchar read_byte(void)//从总线上读取一个字节{uchar i;uchar value = 0;for (i=8;i>0;i--){DQ=1;_nop_();_nop_();value>>=1;DQ = 0; //_nop_();_nop_();_nop_();_nop_(); //4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); //4usif(DQ)value|=0x80;delay(6); //66us}DQ=1;return(value);}read_temp()//读出温度函数{ow_reset(); //总线复位write_byte(0xCC); // 发Skip ROM命令write_byte(0xBE); // 发读命令temp_data[0]=read_byte(); //温度低8位temp_data[1]=read_byte(); //温度高8位ow_reset();write_byte(0xCC); // Skip ROMwrite_byte(0x44); // 发转换命令}work_temp()//温度数据处理函数{uchar n=0; //if(temp_data[1]>127){temp_data[1]=(256-temp_data[1]);temp_data[0]=(256-temp_data[0]);n=1;}//负温度求补码display[4]=temp_data[0]&0x0f;display[0]=ditab[display[4]];display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);//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;if(!display[2]){display[2]=0x0A;}}//最高位为0时都不显示if(n){display[3]=0x0B;}//负温度时最高位显示"-"}main()//主函数{Disdata=0xff; //初始化端口discan=0xff;for(h=0;h<4;h++){display[h]=8;}//开机显示8888ow_reset(); // 开机先转换一次write_byte(0xCC); // Skip ROMwrite_byte(0x44); // 发转换命令for(h=0;h<500;h++){scan();} //开机显示"8888"2秒while(1){read_temp(); //读出18B20温度数据work_temp(); //处理温度数据for(h=0;h<500;h++){scan();} //显示温度值2秒}}六系统仿真及调试1 软件调试1图5 仿真图。