数字温度计设计.docx
- 文档编号:12073357
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:62
- 大小:1.71MB
数字温度计设计.docx
《数字温度计设计.docx》由会员分享,可在线阅读,更多相关《数字温度计设计.docx(62页珍藏版)》请在冰点文库上搜索。
数字温度计设计
专业课课程设计
题目:
数字温度计设计
院系名称:
电气工程学院专业班级:
电气1班
学生姓名:
学号:
指导教师:
教师职称:
教授
评语及成绩:
指导教师:
日期:
1课题简介
1.1课题研究背景
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的。
单片机在测控领域中具有十分广泛的应用,它既可以测量电信号,又可以测量温度湿度等非电信号。
由单片机构成的温度检测、温度控制系统可广泛应用于很多领域。
单片机在工业控制、尖端武器、通信设备、信息处理、家用电器等各测控领域的应用中独占鳌头。
今天,我们的生活环境和工作环境有越来越多称之为单片机的小电脑在为我们服务。
时下,家用电器和办公设备的智能化、遥控化、模糊控制化己成为世界潮流,而这些高性能无一不是靠单片机来实现的。
人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。
测量温度的关键是温度传感器,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域。
温度传感器的发展经历了三个发展阶段:
传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。
目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。
社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。
粮食的温度是影响粮食储藏的重要参数,两者之间是相互关联的,粮食在正常储藏条件下(即安全条件下),含水量一般在12%以下,不会使粮食温度发生突变,一旦粮食受潮含水量增加,超过20%以上时,就满足了粮粒发芽的条件,新陈代谢加快而产生呼吸热,使局部粮温升高,必然引起粮食发热和霉变,且极易产生连锁反应,从而造成难以挽回的损失因此,粮食温度监控技术在农业上的应用是十分重要的。
多路数据采集来实现粮仓温度实时监测是有着重要意义的。
除此之外,多路数据采集在各种场合都有着重要的地位。
1.2设计思想及基本功能
使用89C51实现32路数据采集。
通过单总线,对32个数字温度传感器DS18B20的控制,做到对32路温度数据的实时采集,通过LCD12864完成显示。
系统要求有较为友好的人机界面,可以现实对DS18B20读取地址,可以根据设初设地址值,分别对32路DS18B20温度采集,采回来的数据要经过处理显示。
同时要具有数据上下限设置,一旦数据超出限制,就要产生相应的警报。
2总体方案设计
2.1方案选取
温度传感器大致可分为以下几种:
(1)热电偶传感器。
热电偶传感器是工业测量中应用最广泛的一种温度传感器,它与被测对象直接接触,不受中间介质的影响,具有较高的精度;测量范围广,可从-50℃~1600℃进行连续测量,特殊的热电偶如金,铁,镍,铬最低可测到-269℃,钨,铼最高可达2800℃。
(2)模拟集成温度传感器。
采用硅半导体集成工艺制成的,因此亦称硅传感器或单片集成温度传感器。
模拟集成温度传感器是在20世纪80年代问世的,它将温度传感器集成在一个芯片上、可完成温度测量及模拟信号输出等功能。
模拟集成温度传感器的主要特点是:
功能单一、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温,不需要进行非线性校准,外围电路简单。
(3)光纤传感器。
光纤测温技术可分为两类:
全辐射测温法,单辐射测温法,双波长测温法,多波长测温法等。
特点是:
光纤挠性好、透光谱段宽、传输损耗低,无论是就地使用或远传均十分方便而且光纤直径小,可以单根、成束、Y型或阵列方式使用,结构布置简单且体积小。
缺点是:
测量起来困难,难于实现较高的精度,工艺比较复杂,且造价高,推广应用有一定困难。
(4)半导体吸收式光纤温度传感器。
半导体吸收式光纤温度传感器是利用了半导体材料的吸收光谱随温度变化的特性实现的。
一种传光型光纤温度传感器,是指在光纤传感系统中,光纤仅作为光波的传输通路,而利用其它如光学式或机械式的敏感元件来感受被测温度的变化。
在这类传感器中,半导体吸收式光纤温度传感器是研究得比较深入的一种。
(5)智能温度传感器。
智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。
它是微电子技术、计算机技术和自动测试技术(ATE)的结晶。
目前,国际上已开发出多种智能温度传感器系列产品。
智能温度传感器内部包含温度传感器、A/D传感器、信号处理器、存储器(或寄存器)和接口电路。
有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。
智能温度传感器能输出温度数据及相关的温度控制量,适配各种微控制器(MCU),并且可通过软件来实现测试功能,即智能化取决于软件的开发水平。
随着科学技术的不断进步与发展,温度传感器的种类日益繁多,数字温度传感器更因适用于各种微处理器接口组成的自动温度控制系统具有可以克服模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端等优点,被广泛应用于工业控制、电子测温计、医疗仪器等各种温度控制系统中。
其中,比较有代表性的数字温度传感器有DS1820、MAX6575、DS1722、MAX6635等。
相比较而言,传统的温度检测以热敏电阻为温度敏感元件,热敏电阻成本低,但需要后续信号处理电路,而且热敏电阻的可靠性相对较差,测量温度的准确度低,检测系统的精度差。
数字式温度传感器的种类也不少,并且在实际工程设计中具有上述诸多优点。
综上所述,考虑到成本和运行的复杂程度,我选择了用32个数字温度传感器DSl820作为32路数据的温度传感器。
DSl820数字温度计提供9位(二进制)温度读数指示器件的温度信息经过单线接口送入DSl820或从DSl820送出因此从主机CPU到DSl820仅需一条线(和地线)DSl820的电源可以由数据线本身提供而不需要外部电源因为每一个DSl820在出厂时已经给定了唯一的序号因此任意多个DSl820可以存放在同一条单线总线上这允许在许多不同的地方放置温度敏感器件DSl820的测量范围从-55℃到+125℃增量值为0.5℃,可在ls(典型值)内把温度变换成数字每一个DSl820包括一个唯一的64位长的序号该序号值存放在DSl820内部的ROM(只读存贮器)中开始8位是产品类型编码(DSl820编码均为10H)接着的48位是每个器件唯一的序号最后8位是前面56位的CRC(循环冗余校验)码DSl820中还有用于贮存测得的温度值的两个8位存贮器RAM编号为0号和1号。
1号存贮器存放温度值的符号,如果温度为负,则1号存贮器8位全为1,否则全为0。
0号存贮器,用于存放温度值的补码,LSB(最低位)的“1”表示0.5℃。
将存贮器中的二进制数求补再转换成十进制数并除以2就得到测温度值。
每只D51820都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。
采取数据总线供电方式,可以节省一根导线,但完成温度测量时间较长,采取外部供电方式,则多用一根导线,但测量速度较快。
2.2系统框图
3硬件电路设计
3.1电源电路
本系统需要5V的电压为单片机和各路DS18B20供电,所以有必要保证拥有稳定的5V直流电源。
方案一:
用4节充电镍氢电池(电压1.2V)串联,总电池组两端接两根导线(电压4.8V)为系统供电。
但是4.8V的电压只是接近5V,虽然可以使系统工作,但是并不准确,此外在电池的饱和状态和过放状态之间,电池的电压变化较大,对于需要稳定电压来工作的单片机来说,此方案不能达到要求。
方案二:
通过变压器将220V照明电降压到7.2V,通过整流桥整流,将交流转为直流。
采用L7805稳压元件将7.2V电压降压到5V为控制模块和循迹模块供电。
稳压电路很简单,转换后的电压比较稳定,并且L7805的价格也不算贵。
但是考虑到实验阶段并不需要大电流,并且考虑到连接220V照明电的用电安全性,所以我也没有采用此方案。
方案三:
现在众多设备均可输出稳定的5V的直流电,如电脑USB接口可以输出500mA的5V直流电,手机充电器可以输出500mA~1.5A的5V直流电。
因为实验阶段并不需要大电流,所以我选择用系统采用USB供电,这样也可以方便程序调试。
3.2晶振电路
电路中的晶振即石英晶体震荡器。
由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。
通过基准频率来控制电路中的频率的准确性。
同时,它还可以产生振荡电流,向单片机发出时钟信号。
下图是单片机的晶振电路。
片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。
片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz~24MHz之间选取。
C1、C2是反馈电容,其值在20pF~100pF之间选取,典型值为30pF。
本电路选用的电容为30pF,晶振频率为11.0592MHz。
XTAL1接外部晶体的一个引脚,XTAL2接外晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端。
采用外部振荡器时,对HMOS单片机,该引脚接外部振。
在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。
一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。
但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。
这一特定频率就是石英晶体的固有频率,也称谐振频率。
石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,以便使MCS-51片内的OSC电路按石英晶振相同频率自激振荡。
通常,OSC的输出时钟频率fOSC为0.5MHz-16MHz,典型值为12MHz或者11.0592MHz。
电容C1和C2可以帮助起振,典型值为30pF,调节它们可以达到微调fosc的目的。
3.3复位电路
复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚上加大于2个机器周期的高电平。
复位后的单片机地址初始化为0000H,然后继续从0000H单元开始执行程序。
在复位电路中提供复位信号,等到系统电源稳定后,再撤销复位信号。
但是为了在复位按键稳定的前提下,电源稳定后还要经一定的延时才撤销复位信号,以防在按键过程中引起的抖动而影响复位。
图中所示的RC复位电路可以实现上述基本功能。
3.4单片机
由于数据采集量大,再加上需要设置友好的人机界面,所以该程序较大,在5-6KB之间。
对于之前的单片机89C51来说,需要外扩FLASH,但是对于89C52来讲,8KB的FLASH已经可以满足程序的要求了。
所以我选择了用一片STC89C52来作为系统的控制器,加上之前的电源电路、晶振电路、复位电路,构成了一个单片机最小系统。
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35Mhz,6T/12T可选。
3.5温度传感器电路
DS18B20通过一个单线接口发送或接受信息,因此在中央处理器和DS18B20之间仅需一条连接线(加上地线)。
DS18B20能直接从单线通讯线上汲取能量,除去了对外部电源的需求。
每个DS18B20都有一个独特的64位序列号,从而允许多只DS18B20同时连在一根单线总线上;因此,很简单就可以用一个微控制器去控制很多覆盖在一大片区域的DS18B20。
这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。
根据DS18B20的特性,32路DS18B20可以并联在一起,数据线只占用一个IO口。
3.6按键电路
系统需要通过按键来进行功能选择、参数设定等操作,因为我设计的软件系统已经加入了较为友好的人机交流界面,用户可以通过菜单来进行相应操作,所以并不需要过多的按键。
同时为了操作方便,我保留了“确定”、“返回”、“上”、“下”四个功能键。
3.7显示电路
考虑到32路数据采集的信息量大,所以排除了数码管和LCD1602来作为显示模块,综合各个种因素和要求,我选择用LCD12864,来作为系统的显示模块,从实验效果来看,LCD12864完全满足要求。
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
3.8蜂鸣器电路
当采集到的数据出现问题,或者是数据信息超出设定值,系统会发出警报。
这里我用一个有源蜂鸣器来模拟报警器。
3.9下载电路
STC89C52可以用STC公司提供的STC—isp通过串口下载,但是现在的笔记本电脑基本上没有串口插口,为了程序下载和调试方便,我在单片机最小系统中加入了USB转串口电路,作为下载电路。
4系统软件设计
4.1系统菜单框图
4.2数据采集程序流程图
5编程与调试
5.1开发环境
在程序的编写中有汇编语言和C语言,就大型程序而言,C语言相对于汇编语言更容易理解,编程更方便。
KeilC51软件是目前功能最强大的单片机C语言集成开发环境。
5.2硬件设备
ZW—C51单片机开发板是一块较为实用的学习型51单片机开发板。
该开发板具有流水灯、数码管、蜂鸣器、键盘等,另外集成有24c02芯片、实时时钟芯片、AD\DA芯片等,同时还留有1602、12864、红外遥控、S18B20等接口。
各路IO口也全部引出,方便进行各种实验。
5.3调试过程
由于资金有限,我只在32路数据系统中添加了8个DS18B20来调试和检验系统的可靠性,但是系统保留有32路数据采集功能,可继续扩展硬件。
为了实验方便,该系统控制、显示均在我先前制作的开发板上运行。
系统的四个按键对应屏幕最后一行的四个功能,屏幕提示变化,按键功能也会随之变化,类似于手机的功能键操作。
系统启动后显示在“开始界面”:
然后选择【菜单】可以进入功能选择:
选择【<】或【>】可以上下翻动功能,点【确定】可以进入该功能:
当我们选择“巡视模式”,进入32路数据巡视:
选择【<】或【>】可以上下翻动查看各路数据的信息,点【确定】可以进入该路数据的详细信息:
当该路温度数据在正常范围内时,会显示“normal”,异常时会有“!
Warn!
”警告。
在详细信息中除了显示温度和警告信息外,还会显示该路DS18B20的地址信息:
在“功能界面”选择“监控模式”,可以进入“监控模式”:
在“监控模式”下,屏幕将同时显示32路数据信息,正常路将显示“●”,异常路将显示“!
”并开启蜂鸣器报警:
在“功能界面”选择“地址读取”,可以读取新的DS18B20地址信息:
在“功能界面”选择“报警设定”,可以设定报警界限:
在“功能界面”选择“版本信息”,可以查看版本信息:
6总结
经过一周的资料查找和设计,我完成了单片机的课程设计。
本文设计了基于89C52的32路数据采集系统,介绍了单片机最小系统和外围硬件电路设计到软件设计的一系列步骤。
本设计采用32个数字温度传感器DS18B20作为传感器,89C52单片机作为控制芯片,辅助键盘和显示,实现了32路温度数据实时采集监控的效果。
纵观整个设计系统,单片机使用了常用的STC89C52单片机,从而使整个控制芯片了如指掌。
熟悉的控制芯片设计起来也是得心应手。
所用芯片简单实用,减少了开发和硬件开销。
传感器部分使用的DS18B20数字温度传感器,具有结构简单、运行可靠、控制方便、控制性能好等优点。
使得多路温度数据采集更加的准确,稳定。
由于设计的时间和能力有限,还有许多功能和技术没有充分研究,可能存在不合理的地方。
其次,系统预留出的接口可以和电脑实现串口双工通信,由于时间仓促,没有来得及写电脑上位机软件,造成该项功能没有实现。
但是,一个完整的课程设计过程,让我掌握了单片机系统和电子操作软件等方面的知识,尤其是熟悉了用AltiumDesigner画电路原理图和用visio画程序流程图。
这使我在动手能力方面有很大的提升,也给今后更成功、完善的设计打下坚实的基础。
通过课程设计,最大的收获就是培养了我在电子自动化控制的兴趣,这种兴趣会成为以后学习专业课的动力。
参考文献
[1]DS18B20中文资料.XX文库,2010
[2]胡仁喜.AltiumDesigner13从入门到精通[M].北京:
机械工业出版社,2013
[3]郭天祥.51单片机C语言教程[M].北京:
电子工业出版社,2009
[4]ZW-C51开发板说明书,2013
[5]阎石.数字电子技术基础[M].北京:
高等教育出版社,2009
附录1系统源代码
/***************************************************************/
//程序名称:
主程序菜单功能选择
//编写日期:
20140702
//最后修改:
20140702
//说明:
本程序仅供学习交流,切勿用于工业、商业。
/***************************************************************/
#include"lcd12864.h"
#include"s18b20.h"
#include"sys.h"
#include"key.h"
#include
#definemenu_function_MAX6//菜单最大选项
#definemenu_temperature_MAX32//数据路数
sbitBUZZ=P2^3;//蜂鸣器
ucharfunction_num,temperature_num;//菜单、温度路值
charMAX_temperature=50,MIN_temperature=0;//报警温度最值
enum{STAR,AUTHOR,FUNCTION,WARN,TEM_1,TEM_2,MONITOR,SET,READ,MASSAGE};
ucharcodemenu_operation[3][16]={"菜单作者",
"确定<>返回",
"返回"};
ucharcodemenu_symbol[]={"●!
"};
ucharcodemenu_function[6][12]={"1.巡视模式",
"2.监控模式",
"3.报警设定",
"4.地址读取",
"5.版本信息",
"6.串口联机"};
ucharcodemenu_txt1[]={"数字温度计课程设计"};
ucharcodemenu_txt2[]={"班级:
电气F1101"};
ucharcodemenu_txt3[]={"非常抱歉此功能尚未添加!
"};
ucharcodemenu_txt4[]={"路:
第路温度信息:
"};
ucharcodemenu_txt5[]={"系统进入监控模式按任意键退出"};
ucharcodemenu_txt6[]={"报警设定最高温最低温"};
ucharcodemenu_txt7[]={"请确保只有一个S18B20连设备"};
ucharcodemenu_txt8[]={"固件版本:
ZW-C51软件版本:
V2.7.0生产时间:
140702"};
/******************************************************************
*函数名称:
display_menu()
*函数功能:
菜单显示
*入口参数:
option
*出口参数:
无
******************************************************************/
voiddisplay_menu(ucharoption)
{
ucharrow,line,a;
if(option>menu_function_MAX)option=menu_function_MAX;
elseif(option==0)option=1;//避免输入量超过设定值而乱码
if(option==1)
{
line=option-1;//如果选择第一项,仍从第一项开始显示
lcd_pos(0,0);lcd_wdat(menu_symbol[0]);lcd_wdat(menu_symbol[1]);
lcd_pos(1,0);lcd_wdat(menu_symbol[2]);lcd_wdat(menu_symbol[3]);
lcd_pos(2,0);lcd_wdat(menu_symbol[2]);lcd_wdat(menu_symbol[3]);
}
elseif(option==menu_function_MAX)
{
line=option-3;//如果选择最后一项,从倒数第三项开始显示
lcd_pos(0,0);lcd_wdat(menu_symbol[2]);lcd_wdat(menu_symbol[3]);
lcd_pos(1,0);lcd_wdat(menu_symbol[2]);lcd_wdat(menu_symbol[3]);
lcd_pos(2,0);lcd_wdat(menu_symbol[0]);lcd_wdat(menu_symbol[1]);
}
else
{
line=option-2;//其他选项均从前一项开始显示,保证所选项在中间
lcd_pos(0,0);lcd_wdat(menu_symbol[2]);lcd_wdat(menu_symb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 温度计 设计