强烈推荐环境温度检测与报警毕业论文.docx

上传人:b****5 文档编号:6599543 上传时间:2023-01-08 格式:DOCX 页数:28 大小:172.87KB
下载 相关 举报
强烈推荐环境温度检测与报警毕业论文.docx_第1页
第1页 / 共28页
强烈推荐环境温度检测与报警毕业论文.docx_第2页
第2页 / 共28页
强烈推荐环境温度检测与报警毕业论文.docx_第3页
第3页 / 共28页
强烈推荐环境温度检测与报警毕业论文.docx_第4页
第4页 / 共28页
强烈推荐环境温度检测与报警毕业论文.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

强烈推荐环境温度检测与报警毕业论文.docx

《强烈推荐环境温度检测与报警毕业论文.docx》由会员分享,可在线阅读,更多相关《强烈推荐环境温度检测与报警毕业论文.docx(28页珍藏版)》请在冰豆网上搜索。

强烈推荐环境温度检测与报警毕业论文.docx

强烈推荐环境温度检测与报警毕业论文

(此文档为word格式,下载后您可任意编辑修改!

湖南工程学院

课程设计

课程名称单片机原理与应用

课题名称环境温度检测与报警

专业电气工程及其自动化

班级

学号

姓名

指导教师王迎旭李晓秀汪超赵葵银

2012年9月14日

 

湖南工程学院

课程设计任务书

课程名称单片机与应用

课题环境温度检测与报警

专业班级

学生姓名

学号

指导老师王迎旭李晓秀汪超赵葵银

审批王迎旭李晓秀汪超赵葵银

任务书下达日期2012年9月3日

任务完成日期2012年9月14日

 

设计内容与设计要求

设计内容:

本课题要求以单片机为核心设计一个环境温度检测与报警系统,要求测温范围为–10~125℃,精度误差在0.1℃以内,LED数码管直读显示,可以由用户自己设定上限温度,如果环境温度超过实际温度或在3秒内温度变化超过5度则会发出声光报警。

设计任务包括控制系统硬件设计和应用程序设计。

要求焊接好开发板,在开发板上进行调试。

设计要求:

1)确定系统设计方案;

2)进行系统的硬件设计;

3)完成必要元器件选择;

4)开发板焊接及测试

5)系统软件设计及调试;

6)系统联调及操作说明

7)写说明书

主要设计条件

1、MCS-51单片机实验操作台1台;

2、PC机及单片机调试软件;

3、开发板1块;

4、制作工具1套;

5、系统设计所需的元器件。

说明书格式

封面

课程设计任务书

目录

第1章概述(课题设计的要求、目的及意义)

第2章系统总体方案选择与说明(系统硬件电路设计框图与工作原理)

第3章硬件电路设计(各部分电路设计、原理、参数计算、IO分配等)

第4章应用软件设计(流程图、算法等)

*第5章系统仿真调试

第6章硬件调试与结果分析(开发板焊接、性能测试、结果、操作说明)

第7章结束语(系统设计小结:

已完成的工作、效果、特色、不足与展望)

致谢

参考文献

附录A系统硬件电路原理图

附录B程序清单

评分表

进度安排

设计时间分为二周

第一周

星期一、上午:

布置课题任务,课题介绍及讲课。

下午:

借阅有关资料,总体方案讨论。

星期二、分班级焊接开发板

星期三、确定总体方案,学习与设计相关内容。

星期四、各部分方案设计,各部分设计。

星期五、设计及上机调试。

星期六、设计并调试

第二周

星期一:

设计及上机调试。

星期二:

调试,中期检查。

星期三:

调试、写说明书。

星期四--星期五上午:

写说明书、完成电子版并打印成稿。

星期五下午:

答辩。

参考文献

[1]王迎旭等.单片机原理及及应用.机械工业出版社.2012年

[2]三恒星科技.MCS-51单片机原理与应用实例[M].电子工业出版社.2008年

