资源描述
苏州信息职业技术学院
毕业设计报告(论文)
系 别:
班 级:
学 生 姓 名:
学 生 学 号:
设计(论文)题目: 基于Proteus的温度检测
与报警的仿真设计
指 导 教 师:
起 讫 日 期: 2023.9.3~2023.11.16
苏州信息职业技术学院
毕业设计(论文)成绩评估表
学生姓名
系部
学号
课题名称
基于Proteus的温度检测与报警的仿真设计
指导教师评语:
建议成绩: 指导教师:
年 月 日
评阅教师评语:
建议成绩: 评阅教师:
年 月 日
答辩小组评语:
建议成绩: 答辩小组负责人:
年 月 日
苏州信息职业技术学院
毕业设计(论文)任务书
专业
学号
姓名
课题名称:基于Proteus的温度检测与报警的仿真设计
重要技术指标:
(1)温度测量工作范围:0℃~85℃;
(2)检测分辨率1℃;
(3)键盘是采用拨动开关,实现温度设定范围为:0℃~85℃;
(4)给定温度用1位LCD用动态或静态扫描技术显示;
(5)实际温度用1位LCD用动态或静态扫描技术显示;
(6)当温度超过设温度置时蜂鸣器进行自动报警。
工作内容和规定:
(1)阅相关资料熟悉温度控制与报警器相关知识,进行方案设计;
(2)根据设计方案进行电路设计并绘制出相应电原理图;
(3)根据硬件设计程序;
(4)通过Proteus软件对设计方案进行电路功能仿真调试;
(5)根据设计,完毕毕业论文;
(6)准备答辩.
重要参考文献:
[1] 曾屹,彭楚武.单片机原理与应用[S].中南大学出版社,2023:18-327.
[2] 楼然苗,李光飞.单片机课程设计指导[M].北京航空航天大学出版社,2023:55-73.
[3] 周润景,张丽娜.基于Proteus的电路及单片机系统设计与仿真[M].北京航空航天大学出版社,2023:3-336.
[4] 周润景,刘映群.Proteus入门实用教程[M].机械工业出版社,2023:267-332.
[5] 张永枫.单片机应用实训教程[S].西安电子科技大学出版社,2023:107-267.
[6] 肖洪兵,胡辉,郭速学.跟我学单片机[S].北京航空航天大学出版社,2023:192-218.
学 生(署名) 2023年9月 10日
指 导 教师(署名) 2023年9月 10日
教研室主任(署名) 2023年9月 10日
系 主 任(署名) 2023年9月 10日
苏州信息职业技术学院
毕业设计(论文)开题报告
专业
学号
姓名
设计(论文)题目
基于Proteus的温度检测与报警的仿真设计
1. 选题的背景和意义:
温度是一种最基本的环境参数,人民的生活环境与温度息息相关,因此研究温度的测量方法和装置具有重要意义, 蔬菜的生长与温度息息相关,对于蔬菜大棚来说,最重要的一个管理因素是温度控制。温度太低,蔬菜就会被冻死或则停止生长,所以要将温度始终控制在适合蔬菜生长的范围内。假如仅靠人工控制既耗人力,又容易发生错误。为此 ,在现代化的蔬菜大棚管理中通常有温度自动控制系统,以控制蔬菜大棚温度,适应生产需要。 本文将介绍智能集成温度传感器DS18B20的结构特性及控制方法。以及用单片机STC89C51的编程实现温度测量。
2. 课题研究的重要内容:
本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改善型智能温度传感器DS18B20作为检测元件,其温度值可以直接被读出来,通过核心器件单片机AT89C51控制温度的显示,用1602LCD液晶模块显示显示。
温度检测与报警系统涉及主控制器AT89C51、温度传感器DS18B20、报警电路、单片机复位电路及LCD液晶模块显示电路。本文是以单片机AT89C51为核心进行设计。通过DALLAS公司的单总线数字温度传感器DS18B20来实现环境温度的采集和A/D转换。其输出温度采用数字显示,用LED液晶显示以串口传送数据,实现温度显示,能准确达成以上规定。、此温度计属于多功能温度计可以用来测量环境温度,还可以设立上下报警温度,当温度不在设立范围内时,可以报警。
3.课题研究的方法论述:
(1)查阅书籍,进行总体理论分析与设计。
(2)硬件设计(画出电路仿真图) 。
(3)软件设计(运用C语言编写相关的程序)。
(4)用PROTEUS软件完毕温度检测与报警控制软硬件调试。
四、设计(论文)进度安排:
时间(迄止)日期
工作内容
2023. 9.3 - 2023. 9.7
查找资料确立选题
2023. 9.8-2023.9.12
完毕开题报告
2023.9.13-2023.10.25
绘制原理图,编写程序
2023.10.26-2023.11.13
撰写论文
2023.11.14
毕业设计答辩
2023.11.14~2023.11.18
根据答辩小组和指导老师意见修改论文,力争在内容和格式上符合毕业设计规范规定。
五、指导教师意见:
题目难度适中,设计目的明确、方法得当,安排进度合理,允许开题。
指导教师署名:
年 月 日
六、系部意见
批准开题
系主任署名:
年 月 日
苏州信息职业技术学院
毕业设计(论文)中期检查表
学生姓名
学号
指导教师
选题情况
课题名称
基于Proteus的温度检测与报警的仿真设计
难易限度
偏难
适中
√
偏易
工作量
较大
适中
√
较小
符合规范化的规定
任务书
有
√
无
开题报告
有
√
无
外文翻译质量
优
良
√
中
差
学习态度、出勤情况
好
√
一般
差
工作进度
快
按计划进行
√
慢
中期工作报告及解答问题情况
该学生了解设计内容的安排,仔细研究了设计方案,认真进行毕业课题仿真设计,并完毕论文初稿,积极查阅资料,多次积极虚心求教,通过本次设计可以看出该同学做事认真,积极投入,解答问题很有见解,对问题的分析比较透彻,课题正按计划进行。
指导教师
年 月 日
所在专业意见:
继续进行
系主任
年 月 日
基于Proteus的温度检测与报警的仿真设计
摘要:温度是与人们生活息息相关的环境参数,许多情况下都学要进行温度测量及报警,温度测量报警系统在现代平常生活.科研.工农生产中已经得到了越来越广泛的应用。所以对温度的测量报警方法及设备的研究也变得极其重要。随着人们生活的不断提高以及应对各种复杂测量环境的需要,我们对温度测量报警的规定也越来越高,运用单片机来实现这些控制无疑使人们追求的目的之一,它带给我们的方便时不可否认的,其中温度检测报警器就是一个典型的例子。要为现代人工作,科研,生活,提供更好的设施,就需要从单片机技术入手,向数字化,智能化控制方向发展。
本设计所介绍的温度报警器,可以设立上下限报警温度,当温度不在设立范围内时,可以报警。与传统温度测量系统相比,本设计中的数字温度测量报警系统具有很多前者没有的优点,如测温范围广并且准确,采用LED数字显示,读数方便等。
关键词:单片机,温度检测,AT89C51,DS18B20
目录
1 绪 论 1
1.1 课题背景 1
2 系统的具体设计 2
3 硬件电路设计 3
3.1 单片机主控设计 3
3.1.1重要特性 4
3.1.2系统时钟电路 5
3.1.3 复位电路 5
3.2 温度信号采集设计 6
3.2.1 DS18B20的特性 7
3.2.2 DS18B20的测温原理 8
3.2.3 DS18B20与单片机接口电路 9
3.4 按键电路设计 11
3.5报警电路设计 12
4 温度控制系统的软件设计 12
4.1主程序设计 13
4.3 温度采集设计 14
4.4 温度显示设计 16
4.5 按键开关设计 17
4.6温度解决及蜂鸣器报警设计 19
5 温度检测系统调试仿真 19
致 谢 23
附 录 25
1 绪 论
1.1 课题背景
随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、食品、石油等各个行业。传统的温度采集方法不仅费时费力,并且精度差,单片机的出现使得温度的采集和数据解决问题可以得到很好的解决。温度是工业对象中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同:产品的工艺不用,控制温度的精度也不相同。因此对数据采集的精度忽然采用的控制方法也不相同。传统的控制方式以不能满足高精度、高速度的控制规定,如温度控制表温度接触器,其重要缺陷是温度波动范围大,由于他重要通过控制接触器的通断时间比例来达成改变加热功率的目的,受仪表自身误差和交流接触器的寿命限制,通断频率很低。近几年来快速发展了多种先进的温度控制方式。这些控制技术大大的提高了控制精度,不仅使控制变得简便,并且使产品的质量更好,减少了产品的成本,提高了生产效率。
温度是一个永恒的话题和人们生活环境有着密切关系的物理量,、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一。温度的变化会给我们的生活、工作、生产等带来重大影响,因此对温度的测量及控制至关重要。其测量控制一般使用各式各样形态的温度传感器。随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相解决的功能器件,温度传感器的作用日显突出,已成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其用途已遍及工农业生产和平常生活的各个领域。
尽管现在以微机为核心的可编程数据采集与解决采集技术的发展方向得到了迅速的发展,并且组成一个数据采集系统只需要一块数据采集卡,把它插在微机的扩展槽内并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响。相较于数据采集板卡成本和功能的限制,单片机具多功能、高效率、高性能、低电压、低功耗、低价格等优点,这就使得以单片机为核心的数据采集系统在许多领域得到了广泛的应用。
2 系统的具体设计
本系统的温度检测有两套方案,两种都可以对温度进行测量,第一中是采用AD590,使用AD590作为温度传感器,需要进行电流电压变换,电压放大以及A/D转换。第二种是采用DS18B20作为温度传感器进行温度测量。DS18B20可以满足从-55摄氏度到+125摄氏度测量范围,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。此外采用外加电源供电对DS18B20的VDD引脚供电。它的好处是无须MOSFET,并且在温度转换期间总线可自由搭载其它器件。它试用于对性能规定不高成本严格控制的应用,是经济型产品。它具有线性好、精度适中、灵敏度高、体积小和使用方便等优点,得到广泛应用。
由于AD590需要模拟转数字电路,精确度低,测温点数少对线阻有规定,电路繁多,成本也较高,故本系统采用方案二。
在系统的总体设计方案中,我们采用AT89C51单片机作为控制核心对温度传感器DS18B20控制,读取温度信号并进行计算解决,并送到液晶显示器LCD1602显示。 按照系统设计功能的规定,温度检测计总体电路结构框图如图2.1所示,拟定系统由4个模块组成:单片机主控制模块、蜂鸣器报警模块、温度测量模块和液晶显示模块。
AT89C51
单片机最小系统
按键设立温度
LCD显示
报警电路
DS18B20传感器
图2.1温度检测与报警总体设计框图
3 硬件电路设计
本课程设计的多点测温系统是以单片机和单总线数字温度传感器DS18B20为核心,充足运用单片机优越的内部和外部资源及智能温度传感器DS18B20的优越性能构成一个完备的测温系统,实现对温度的多点测量。整个系统由单片机控制,可以接受传感器的温度数据并显示出来,可以从键盘输入命令,系统根据命令,选择相应的温度传感器,并由驱动电路驱动温度显示。本课程设计了一种合理、可行的单片机监控软件,完毕测量和显示的任务。由于单片机具有强大的运算和控制功能,使得整个系统具有模块化、硬件电路简朴以及操作方便等优点。 本课题的整个系统是由单片机、显示电路、键盘电路、声光报警电路等构成。
3.1 单片机主控设计
主控制单元是单片机选用市场上常见的美国ATMEL公司的AT89C51作为控制元件,以下是一些AT89C51的介绍,AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微解决器,俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51 提供以下标准功能:4k 字节Flash闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定期/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定期/计数器,串行通信口及中断系统中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并严禁其它所有部件工作直到下一个硬件复位。
3.1.1重要特性
-与MCS-51 兼容
-4K字节可编程闪烁存储器
-寿命:1000写/擦循环
-数据保存时间:2023
-全静态工作:0Hz-24MHz
-三级程序存储器锁定
-128×8位内部RAM
-32可编程I/O线
-两个16位定期器/计数器
-5个中断源
-可编程串行通道
-低功耗的闲置和掉电模式
-片内振荡器和时钟电路
3.1.2系统时钟电路
单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,系统时钟电路结构如图3.1所示,可以根据情况选择6MHz、8MHz或12MHz等频率的石英晶体,补偿电容通常选择20-30pF左右的瓷片电容。
图3.1 时钟电路
3.1.3 复位电路
单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位规定接通电源后,自动实现复位操作。手动复位规定在电源接通的条件下,在单片机运营期间,用按钮开关操作使单片机复位。复位电路结构如图3.2所示。上电自动复位通过电容C3充电来实现。手动按键复位是通过按键将电阻R2与VCC接通来实现。
图3.2复位电路
3.2 温度信号采集设计
如图3.3美国Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持 “一线总线”接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。所有传感元件及转换电路集成在形如一只三极管的集成电路内。“一线总线”独特并且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活,使你可以充足发挥“一线总线”的优点。 同DS18B20同样,DS18B20也支持“一线总线”接口,测量温度范围在-10~+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便,并且新一代产品更便宜,体积更小。
图 3.3 DS18B20
对于温度的采集需要用到DS18B20一总线温度传感器,以下DS18B20的一些介绍:
DSl8B20温度传感器是美国DALLAS半导体公司继DSl820之后最新推出的只用改善型智能温度传感器。与传统的热敏电阻相比,他可以直接读出被测温度并且可根据规定通过简朴的编程实现9~l2位的数字直读方式。可以分别存93.75ms和750ms内完毕9位和12位的数字量,并且从DSl8B20读出的信息或写入DSl8B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线自身也可以向所挂接DSl8B20供电,而无需额外电源。因而使用DSl8B20可使系统结构更趋简朴,可靠性更高。他在测温精度,转换时时间,传输距离,分辨率等方面较DSl820有了很大的改善,给用户带来了更方便的使用和更令人满意的效果。DSl8B20采用3脚PR35封装或8脚SOIC封装。 DS18B20的测温流程如下图3.4 DS18B20测温流程。
初始化DS18B20
跳过ROM匹配
温度变换
延时1S
LED液晶显示
转换成显示吗
读暂存器
跳过ROM匹配
图3.4 DS18B20测温流程
3.2.1 DS18B20的特性
(1)适应电压范围更宽,电压范围:3.0~5.5V,寄生电源方式下可由数据线供。
(2)独特的单线接口方式,DS18B20在与微解决器连接时仅需要一条口线即可实现微解决器与DS18B20的双向通讯。
(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
(4)DS18B20在使用中不需要任何外围元件,所有传感元件及转换电路集成在形如一只三极管的集成电路内。
(5)温范围0℃~+85℃,在0~+85℃时精度为±0.5℃。
(6)可编程的分辨率为9~12位,相应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
(8)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
3.2.2 DS18B20的测温原理
DS18B20的测温原理如图3.5所示,图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所相应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2 计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。 DS18B20在正常使用时的测温分辨率为0.5℃,假如要更高的精度,则在对DS18B20测温原理进行具体分析的基础上,采用直接读取DS18B20内部暂存寄存器的方法,将DS18B20的测温分辨率提高到0.1~0.01℃。
图3.5 DS18B20测温原理图
3.2.3 DS18B20与单片机接口电路
P3.7口和DS18B20的引脚DQ连接,作为单一数据线。U4即为温度传感芯片DS18B20,本设计虽然只使用了一片DS18B20,但由于不存在远程温度测量的考虑,所认为了简朴起见,采用外部供电的方式,如图3.6所示。测温电缆采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一对接VCC和地线,屏蔽层在电源端单点接地。
图 3.6 DS18B20与单片机接口电路
3.3液晶显示屏输出
如下图3.7 LCD液晶显示,液晶显示的原理是运用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、合用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
图 3.7LCD液晶显示
液晶显示器各种图形的显示原理 :点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列相应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相相应,每一字节的内容和显示屏上相应位置的亮暗相应。这就是LCD显示的基本原理。用LCD显示一个字符时比较复杂,由于一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置相应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简朴了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM相应的地址,设立光标,在此送上该字符相应的代码即可。汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM相应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字,字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器介绍其用法。LCD1602重要技术参数: 显示容量:16×2个字符; 芯片工作电压:4.5—5.5V ;工作电流:2.0mA(5.0V); 模块最佳工作电压:5.0V; 字符尺寸:2.95×4.35(W×H)mm,
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3.1 。
表3.1 1602LCD 引脚接口说明
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
3.4 按键电路设计
采用独立按键接口,这种方式是各种按键互相独立,每个按键接一根输入线,一根输入线按键的工作状态不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下。
独立式按键电路配置灵活,软件简朴。但每个按键需要占用一根输入口线,在按键数量较多时,需要较多的输入口线且电路结构复杂,故此种键盘用于按键较少或操作速度较高的场合。独立式按键电路按键直接与单片机的I/O口连接,通过读I/O口,鉴定每个I/O口的电平状态,即可辨认按下的键。
由于只有四个按键,因此按键接口电路的设计比较简朴,单片机P1.4和P1.7端口设定为输入状态,平时通过电阻上拉到Vcc,按键按下时,相应的端口的电平被拉到低电平,如下图3.4所示。这样就可以通过查询有无外部中断来判断有没有按键按下,按键各接一根输入线,一根输入线的按键工作状态不会影响其他输入线上的工作状态。通过内部判断是否产生外部中断,即可辨认按下的键。2个按键定义如下:
P1.4:报警温度键,按此键则显示设定的报警温度值。
P1.7:正常温度键,按此键则显示设定的正常温度值。
图 3.4 按键电路的仿真
3.5报警电路设计
本设计采用软件解决报警,运用有源蜂鸣器进行报警输出,采用直流供电。当所测温度超过获低于所预设的温度时,数据口相应拉高电平,报警输出。报警电路硬件连接见图 3.5。(也可采用发光二级管报警电路,如过需要报警,则只需将相应位置1,当参数判断完毕后,再看报警模型单元ALARM 的内容是否与预设同样,如不同样,则发光报警)
图.3.5报警电路设计
4 温度控制系统的软件设计
整个系统需要对每一个硬件模块进行软件设计。在这一章,重要针对每个硬件电路模块编程,然后进行系统的整合,最后输入到控制解决器中实现所有设计功能。
4.1主程序设计
根据设计规定,一方面要拟定软件设计方案,即拟定该软件应当完毕那些功能;另一方面是规划为了完毕这些功能需要提成多少个功能模块,以及每一个程序模块的具体任务是什么。一般划分模块应遵循下述原则:
(1)每个模块都应具有独立的功能,能产生一个明确直观的结果 。
(2)模块长度要适中。模块太长时,分析和调试比较困难,失去了模块化程序结构的优越性;模块太短则信息互换太频繁,也不合适。
(3)每个模块之间的控制参数应尽量简朴,数据参数应尽量少。控制参数是指模块进入开始运营和退出停止运营的条件及方式,数据参数是指模块间的信息互换方式、互换量的多少及互换的频率。
该系统的软件由五大模块组成:主程序模块、温度采集模块、报警及加热电路模块、温度显示模块、键盘扫描模块。下面将对这几个模块具体阐述,相相应的C语言程序语言详见附录。
主程序的重要功能是负责温度的实时显示、读出并解决DS18B20的测量的当前温度值,其程序流程见图4.1所示,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度。
N
Y
开始
初始化
初始化命令
设立温度
发送ROM命令
读取温度值
温度是否在设定范围
报警
调用LCD液晶显示
图 4.1 软件流程总设计框图
计算机基本的被独立提供出来的程序,它可以调用子程序,而不被任何子程序所调用,它是计算机程序的中心部分。主程序的设计内容一般涉及:主程序的起始地址,中断服务程序的起始地址,有关存储单元及相关部件的初始化和一些子程序调用等等。
主程序模块的重要内容是对整个系统进行初始化,并且包含调用子程序。在本课题研究的系统中,主程序重要为两个部分:第一个是对系统初始化,如打开相关中断,设立相关引脚的电平信号以及设立初始实际温度和设定温度的数值 。
4.3 温度采集设计
温度采集子程序重要是实现对温度的采集及对温度数据进行解决传回给单片机在进行显示。本系统用的DS18B20温度传感器要进行温度检测就需要对它进行初始化、写指令操作,读数据操作以及读温度前的准备工作等。因此温度采集子程序又由对DS18B20温度传感器的初始化子程序、写指令子程序、读数据子程序、读温度数据前的准备子程序组成。温度采集程序图4.2所示。
a该模块重要对温度传感器DS18B20的操作,重要涉及以下几个内容:
(1) 先将数据线置高电平“1”;
(2) 延时;
(3) 数据线拉到低电平“0”;
(4) 延时;
(5) 数据线拉到高电平“1”;
(6) 延时等待(假如初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来拟定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制);
(7) 若CPU读到了数据线上的低电平“0”后,还要做延时;
(8) 将数据线再次拉高到高电平“1”后结束。
b、DS18B20的写操作
(1) 数据线先置低电平“0”;
(2) 延时;
(3) 按从低位到高位的顺序发送字节(一次只发送一位);
(4) 延时;
(5) 将数据线拉到高电平;
(6) 反复上1到6的操作直到所有的字节所有发送完为止;
(7) 最后将数据线拉高。
c、DS18B20的读操作
(1)将数据线拉高“1”;
(2)延时;
(3)将数据线拉低“0”;
(4)延时;
(5)将数据线拉高“1”;
(6)延时;
(7)读数据线的状态得到1个状态位,并进行数据解决;
发DS18B20复位命令
发跳过ROM命令
发读取温度命令
读取操作,CRC校验
图4.2温度采集
9字节完?
CRC校验正
移入温度暂存器
返回
N
N
Y
Y
(8)延时。
4.4 温度显示设计
显示子程序重要功用是将传感器测得的温度值显示出来,写数据以及初始化的流程图如图4.3和4.4所示根据时序图LCD液晶显示器的写指令。本系统用的是LCD液晶显示器,而LCD液晶显示器要显示出数据在之前需要对液晶显示器进行初始化,写指令,写数据等操作由于本系统液晶显示器只写不读,所以没有附加读操作的时序图。所以R/W管脚一直处在低电平,在硬件中就直接接地,在软件中就不用操作此管脚的信号了,就只需要控制RS和E管脚就可以了。
写入指令06H地址指针加一,光标加一
图4.3LCD液晶显示器写指令操作流程图
结束哦
将E管脚电平拉低
将E管脚电平拉高
延时5ms
向D0-D7管脚写入指令代码
将RS管脚电平拉低
开始哦
延时5ms
图4.4LCD液晶显示器初始化流程图
写入指令0CH开不显示光标
将E管脚电平拉低
开始哦
写入指令38H
写入指令01H清屏
4.5 按键开关设计
按键解决程序通过扫描按键情况,读取键值。重要完毕各点温度传感器上下限报警参数设立和显示模式设立。
(1)通过扫描键盘读取键值,流程图如图4.5所示。
键盘扫描
有键闭合
延时去键抖动
扫描键盘
找到闭合键
计算键值
闭合键释放
建立有效标志
返回
建立无效标志
N
N
N
Y
Y
Y
图4,.5键盘扫描流程
(2)设立报警上、下限值
DS18B20设有温度上下限报警功能。DSl8B20的存储器由两部分组成:一个是9字节的静态RAM,其中第0和第1字节用于存储16位的温度转换值,第2(高温限TH)和第3字节(低温限TL)作为温度报警限值或通用存储器单元供用户使用;另一个是非易失性的E²PROM。当静态RAM作为温度报警限值使用时,可以在系统安装和工作前,用写RAM命令4EH将高温限TH和低温限TL写入第2和第3字节单元。由于静态RAM掉电后信息即丢失,因此需要再通过拷贝RAM命令48H将第2和第3字节单元的温度报警限值拷贝到E²PROM中。主程序只要在初始化部分使用重调E²PROM命令B8H,就可以将E²PROM中的温度报警限值重新拷贝到静态RAM中。 读取DDRAM或CGRAM中的内容。
4.6温度解决及蜂鸣器报警设计
蜂鸣器报警在本系统中由单片机的P3.7管脚电平的高低来控制蜂鸣器报警。单片机的P3.7管脚低电平蜂鸣器报警,单片机的P3.7管脚高电平蜂鸣器不报警。通过对读到并且进行了数据解决的温度值进行判断是否大于或者小于某一报警值而进行报警,直到读到的温度值不在报警温度值之中就停止报警。本系统以大于85℃小于0℃蜂鸣器报警为例,蜂鸣器的正极性的一端联接到5V电源上面,另一端联接到三极管的集电极,三极管的基级由单片机的P3,7管脚通过一个与非门来控制,当P3.7管脚为低时,与非门输出高电平,三极管导通,这样蜂鸣器的电流形成回路,发出声音。当P3.7管脚为高时,与非门输出低电平,三极管截止,蜂鸣器不发出声音。在这里与非门是作为非门来用的,这里采用一个非门的作用是为了防止系统上电时峰鸣器发出声音,认为系统复位以后,I/O口输出的是高电平。 用户可以通过程序控制P3.7管脚的置低和置高来使蜂鸣器发出声音和关闭。 蜂鸣器的声音大小及音调可以通过调整P3.7管脚的置高时间及输出的波形进行控制,这
展开阅读全文