测控系统设计课程设计说明书温度检测显示及报警装置设计与制作六位数码管显示.docx
- 文档编号:7695093
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:28
- 大小:244.23KB
测控系统设计课程设计说明书温度检测显示及报警装置设计与制作六位数码管显示.docx
《测控系统设计课程设计说明书温度检测显示及报警装置设计与制作六位数码管显示.docx》由会员分享,可在线阅读,更多相关《测控系统设计课程设计说明书温度检测显示及报警装置设计与制作六位数码管显示.docx(28页珍藏版)》请在冰豆网上搜索。
测控系统设计课程设计说明书温度检测显示及报警装置设计与制作六位数码管显示
课程设计说明书
2015-2016学年第2学期
学院:
自动化工程学院
专业:
测控技术与仪器
学生姓名:
刘鑫月
学号:
2013307020304
班级:
测控133
课程设计名称:
测控系统设计
课程设计题目:
温度检测显示及报警装置设计与制作
起迄日期:
2016年5月23日~6月3日
课程设计地点:
主教5楼
指导教师:
赵君、关硕
系主任:
陈东升
第1章绪论
1.1课题背景
温度是一个和人们生活环境密切相关物理量,也是在其他研究、生产、科研、生活中需要测量和控制的物理量,同时也是最基本的环境参数。
人们的生活与坏境温度息息相关,物理、化学、生物等科学都离不开温度。
温度的高低直接影响人们的生活质量和身体健康,许多电子设备都有额定温度单位,没有合适的温度会使电子产品造成故障。
在电厂的生产运行过程中,温度是锅炉生产蒸汽质量的重要指标之一,也是保证锅炉设备安全的重要参数。
同时,温度是影响锅炉传热过程和设备效率的主要因素。
因此温度检测对于保证锅炉的安全、经济运行,提高蒸汽产量和质量,减轻工人的劳动强度,改善劳动条件具有极其重要意义。
在实际的生产环境下,由于系统内部与外界的热交换是难以控制的,其他热源的干扰也是无法精确计算的,因此温度量的变化往往受到不可预测的外界环境扰动的影响。
因此,对温度的监测和控制具有非常重要的意义。
1.2课题意义
各种温度传感器和单片机被引入到测温系统中,这不仅使得测温更加精确,而且满足了不同环境对测量系统的要求。
通过单片机对温度传感器采集到的数据进行转换测温系统中的显示部分可以实时显示环境中的温度,单片机还可以对温度进行保存、控制、运算等等。
测温技术在生产过程中,产品质量控制和监测,设备在线故障诊断和安全保护以及节约能源等方面都发挥着重要作用。
使用自动温度控制系统可以对生产环境的温度进行自动控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。
第2章设计题目介绍
2.1设计目的
测控系统技术是自动控制理论和微型计算机原理和接口等技术在工业生产过程中实现自主测量自动控制的专门技术,其以自动控制理论为基础,以电子技术、传感器原理、计算机原理及接口等课程内容为辅助,通过对测控系统的设计实践环节培养学生理论应用能力、总结归纳能力以及自我学习能力,从而进一步提高学生工程实践能力和创新意识的培养。
2.2设计要求
设计并开发能自动测温并具有显示和报警系统的温度测量控制系统,要求以18b20做为温度测量传感器,以数码管、点阵、1602、全彩TFT屏做为温度等信息显示装置,以蜂鸣器为报警装置,能实现实时温度显示、温度上下限设定、温度上下限报警等功能。
具体功能要求如下:
(1)单片机开发仪提供的18b20温度传感器做为温度采集传感器。
对温度进行实时采集。
(2)本组(第一组)使用数码管做为信息显示装置。
(3)显示内容要求如下:
实时显示当前温度。
对上下限进行设定时显示设定值。
(要求显示的设定值能随按键按下而变化)
温度高于上限或低于下限时显示屏有相应显示。
(报警显示内容可自定)
(4)使用按键或4*4键盘做为输入设备,用于设定报警上下限。
(5)使用蜂鸣器做为报警装置,低于下限时短鸣3次为一组报警,每组报警之间有一定间隔,直至温度高于下限,2秒长鸣后表示已高于下限;高于上限是持续长鸣,直至低于上限时,短鸣3次示意已低于上限。
(6)可拓展其他功能做为发挥部分
2.3设计工作任务及工作量的要求
1.课程设计报告(由“题目背景与意义”、“设计题目介绍”、“系统总体框架”、“系统硬件设计”、“系统软件设计”、“结论”六个部分组成);
2.课程设计任务书;
3.系统硬件原理图;
4.系统软件流程图;
5.工作进程日记。
第3章系统总体框架
3.1系统总体设计
本系统由AT89C52单片机、DS18B20温度检测部分、七段六位数码管显示部分、按键输入部分和蜂鸣器报警部分组成。
DS18B20采集环境温度并保存在存储器中通过单片机将温度显示在数码管上。
按键调整报警的温度上下限,当温度低于下限或高于上限时蜂鸣器报警。
图3-1系统设计原理图
3.2总体设计方案
1.采用DS18B20作为温度传感器进行温度测量。
DS18B20可以满足从-55摄氏度到+125摄氏度测量范围,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度。
2.温度显示采用七段六位数共阴码管,它的引线已在内部连接完成,只需引出它们的各个笔划,公共电极,数码管广泛用于仪表,时钟,车站,家电等场合。
仪表数码管的应用代替了老套旧式的指针仪表,指针表精度低,测量不精确,精度只能在1-1.5之间,然后用数码管代替的数显仪表运用其高科技手段,精度可以达到0.1-0.5之间,是个很大的飞跃。
3.按键的选择四个普通按键,分别作为上限加键、上限减键、下限加键、下限减键。
4.单片机选用AT89C52,是一个低电压,高性能CMOS8位单片机,其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
图3-2系统设计流程图
第4章系统硬件设计
4.1硬件总体设计方案
4.1.1硬件设计目标
本系统中通过温度传感器DS18B20的数据线DQ与主控芯片单片机的P3.7相连接,DS18B20将采集到的数据送给单片机,经过单片机出来后,数码管显示14位数据线连接到单片机的P0、P2口上。
蜂鸣器经过三极管的驱动后,接到单片机实现当实时温度低于下限或高于上限的报警。
四个按键实现对上限值和下限值的查看与设定。
4.1.2接口和连接方式定义
1.数码管的段选端A、B、C、D、E、F、G、DP接到单片机P0口,位选端接到单片机的P2.0~P2.5口。
2.按键接到单片机的P1.0~P1.3。
3.蜂鸣器接到单片机的P1.7。
4.DS18B20的DQ接到单片机的P3.7。
4.2单片机最小系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统对51系列单片机来说,最小系统一般应该包括:
单片机、晶振电路、复位电路。
下面给出一个51单片机的最小系统电路图。
图4-1单片机最小系统
4.2.1复位电路
复位电路:
单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。
单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。
本次电路设计复位单路由电容串联电阻构成,选取电容的的大小是10uF,电阻的大小是10k。
所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。
图4-2复位电路
4.2.2晶振电路
本设计电路系统晶振选用11.0592MHz,单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
起振电容C1、C2一般采用15~33pF,本系统选用22pF。
并且电容离晶振越近越容易起振,晶振离单片机越近越好。
图4-3晶振电路
4.3测温传感器
DS18B20是常用的测温传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
4.3.1工作原理
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。
DS18B20测温原理如图3所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
图4-4DS18B20工作流程图
4.3.2工作特性
1.DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
2.DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
3.温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。
4.可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
5.在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
6.测量结果直接输出数字温度信号,串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
7.负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
8.DS18B20可以使用外部电源VDD,也可以使用内部的寄生电源。
在使用内部寄生电源方式供电时,要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量。
在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度。
在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85℃。
图4-518b20温度传感器接线图
4.4显示电路
4.4.1七段六位数码管驱动原理
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
1.静态显示驱动
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二~十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,而一个AT89C52单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
2.动态显示驱动
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
图4-6数码管显示模块接线图
4.5按键输入电路
当按键没有按下时,所有的输入端都是高电平,代表无键按下。
列线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
本次电路设计中单片机的P1口用作按键I/O口,加上拉电阻保证按键释放时,输入检测线上有稳定的高电平,当某一按键按下时,对应的检测线就变成低电平。
图4-7按键模块接线图
4.6报警电路
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。
振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
蜂鸣器的正极接到VCC(+5V)电源上,蜂鸣器的负极接到三极管的集电极C,三极管的基极B经过限流电阻后由单片机的P3.7引脚控制,当P3.7输出低电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。
因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。
程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。
另外,改变P3.7输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。
在本系统中当温度低于下限时短鸣3次为一组报警,每组报警之间有一定间隔,直至温度高于下限,2秒长鸣后表示已高于下限;高于上限是持续长鸣,直至低于上限时,短鸣3次示意已低于上限。
图4-8蜂鸣器接线图
4.7硬件原理图
图4-9硬件原理图
第5章系统软件设计
5.1软件设计及程序编写
本设计程序系统主要程序也是由五部分组成的:
单片机控制部分、温度检测部分、LCD数码管显示部分、键盘控制部分和蜂鸣器报警部分,其主程序执行可以通过以下的流程图来证实:
图5-1软件流程图
主程序如下:
/*******************************************************************************
*函数名:
main
*函数功能:
主函数
*输入:
无
*输出:
无
*******************************************************************************/
voidmain()
{
buzzer=1;
while
(1)
{
LcdDisplay(Ds18b20ReadTemp());
}
}
5.2测温部分
在本次设计系统中P3.7口用来单片机与温度传感器通讯。
它用到的相关函数如下:
Ds18b20Init()初始化 ; Ds18b20WriteByte()向18B20中写入数据 ;Ds18b20ReadByte()由18B20读取数;Ds18b20ChangTemp()从18B20中读取的温度值转换成可读数 ;Ds18b20ReadTempCom()发送读取温度命令;Ds18b20ReadTemp ()将温度值送入1602中显示;wenji()用于温度计算。
程序如下:
#include"temp.h"
/*************************************************************************
*函数名:
Delay1ms
*函数功能:
延时函数
*输入:
无
*输出:
无
*************************************************************************
voidDelay1ms(uinty)
{
uintx;
for(;y>0;y--)
{
for(x=110;x>0;x--);
}
}
/*************************************************************************
*函数名:
Ds18b20Init
*函数功能:
初始化
*输入:
无
*输出:
初始化成功返回1,失败返回0
*************************************************************************
ucharDs18b20Init()
{
uchari;
DSPORT=0;//将总线拉低480us~960us
//i=70;
i=900;
while(i--);//延时642us
DSPORT=1;//然后拉高总线,如果DS18B20做出反应会将在15us~60us后总线拉低
i=0;
while(DSPORT)//等待DS18B20拉低总线
{
Delay1ms
(1);
i++;
if(i>5)//等待>5MS
{
return0;//初始化失败
}
}
return1;//初始化成功
}
/*************************************************************************
*函数名:
Ds18b20WriteByte
*函数功能:
向18B20写入一个字节
*输入:
com
*输出:
无
*************************************************************************
voidDs18b20WriteByte(uchardat)//
{
uinti,j;
for(j=0;j<8;j++)
{
DSPORT=0;//每写入一位数据之前先把总线拉低1us
i++;
DSPORT=dat&0x01;//然后写入一个数据,从最低位开始
i=8;
while(i--);//延时8us
DSPORT=1;//然后释放总线,至少1us给总线恢复时间才能接着写入第二个数值
dat>>=1;
}
}
/*************************************************************************
*函数名:
Ds18b20ReadByte
*函数功能:
读取一个字节
*输入:
com
*输出:
无
*************************************************************************
ucharDs18b20ReadByte()
{
ucharbyte,bi;
uinti,j;
for(j=8;j>0;j--)
{
DSPORT=0;//先将总线拉低1us
i++;
DSPORT=1;//然后释放总线
i++;
i++;//延时2us等待数据稳定
bi=DSPORT;//读取数据,从最低位开始读取
/*将byte左移一位,然后或上右移7位后的bi,注意移动之后移掉那位补0。
*/
byte=(byte>>1)|(bi<<7);
i=4;//读取完之后等待4us再接着读取下一个数
while(i--);
}
returnbyte;
}
/*************************************************************************
*函数名:
Ds18b20ChangTemp
*函数功能:
让18b20开始转换温度
*输入:
com
*输出:
无
*************************************************************************
voidDs18b20ChangTemp()
{
Ds18b20Init();
Delay1ms
(1);
Ds18b20WriteByte(0xcc);//跳过ROM操作命令
Ds18b20WriteByte(0x44);//温度转换命令
Delay1ms(20);//等待转换成功,而如果你是一直刷着的话,就不用这个延时了
}
/*************************************************************************
*函数名:
Ds18b20ReadTempCom
*函数功能:
发送读取温度命令
*输入:
com
*输出:
无
*************************************************************************
voidDs18b20ReadTempCom()
{
Ds18b20Init();
Delay1ms
(1);
Ds18b20WriteByte(0xcc);//跳过ROM操作命令
Ds18b20WriteByte(0xbe);//发送读取温度命令
}
/*************************************************************************
*函数名:
Ds18b20ReadTemp
*函数功能:
读取温度
*输入:
com
*输出:
无
*************************************************************************
intDs18b20ReadTemp()
{
inttemp=0;
uchartmh,tml;
Ds18b20ChangTemp();//先写入转换命令
Ds18b20ReadTempCom();//然后等待转换完后发送读取温度命令
tml=Ds18b20ReadByte();//读取温度值共16位,先读低字节
tmh=Ds18b20ReadByte();//再读高字节
temp=tmh;
temp<<=8;
temp|=tml;
returntemp;
}
5.3显示部分
定义了有关的函数:
Lcd1602_Delay1ms()用于数码管的显示延迟;LcdWriteCom()向数码管写入命令码函数,LcdWriteData()向数码管写入数据函数;display()数码管显示函数;LcdInit()数码管初始化;LcdDisplay()数码管LCD显示读取到的温度。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测控 系统 设计 课程设计 说明书 温度 检测 显示 报警装置 制作 数码管