[3]戴仙金.51单片机及其C语言程序开发实例[M].清华大学出版社.2008年

[4]陈海宴.51单片机原理及应用——基于KeilC与Proteus[M].北京航空航天大学出版社.2010年

目录

第1章概述1

1.1课题的设计要求、目的及意义1

第2章总体方案2

2.1方案的选择2

2.2系统结构框图及工作原理3

第3章硬件电路设计5

3.1复位电路的设计5

3.2时钟振荡电路5

3.3显示电路6

3.4数字温度传感器DS18B207

3.5按键查询电路9

3.6单片机硬件资源分配10

第4章应用软件设计11

4.1主函数的设计11

4.2键盘扫描函数的设计12

4.3读出温度子程序13

4.4报警子程序13

第5章硬件调试与结果分析14

5.1调试方法14

5.2调试中出现的问题及解决办法14

5.3调试结果14

第6章设计总结17

参考文献18

附录A系统硬件原理图19

附录B程序清单20

第1章概述

1.1课题的设计要求、目的及意义

单片机技术作为计算机技术的一个重要分支,广泛应用于工业控制,智能化仪器仪表,家用电器,甚至电子玩具等各个领域,它具有体积小,功能多,价格低廉,使用方便,系统设计灵活等优点,因此越来越受工程技术人员的重视与亲睐。

伴随着科学技术和生产的不断发展,需要对各种参数进行温度测量。

温度控制和测量在各行各业中发挥着重要的作用。

如在日趋发达的工业之中,利用测量与控制温度来保证生产的正常运行。

在农业中,用于保证蔬菜大棚的恒温保产等。

在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一,具有现实意义.

本课题以单片机为核心,实现温度的检测和控制。

用温度感应器件ds18b20模拟温度的输入量,当温度低于25度时,发出长嘀声报警,当温度高于30度时,启动直流电机散热。

测量温度范围在0-99度。

用ds18b20温度的检测和控制,并用四位LED数码显示管显示各路温度,并且设置按键可实现对温度的报警上下限进行控制.

以此简易的温度检测和控制系统来达到初步应用单片机,同时对各门学科知识作一个较好的整合,对单片机在实际温度控制的实现形成较好的概念和理解.

第2章系统总体方案选择与说明

2.1方案的选择

温度芯片DS18B20测量温度,输出信号全数字化。

便于单片机处理及控制,省去传统的测温方法的很多外围电路。

且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。

在0—100摄氏度时,最大线形偏差小于1摄氏度。

DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89c52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。

这样,测温系统的结构就比较简单,体积也不大。

采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。

既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据,另外AT89C52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟.

该系统利用AT89C52芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度,利用键盘来进行调时和温度查询。

这种方法测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了此法。

2.2系统结构框图及工作原理

2.2.1系统原理

该数字温度检测系统如图2-2所示有四部分组成:

温度检测,显示控制,温度显示,报警。

图2-2系统原理

(1)温度检测

该模块由DS18B20负责对测试点的温度进行测量,单片机89C52对DS18B20进行控制。

由于DS18B20只有一根数据线,所以系统中的数据交换,控制都由这根线完成,只需将DS18B20挂接到单片机的一个数据接口就可以直接使用。

(2)显示控制

由于DS18B20是通过单总线方式与单片机进行通讯的,所以对程序编写的要求比较高。

主要的程序流程是这样的:

首先由单片机发出对DS18B20进行初始化的信号,在DS18B20初始化成功后,发送指令CC跳过读序列号的操作,接着发送指令44启动温度转换,此时在对DS18B20进行初始化,在发送指令CC跳过读序列号操作,最后发送指令BE读暂存存储器。

至此完成一个周期,当前温度值所对应的二进制编码已经被保存在DS18B20的ROM上,我们只需将ROM上的温度值读取出来,然后转换成相应的十进制,就可以拿来做后面的运算和显示了。

