《毕业论文基于ds18b20的多点测温系统(终稿).doc》由会员分享,可在线阅读,更多相关《毕业论文基于ds18b20的多点测温系统(终稿).doc(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、编号:06023079河南大学2010届本科毕业论文基于DS18B20的多点测温系统Based on the chip DS18B20 multi-point temperature measuring system论文作者姓名:阙艳红 作者学号:06023079 所在学院:计算机与信息工程学院 所学专业:自动化 导师姓名职称:金勇 (副教授) 论文完成时间:2010年5月20日 2010年5月20日河南大学2010届毕业论文(设计、创作)开题报告(由学生本人认真填写)学号06023079姓名阙艳红导师姓名职称金勇(副教授)开题时间2009年12月1日课题题目基于DS18B20的多点测温系统课
2、题来源导师指定 自定 其他来源课题的目的、意义以及和本课题有关的国内外现状分析:1、目的:设计一个多点测温系统,使测量温度准确性更高,另外温度测量具备时效性,能够实时观察温度的变化,系统电路简单易行,易于操作,并且抗干扰能力强。2、意义:本系统能够克服以往人工检查、测量计算温度值的缺点,实时有效准确的反馈测量温度信息,具备跃限报警功能,可操作性高。本系统通用性好,可以方便的移植到其他应用场合。3、现状:随着微型计算机和传感器技术的迅速发展,自动检测领域发生了巨大变化,温度自动监测控制方面的研究有了明显的进展。但在检测应用领域还需要进一步扩展。研究目标、研究内容和准备解决的问题:1、目标:对工作
3、现场温度的采集,实现多点采集,经由单片机处理,由液晶显示模块实时显示各点温度值。并且可以键盘选择温度最高上限值,跃限报警。另外可以人工设定每次测量的时间。2、内容:由DS18B20芯片实时采集现场温度,经由单片机处理由显示器显示各点温度值,键盘设定温度最高上限值,跃限报警。3、准备解决的问题:对现场温度的多点采集,如何实现键盘的识别,以及液晶显示器的准确两行显示。第一行显示各点温度值,第二行显示键盘的操作内容即设定温度最高上限值的大小和测量时间的定时。拟采取的方法、技术或设计(开发)工具:软件环境:单片机程序开发环境采用Keil uVision3,开发语言是Keil C51。单片机程序烧录器T
4、OP2005+主要选择的硬件模块:单片机AT89C52DS18B20温度采集模块 1602液晶显示模块 欧姆龙轻触开关键盘选择模块 报警模块电压电源模块预期成果:1、毕业设计成果系统的硬件设计及软件设计,系统实现对现场温度的采集并实时显示当前的温度值,系统流程图及其实现代码,实现温度检测及显示。2、毕业论文进度计划:2009.12.1 - 2010.3.5: 查找资料、搜集相关素材2010.3.6 - 2010.3.26:完成需求分析2010.3.27 - 2010.4.7: 完成概要设计2010.4.8 - 2010.4.15:完成详细设计2010.4.16 - 2010.4.28:完成编码
5、2010.4.29 - 2010.5.4: 完成软件测试2010.5.5 - 2010.5.15:整理资料、撰写毕业论文2010.5.16 - 2010.5.20:根据导师要求,完善毕业设计和论文指导教师对选题报告的意见: 指导教师签名: 2009年12月1日河南大学2010届毕业论文(设计、创作)任务书题目名称: 基于DS18B20的多点测温系统学院计算机与信息工程学院学生姓名阙艳红所学专业自动化学号06023079一、 毕业论文(设计、创作)要求1. 可行性分析:完成系统的技术可行性分析2. 系统设计:对系统中用到的关键技术进行初步设计3. 程序开发与调试:具体进行项目的开发4. 撰写论文
6、:完成论文撰写二、 毕业论文(设计、创作)进度安排2009.12.1 - 2010.3.5: 查找资料、搜集相关素材2010.3.6 - 2010.3.26:完成需求分析2010.3.27 - 2010.4.7: 完成概要设计2010.4.8 - 2010.4.15:完成详细设计2010.4.16 - 2010.4.28:完成编码2010.4.29 - 2010.5.4: 完成软件测试2010.5.5 - 2010.5.15:整理资料、撰写毕业论文2010.5.16 - 2010.5.20:根据导师要求,完善毕业设计和论文三、需收集的资料和指导性参考文献【1】单片机原理及应用 郑郁正 四川大学
7、出版社 2003年9月【2】C语言程序设计 谭浩强 清华大学出版社 2004年2月【3】DS18B20单线数字温度传感器 伟纳电子 【4】1602液晶显示模块的应用 【5】用单片机控制液晶显示lcd1602 【6】欧姆龙轻触开关.pdf 【7】Ya5.pdf 【8】基于数字温度传感器DS18B20的分布式测温系统的设计 冯国珍 吉林化工学院报 2003年9月第3期【9】智能温度传感器DS18b20在多路测温中的应用 徐文进 张阿卜 现代电子技术2004年第22期指导教师签名 2009年12 月 8 日河南大学2010届毕业设计(论文、创作)中期检查表题目名称:基于DS18B20的多点测温系统学
8、院计算机与信息工程学院学生姓名阙艳红所学专业自动化学号06023079一、毕业论文(设计、创作)进展情况已经完成系统硬件电路的设计与制作,包括各个模块的设计工作。还未完成温度测量和液晶显示的编程任务。二、毕业论文(设计、创作)存在问题及解决方案存在的问题:如何解决总线延时不准确使得温度值无法读出和液晶显示出错。解决方案:继续查找有关多点检测的资料和相关的程序设计。以及液晶显示的编程设计。三、指导教师对学生毕业论文(设计、创作)进展方面的评语指导教师签名 2010年 4 月 10日河南大学2010届毕业论文(设计、创作)综合成绩表(一)学院名称:计算机与信息工程学院学 号06023079姓名阙艳
9、红专业自动化指导教师金勇综合得分论文题目基于DS18B20的多点测温系统指导教师评语及得分指导教师评语评分项目分值指导教师对毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分指导教师签名 2010年5月20日评阅教师评语及评分评阅教师评语评分项目分值评阅毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分评阅教师签名 2010年5月22日此表由教师填写河南大学
10、2010届毕业论文(设计、创作)综合成绩表(二)学号06023079姓名阙艳红所在学院计算机与信息工程学院答辩委员会评语及评分答辩委员会评语答辩委员签字: 2010年5月25日评分 项目 分值论文答辩小组评分答辩情况论文质量合计(100)内容表达情况(15)答辩问题情况(25)规范要求与文字表达(20)论文(设计、创作)质量和创新意识(40)得分答辩委员会主任签字: 2010年5月25日毕业论文(设计、创作)成绩综合评定: 分综合评定等级:备注:一、论文的质量评定,应包括对论文的语言表达、结构层次、逻辑性理论分析、设计计算、分析和概括能力及在论文中是否有新的见解或创新性成果等做出评价。从论文来
11、看学生掌握本专业基础理论和基本技能的程度。二、成绩评定采用结构评分法,即由指导教师、评阅教师和答辩委员会分别给分(以百分计),评阅教师得分乘以20%加上指导教师得分乘以20%加上答辩委员会得分乘以60%即综合成绩。评估等级按优、良、中、差划分,优90-100分;良76-89分;中60-75分;差60分以下。三、评分由专业教研室或院组织专门评分小组(不少于5人),根据指导教师和答辩委员会意见决定每个学生的分数,在有争议时,应由答辩委员会进行表决。四、毕业论文答辩工作结束后,各院应于6月20日前向教务处推荐优秀论文以汇编成册,推荐的篇数为按当年学院毕业生人数的1.5%篇。五、各院亦可根据本专业的不
12、同情况,制定相应的具有自己特色的内容。须报教务处备案。六、书写格式要求:1、目录;2、内容提要须书写200左右汉字,开题报告(文科除外)的内容要根据不同专业的课题任务要求,阐述查阅文献、文案论证、解题思路、工作步骤等;3、正文(含引言、结论等);4、参考文献(或资料)河南大学本科生毕业论文(设计、创作)承诺书论文题目基于DS18B20的多点测温系统姓 名阙艳红所学专业自动化学 号06023079完成时间2010年5 月20日指导教师姓名职称阙艳红承诺内容:1、本毕业论文(设计、创作)是学生 阙艳红 在导师 金勇 的指导下独立完成的,没有抄袭、剽窃他人成果,没有请人代做,若在毕业论文(设计、创作
13、)的各种检查、评比中被发现有以上行为,愿按学校有关规定接受处理,并承担相应的法律责任。2、学校有权保留并向上级有关部门送交本毕业论文(设计、创作)的复印件和磁盘。备注:学生签名: 指导教师签名: 2010 年 5 月 20 日 2010 年 5 月 20 日说明:学生毕业论文(设计、创作)如有保密等要求,请在备注中明确,承诺内容第2条即以备注为准。目录摘 要IABSTRACTII第一章 绪论11.1 开发背景及意义11.2 本文所作的工作1第二章 系统硬件设计22.1 单片机及电压电源模块32.2 DS18B20温度测量模块42.3 键盘选择模块72.4 液晶显示模块72.5 报警模块9第三章
14、 系统软件设计113.1 系统开发环境123.2 系统初始化133.3 液晶显示程序163.4 中断控制程序183.5 温度测量程序193.6 键盘扫描识别模块21第四章 系统仿真调试234.1 系统仿真调试23参考文献25附录26源代码27毕业设计 摘 要 本文介绍了基于温度传感器DS18b20与AT89C52单片机组成的多点温度分布式测温系统。设计了其系统构成和软件方案。该系统面向实际需求,设定DS18b20温度范围为0100,为使显示内容丰富,采用LCD1602液晶双行显示芯片,分别显示温度传感器的测量温度值、温度最高上限值和测量时间的预设值。 实际应用表明。该系统结构简单,抗干扰能力强
15、,适合于恶劣环境下现场温度的测量,可应用于仓库测温、楼宇空调控制和生产过程监控等领域。 关键词:DS18b20,分布式,1602 ABSTRACTThis article describes the composition of multi-temperature distributed temperature measurement system based on AT89C52 microcontroller and temperature sensor DS18b20 and Designed its system structure and software programs. The
16、 systems actual needs, set DS18b20 temperature range 0 100 , as to display rich content and two-line display with LCD1602 chips, respectively, show that the temperature sensor temperature measurement, temperature measurement of the maximum upper limit and the time default. The practical application
17、shows. The system is simple, anti-interference ability, suitable for harsh environments the scene temperature measurement.The system can be used in many fileds such as the temperature measurement system of warehouse,the air conditioning control of building and the monitor of productive process.Key w
18、ord: DS18b20, distributional, 1602第 44 页 第一章 绪论1.1 开发背景及意义温度的测量和控制在储粮仓库、智能楼宇空调控制及其他的工农业生产和科学研究中应用广泛。传统的温度检测是使用诸如热电偶、热电阻、半导体pn结之类的模拟传感器,经信号取样电路、放大电路和模数转换电路处理,获取表示温度值的数字信号,再交由微处理器或DSP处理。因为检测环境复杂,测量点多,信号传输距离远及各种干扰的影响,使得传统测量系统的稳定性和可靠性下降。 近年来随着单片机的发展和传感器技术的革新,温度检测领域也完成了从模拟信号到数字信号的转变。DS18b20温度传感器的广泛应用更是推动
19、了这一领域的发展。另外液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点在各类仪表和显示系统中得到越来越多的应用,现在也是单片机应用设计中最常用的信息显示模块。综合以上产品的发展特点,希望温度检测系统在未来的发展中有更广阔的应用空间并且具有更好的现场测量优越性。1.2 本文所作的工作 本文详细介绍了分布式温度测量系统的构成及各个模块的组成原理 。大致分为硬件电路设计和软件程序设计,其中包括单片机及电压电源模块、温度传感器DS18b20温度采集模块、欧姆龙轻触选择开关模块、1602液晶显示模块和报警模块。关于各个模块的原理图和相关参数的程序设计将在下面的章节中一一介绍。另外本文附有系统
20、原理图和原程序代码。第二章 系统硬件设计 本系统通过DS18B20温度传感器采集温度值,经由单片机处理由液晶显示模块显示当前温度值,并且根据开关选择设定的温度值是否跃线,只要有一个温度值超出范围就报警。以下是本系统的硬件结构图如图2-1所示。在附件中有本系统的电路原理图。 图2-1 硬件结构图 图2-2 硬件电路图2.1 单片机及电压电源模块本系统采用AT89C52单片机作为微处理器。AT89C52单片机是ATMEL公司89系列单片机的一种8位Flash单片机。它最大的特点是片内含有8k可重复编程的Flash存储器,可进行1000次的擦写操作。另外AT89c52单片机采用ATMEL高密度非易失
21、存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,并且其兼具省电耐用、性能稳定的特点,因此成为单片机市场的主流产品。由于系统使用220V的交流电源,考虑到温度传感器和其他一些器件的稳定工作电压为5V,故使用Ya5电压电源模块使其能够提供稳定的5V电压。以下是单片机结构图和电压电源的原理图。 图2-3 单片机结构图 本系统采用片内的振荡电路根据需要确定系统工作频率为11.0592Mhz,另外也可根据硬件电路的需要适当改变工作频率,以情况而定。本系统复位为上电复位。 图2-4 电压电源原理图 电压电源模块是为了使输入的220V交流电转换为5V直流电,另外c7和c9电容的作用是消除
22、滤波,提高负载能力,使输出电压信号稳定。2.2 DS18B20温度测量模块 DS18b20是美国DALLAS公司推出的单总线数字化测温集成电路,它具有独特的单线接口方式,将非电模拟量温度值转换为数字信号串行输出仅需占用1位I/O端口,能够直接读取被测现场的温度值。它体积小,电压适用范围宽(3v5v),且可通过编程实现912位的温度读数,即具有可调的温度分辨率,因此实用性和可靠性较高,应用广泛。以下是DS18b20的内部结构图。 图2-5 DS18b20的内部结构图DS18B20有4个主要的数据部件: 64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(2
23、8H)组成。 温度灵敏元件。 非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值 DS18B20的测温范围为-55+125,在-10+85范围内,精度为0.5。在电压低于3.4v时精度误差较大。在本系统中使用了两个DS18b20温度传感器,测温范围为0100,另外根据器件稳定工作的特点,考虑到驱动能力的不足,采用外加5V电源以满足传感器精度高的要求。 根据其时序特点以下是DS18B20与AT89C52单片机构成的温度监测系统如下 图2-6 DS18b20
24、的典型应用 在本系统中两个温度传感器与单片机连接方式如下:图2-7 传感器与单片机连接图本系统为多点温度测试。DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但实际应用中发现,如果挂接20个以上的DS18B20就会产生功耗问题。另外单总线长度也不宜超过0.5M,否则会影响到数据的传输。在这种情况下我们可以采用分组的方式,用单片机的多个I/O来驱动多路DS18B20。在实际应用中还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用。在本电路板的设计中考虑到初步实践的准确性,暂使用2个DS18B20分别连接单片机的p1.0 和p1.1口。对DS1
25、8B20的设计,需要注意以下问题(1)对硬件结构简单的单线数字温度传感器DS18B20 进行操作,需要用较为复杂的程序完成。编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。尤其在使用DS18B20 的高测温分辨力时,对时序及电气特性参数要求更高。(2)有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动DS18B20 序列号和自动排序,以减少调试和维护工作量。(3)测温电缆线建议采用屏蔽4 芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。DS18B20 在三线制应用时,应将其三线焊接牢固;在两线应用时,应将VCC
26、与GND接在一起,焊接牢固。若VCC脱开未接,传感器只送85.0 的温度值。(4)实际应用时,要注意单线的驱动能力,不能挂接过多的DS18B20,同时还应注意最远接线距离。另外还应根据实际情况选择其接线拓扑结构。2.3 键盘选择模块 本系统采用4个欧姆龙轻触开关作为选择按钮。第一个按钮是选择键,默认为显示时间,按一次可以切换到温度最大值的设定。第二个按钮是up键,第三个按扭是down键,第四个按钮是start键。所有这些选择操作的结果都可以在液晶显示模块中显示出来。 以下是开关选择与单片机连接电路图。如图2-8键盘选择与单片机连接图 欧姆龙轻触开关在实际的电路板设计中会考虑到干扰的影响,所以在
27、每个开关的两极间会并联一个小电容以起到硬件消抖的作用。此开关有四个引脚,是为了焊接时牢固些。2.4 液晶显示模块本系统使用的是1602液晶显示模块。1602液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧、位数多、程序简单的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。根据显示内容可以分为字符型液晶,图形液晶。根据显示容量又可以分为单行16字,2行16字,两行20字等等。 在本系统中使用的是字符型两行16字液晶显示器。在与单片机连接时使用接口电路(排针)相连,为并行通信。以下是1602液晶显示器外型图和液晶显示的典型应用。 图2-9 液晶显示器外形图 1602液晶显示采用标准的16脚接
28、口,其中:(模块背面有标注)第1脚:VSS为地电源第2脚:VDD接5V正电源 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址;当RS为高电平、RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第1516脚:空脚1602
29、液晶模块内部的字符发生存储器(CGROM)已经存储了不同的点阵字符图形,这些字符有,阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,其中数字与字母同ASCII码兼容。 如图2-10 液晶显示典型应用 在实际电路板的设计中,会考虑增加上拉电阻,以保护系统和提高系统的驱动能力。另外有些设计中也会考虑使用排线作为单片机与液晶显示的接口,具体使用哪一种连接方式,可以根据情况而定,在本系统中使用排针连接。2.5 报警模块 本系统使用的报警模块是蜂鸣器。当现场测得的温度值高于预先设定的最高温度值时就会发出报警信号。以下是报警模块与单片机连接图 图2-11 报警模块与单
30、片机连接图 上图中的p13是指单片机中的p1.3引脚。 图2-12 硬件电路运行图 第三章 系统软件设计整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、报警等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序
31、结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。 本系统主程序主要包括四个子程序,分别为液晶显示子程序,中断控制程序。键盘扫描选择子程序,温度测量子程序。液晶显示子程序:显示系统传输过来的数据值。中断控制程序:实现循环显示功能。键盘扫描选择子程序:实现键盘输入的识别与处理。温度测量子程序:完成温度的测量和传输数据处理。以下是系统软件结构图 图3-1 系统程序结构图3.1 系统开发环境 本系统开发环境使用的是KeilSoftware公司推出的uVision3是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。除增
32、加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。uVision3提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量。以下是keil 开发界面图。 图3-2 keil开发界面图 3.2 系统初始化 系统初始化主要包括单片机初始化,液晶显示初始化,温度传感器初始化。单片机初始化包括定义定时器/计数器和串行口的工作方式,定义T1为自动重装8位计数器,定义T0为16位计数器,定义串行口为10位异步通信方式,还包括初始化单片机的4个I
33、/O端口。具体程序如下: TCON=0X00; /初始化 TMOD=0X21; /定义T1和T0的工作方式 SCON=0X50; /定义串行口工作方式 TH0=0X00; TL0=0X00; /T0初始化 TR0=1; ET0=1; EA=1; P0=0XFF; P1=0XFF; P2=0XFF;P3=0XFF;液晶显示初始化主要是确定液晶显示器的工作方式、显示开关、光标开关等,具体程序如下: void WRCA() E = 0; P2 = Dis_Char; /P2口并行传输 E = 1; /使能 delay1m(10); E = 0;/=void init_lcd() /液晶显示初始化 R
34、S = 0; /数据寄存器/指令寄存器 RW = 0; /读/写控制 Dis_Char = 0x38; WRCA(); /工作方式设置 RS = 0; RW = 0; Dis_Char = 0x0c; WRCA(); /显示开关控制 RS = 0; RW = 0; Dis_Char = 0x06; WRCA(); /光标设置温度传感器初始化包括一个由总线控制器发出的复位脉冲和跟有其后由传感器发出的存在脉冲。存在脉冲是让总线控制器知道DS18b20在总线上且已准备好操作。一个复位脉冲跟着一个存在脉冲表明DS18b20已经准备好发送和接收数据。以下是初始化序列图。 图3-3 初始化序列图初始化具体
35、程序如下: void delay(uchar us) while (- us );/-void DS1820_init(void) D0 = 1; _nop_(); D0 = 0; delay(90); /delay 925us; D0 = 1; delay(8); /delay 105us; if ( D0 = 0 ) DS1820_Flag = 1; /detect 1820 success else DS1820_Flag = 0; /detect 1820 fail delay(20);3.3 液晶显示程序 液晶显示是系统程序运行的窗口,所有需要的操作都可以通过显示窗口表现出来。因此信
36、息显示是系统必不可少的部分。在上一节中已介绍过液晶显示初始化程序,这里不再重复。液晶显示器的设定、读写与光标控制都需要相应的指令来完成。此款lcd1602共有11条控制指令,具体功能如下表所示。 表一 控制指令相关功能表 而在实际编程中经常用到的指令并不多,分别是清屏、显示开关控制、光标画面位移和功能设置。因此只需记住这几条常用指令即可。 液晶显示还有一条比较重要的指令设置就是读写寄存器。它主要决定此时液晶显示寄存器的工作方式。它的控制功能如下表所示 表二 读写寄存器功能表 在实际编程中需要定义液晶显示第一行和第二行的地址,然后第一行显示两个温度传感器测得的温度值,第二行默认显示此次测量规定的
37、时间,如果切换后,第二行则显示最高温度值。在这里,第二行显示最高温度值时需经过键盘扫描切换方可实现,所以不与论述。以下是液晶显示部分程序流程图。图3-4 液晶显示程序流程图 需要注意的是:液晶显示的每一个过程都与读写寄存器有关,所以在进行每步操作时都需要对读写寄存器进行设置。具体的设置方案根据表二可以以情况确定。另外液晶显示与单片机之间的数据传输是并行通信。在每执行输入指令时要先确定显示模块为不忙,否则指令失效。3.4 中断控制程序 在本系统中使用的是定时器T0实现中断控制。实现键盘的读取识别与循环显示的功能。以下是中断控制程序流程图。 图3-5 中断程序流程图 3.5 温度测量程序 温度测量
38、程序主要是DS18b20与单片机之间的ROM操作命令和DS18b20的数据读写操作命令。当总线控制器检测到一个存在脉冲后,就可以发出5个ROM命令中的任一个,具体发出哪个命令,要根据单片机与温度传感器的连接方式,以及挂接传感器的个数来确定。5个ROM命令分别为: Read ROM 33h 读ROM Match ROM 55h 匹配ROM Skip ROM CCh 搜索ROM Search ROM F0h 跳过ROM Alarm Search ECh 报警搜索 由于在本系统中使用的是两个单点的温度测温,所以在程序中就只使用了Skip ROM操作命令。 DS18b20的数据操作需要严格的协议才能确
39、保数据的完整性。协议包括几种单线信号类型:复位脉冲、存在脉冲、写0、写1、读0和读1。所有信号除存在脉冲外均由总线控制器发出。由于存在脉冲和复位脉冲在初始化序列中已介绍过,此处不多叙述。 DS18b20的数据读写是通过时间隙处理位和命令字来确认信息交换。写时间隙 当主机把数据线从逻辑高电平拉到逻辑低电平的时候,写时间隙开始。有两种写时间隙:写1时间隙和写0时间隙。所有写时间隙必须最少持续60us,包括两个写周期间至少1us的恢复时间。 读时间隙 当从 DS18B20 读取数据时,主机生成读时间隙。当主机把数据线从高电平拉到低电平时,读时间隙开始。数据线必须保持至少1s;从DS18B20 输出的
40、数据在读时间隙的下降沿出现后15s 内有效。因此,主机在读时间隙开始后必须停止把I/O 脚驱动为低电平15s,以读取I/O 脚状态。在读时间隙的结尾,I/O 引脚将被外部上拉电阻拉到高电平。所有读时间隙必须最少60s,包括两个读周期间至少1s 的恢复时间 以下是读写时序图图3-6 读写时序图 以下是传感器基本工作流程。图3-7 DS18b20基本工作流程3.6 键盘扫描识别模块 本系统有4个按钮组成键盘扫描选择模块。当端口输出不同的数据,对应的按钮也就各不相同。四个选择键分别接至单片机的p1.4p1.7引脚,所以可以通过读取p1端口的值来确定是哪个按钮操作了。以下是键盘识别程序流程图。 图3-8 键盘识别程序流程 至于每个按钮对应操作的具体程序根据系统来确定,在这里不多做介绍。 第四章 系统仿真调试4.1 系统仿真调试在keil开发环境下不能进行有效的仿真调试,所以在系统中采用protues单片机仿真工具进行仿真调试。Protues软件是英国Labcenter electronic