(3)温度显示

这部分模块由四位八段共阳极的数码管组成,段选部分直接与单片机相连。

(4)报警

报警装置由蜂鸣器构成,当温度超过设定值时报警。

第3章硬件电路设计

3.1复位电路的设计

采用47uF的C3和10K的R2可以保证加在引脚上的高电平持续2个机器周期,即使单片机有效地复位。

按键可以随时使电路复位,当键按下时1K的R1和10K的R2串联分压使RST为高电平,即复位,如图3-1所示。

图3-1复位电路

3.2时钟振荡电路

时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。

晶振频率的大小决定了单片机系统工作的快慢。

本次设计采用内部方式的外部时钟接法。

为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,电容C1、C2对频率有微调作用,故外接晶振时,C1和C2在本设计中选择30pF,振荡频率取12MHz。

晶振的两个引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。

具体连接图如图3-2所示:

图3-2时钟振荡电路

3.3显示电路

本次设计中采用共阴极数码管作为显示器。

LED的驱动电路简单,使用方便,具有耗电少、成本低廉、配置简单灵活、安装方便、耐振动、使用寿命长等优点。

LED显示器与单片机的接口一般有动态显示与静态显示接口两种电路。

本次设计中,由于单片机本身提供的IO口有限,本次设计采用动态显示,数码管采用的是共阳极接法。

用AT89C52的P0口作段码输出时,在本次设计中我们将数码管各段加上拉电阻后接单片机P0口。

我们把P2口的输出信号直接接到数码管的位选端作为位选信号,低电平有效,具体连接如图3-3所示。

图3-3

3.4数字温度传感器DS18B20

本次设计的硬件电路简单,关键的地方在DS18B20,也是最复杂难懂的。

温度传感器采用的是DALLAS公司的单总线数字温度传感器DS18B20。

它采用独特的单线接口方式,仅需一个信号线发送或接收信息。

测量范围为-55℃~125℃,CPU用P3.6口与DS18B20通信,如图3-4-1即为温度传感器。

图3-4-1温度传感器

下图为DS18B20的内部结构框图

图3-4-2DS18B20的内部结构框图

64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。

温度报警触发器TH和TL,可通过软件写入户报警上下限。

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。

高速暂存RAM的结构为8字节的存储器,结构如图3-4所示。

表3-4分辨率转换

头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。

第5个字节,

为配置寄存器,它的内容用于确定温度值的数字转换分辨率。

DS18B20

工作时寄存器中的分辨率转换为相应精度的温度数值。

该字节各位的定义如图3所示。

低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。

DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。

因此,在实际应用中要将分辨率和转换时间权衡考虑。

当DS18B20接收到温度转换命令后,开始启动转换。

转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。

单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃LSB形式表示。

下表为DS18B20温度转换时间表。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲

信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。

其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。

另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。

系统对DS18B20的各种操作按协议进行。

操作协议为:

初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

3.5按键查询电路

本系统设有四个独立按钮,如图3-4所示。

为确保随时可以控制进入和退出查询状态,所以设有一个进入和退出查询状态的复用按键,自进入查询状态时,再按对应的通道查寻键即可查询各通道信息,例如按下通道0查询,假若当前显示的是通道0的当前温度及对应的数字量为上线,如果再次按下该键,则显示的是为报警的下线,如果超温次数大于设定值,则会出现报警现象,提示需对该路的控制对象进行必要的检查。

图3-5按键电路

3.6单片机硬件资源分配

IO口配表

P0口

P0.0

LED数码管A段

P2口

P2.0

LED数码管W3位选端

P0.1

LED数码管B段

P2.1

LED数码管W1位选端

P0.2

LED数码管C段

P2.2

LED数码管W2位选端

P0.3

LED数码管D段

P2.3

LED数码管W4位选端

P0.4

LED数码管E段

P2.4

独立键盘的S4列选端

P0.5

LED数码管F段

P2.5

独立键盘的S3列选端

P0.6

LED数码管G段

P2.6

独立键盘的S2列选端

P0.7

LED数码管DP段

P2.7

独立键盘的S1列选端

P3口

P3.7

蜂鸣器

P3.6

Ds18b20接口

第4章应用软件设计

4.1主函数的设计

整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。

从软件的功能不同可分为两大类:

一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。

二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。

每一个执行软件也就是一个小的功能执行模块。

这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。

各执行模块规划好后,就可以规划监控程序了。

首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。

主程序流程见图4-1。

图4-1主函数流程

4.2键盘扫描函数的设计

图4-2为键盘扫描函数流程图,为防止误读电平,读引脚时先写“1”。

本系统在P2口低四位接有四个开关,故将低四位写“1”。

首先判断有无键按下,然后延时去抖动后再次判有无键按下,然后等待键的释放,最后是键的识别。

假若P2.0按下,则K1=1,因为四个键均为复用键,所以d[0]++表示当前是查询该路的温度,对于其他2路通道也照此设计。

图4-2键盘扫描函数流程

4.3读出温度子程序

读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写,流程如图4-3所示。

如图4-3

4.4报警子程序

报警根据通过键盘设定的上下限温度值来比较是否触发报警装置。

流程如图4-4所示。

图4-4报警子程序函数

第5章硬件调试与结果分析

5.1调试方法

首先将用KEIL编译好的程序进行编译,程序无错误运行后产生hex文件,然后用单片机连接电脑用软件下载到单片机中试运行看结果。

调试时单片机p0口一次连接显示管a到dp,将j6用线短接,s1到s4分别连接单片机p2.4到p2.7显示管位选连接单片机p2.0到p2.3,温度检测原件ds18b20连接p3.6,连接好电源都打开调试。

5.2调试中出现的问题及解决办法

单片机调试时出现显示闪烁太大,以至于显示看不清,应看显示抖动程序是否正确,调试时按键加减显示过快出现跳跃式显示,应该看看按键显示程序的延时是否符合标准,

5.3调试结果

(1)开机正常显示温度

图5-3-1开机显示

(2)按下矩阵键盘最后一排第一个键显示上限定,按两下为下限设定。

图5-3-2上线显示

(3)按下矩阵键盘最后一排第二个键显示加一功能。

图5-3-3上线加一

(4)按下矩阵键盘最后一排第三个键显示减一功能。

图5-3-4上线减一

(5)按下矩阵键盘最后一排第四个键显示反回。

图5-3-5返回显示界面

第6章设计总结

经过两周的努力,老师任务书交代的基本内容都已经通过单片机实现,效果不错,

(1)可以很稳定的通过ds18b20检测显示温度,

(2)可以自由的通过键盘修改温度报警上下限,(3)当温度超出设定范围是,有报警提示。

但是本次设计的不足之处在没能更好的实现温度突变报警,还有没有显示四位温度,希望在以后的接触过程中更加的了解单片机,学到更多的应用。

以后有什么问题要勇敢的面对,遇到的多了,自然而然的我们会自信的解决这些问题。

这就是我在这次课程设计中的最大收获。

最后感谢老师和同一课题的彭琼和姚波同学的帮助和指点,特别是王迎旭老师的热心指导,没有老师们的帮助我们不可能顺利解决一些疑惑和难题,再次谢谢老师们的帮助和辛勤的付出。

参考文献

[1]王迎旭.单片机原理与应用[M].北京:

机械工业出版社,2004.

[2]三恒星科技.MCS-51单片机原理与应用实例[M].北京:

电子工业出版社,2008.

[3]戴仙金.51单片机及其C语言程序开发实例[M].北京:

清华大学出版社,2008.

[4]陈海宴.51单片机原理及应用——基于KeilC与Proteus[M].北京:

北京航空航天大学出版社,2010.

[5]何立民.单片机高级教程——应用与设计[M].2版.北京:

北京航空航天大学出版社,2007.

附录A系统硬件原理图

附录B程序清单

#include

bitset=0;

bitFlag=0;

intn;

函数的声明区

voidkey_to1();

voidkey_to2();

voiddelay(uint);

voidkey();

voidShow();

函数的定义区

*延时子函数*

voiddelay(uintnum)

{

while(num--);

}

DS18b20温度传感器所需函数,分为初始化,读写字节,读取温度4个函数

Init_DS18B20(void)传感器初始化

{

ucharx=0;

DATA=1;DQ复位

delay(10);稍做延时

DATA=0;单片机将DQ拉低

delay(80);精确延时大于480us450

DATA=1;拉高总线

delay(20);

x=DATA;稍做延时后如果x=0则初始化成功x=1则初始化失败

delay(30);

}

ReadOneChar(void)读一个字节

{

uchari=0;

uchardat=0;

for(i=8;i>0;i--)

{

DATA=0;给脉冲信号

dat>>=1;

DATA=1;给脉冲信号

if(DATA)

dat|=0x80;

delay(8);

}

return(dat);

}

WriteOneChar(unsignedchardat)写一个字节

{

uchari=0;

for(i=8;i>0;i--)

{

DATA=0;

DATA=dat&0x01;

delay(10);

DATA=1;

dat>>=1;

}

delay(8);

}

intReadTemperature(void)读取温度

{

uchara=0;

ucharb=0;

intt=0;

floattt=0;

Init_DS18B20();

WriteOneChar(0xCC);跳过读序号列号的操作

WriteOneChar(0x44);启动温度转换

Init_DS18B20();

WriteOneChar(0xCC);跳过读序号列号的操作

WriteOneChar(0xBE);读取温度寄存器等(共可读9个寄存器)前两个就是温度

a=ReadOneChar();低位

b=ReadOneChar();高位

t=b;

t<<=8;

t=t|a;

tt=t*0.0625;

t=tt*10+0.5;

return(t);

}

voiddisplay00()*********显示负值子函数

{

dd=-(temp-1);

buf[1]=dd100;

buf[2]=dd100;

buf[3]=dd%10010;

buf[0]=dd%10;

动态显示

for(j=0;j<5;j++)

{

P2=0xff;初始灯为灭的

P0=0x00;

P2=0xfd;显示小数点

P0=0x80;显示小数点

delay(100);

P2=0xff;初始灯为灭的

P0=0x00;

P2=0xf7;片选LED1

P0=0x40;

delay(100);

P2=0xff;

P0=0x00;

P2=0xfb;片选LED2

P0=table[buf[2]];

delay(100);

P2=0xff;

P0=0x00;

P2=0Xfd;片选LED3

P0=table[buf[3]];

delay(100);

P2=0xff;

P0=0x00;

P2=0Xfe;

P0=table[buf[0]];片选LED4

delay(100);

P2=0xff;

}

}

显示正值子函数

voiddisplay()

{

buf[1]=temp1000;显示百位

buf[2]=temp100%10;显示十位

buf[3]=temp%10010;显示个位

buf[0]=temp%10;第4位南北秒个位

for(j=0;j<3;j++)

{

P2=0xff;初始灯为灭的

P0=0x00;

P2=0xfd;显示小数点

P0=0x80;显示小数点

delay(300);

P2=0xff;初始灯为灭的

P0=0x00;

P2=0xf7;片选LED1

P0=table[buf[1]];

delay(300);

P2=0xff;

P0=0x00;

P2=0xfb;片选LED2

P0=table[buf[2]];

delay(300);

P2=0xff;

P0=0x00;

P2=0Xfd;片选LED3

P0=table[buf[3]];

delay(300);

P2=0xff;

P0=0x00;

P2=0Xfe;

P0=table[buf[0]];片选LED4

delay(300);

P2=0xff;

}

}

voidke

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1