




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安徽建筑大学毕业设计课题名称:嵌入式温度检测系统的设计学生姓名:xunwill系 别:机电学院学 号:xxxxxxxxxxx专业班级:xxxxxxxxx指导教师:xxx2015安徽建筑大学毕业设计(论文)摘要单片机是嵌入式系统的独立发展之路, 向 MCU阶段发展的重要因素, 就是寻 求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了 SOC 化趋势。随着微电子技术、 IC 设计、 EDA工具的发展,基于 SOC的单片机应用系 统设计会有较大的发展。 因此,对单片机的理解可以从单片微型计算机、 单片微 控制器延伸到单片应用系统。关键词 :单片机;嵌入式系统;温度传感器安徽建筑大学毕
2、业设计(论文)AbstractAbstractEmbedded system microcontroller is an independent development path, the MCU important factor in the development stage, is seeking applications to maximize the solution on the chip; Therefore, the development of dedicated single chip SOC trend of the natural form. As the microe
3、lectronics, IC design, EDA tools development, application system based on MCU SOC design have greater development. Therefore, the understanding of the microcontroller chip microcomputer can be, extended to the single-chip micro-controller applications.KeywordsKeywords:MCU ; embedded system;temperatu
4、re sensor安徽建筑大学毕业设计(论文)目录第一章 绪论 .1.第二章 单片机及嵌入式系统概述 .4.2.1单片机的定义及发展前景 4.2.2嵌入式系统的定义与发展 5.2.3AT89C51 的简介 6.第三章 仿真软件及元器件的简介 .7.3.1Proteus 的简介 7.3.2Keil uVision 的简介 8.3.3DS18B20 的简介 8.3.4LCD1602 的简介 9.第四章 硬件电路的设计 .1.04.1晶振复位电路 1.0.4.2LCD1602 数据显示模块 1.14.3温度数据采集模块 1.34.4单片机与单片机之间相互通信模块 .1. 34.5设置高低温度限制模块
5、 1.54.6警报模块 1.6.4.6.1 .LED 环形灯警报 1.64.6.2 声音警报 1.8.4.7加热与降温电路模块 1.94.8 整体电路图的设计.2.05.4 LCD1602 的源程序.错 误!未定义书签安徽建筑大学毕业设计(论文)4.8.1 整体设计思路 .2.04.8.2 硬件电路图 .2.14.8.3 系统的工作原理 .2.1第五章 软件设计 .2.2.5.1整体程序设计框图 .2.25.2甲机与乙机的主程序 .2.35.3DS18B20 的源程序 .4.1第六章 毕业设计总结 .4.74.9.参考文献 .4.8.附录一 英文翻译安徽建筑大学毕业设计(论文)说明: 为了避免
6、浪费各位看官的时间,先对课题实现的任务 进行说明。 课题主要任务是完成环境温度监测, 利用单片机与单片机之间的串 行口通信实现温度数据的采集、发送、显示及数据的处理。以下简称单片机甲 为甲机,单片机乙为乙机。乙机采集温度数据并发送给甲机,甲机使用 LCD1602 显示温度数据,并将数据与高低温度限制的数值比较,若不在指定范围内则发 出警报,同时甲机向乙机发送升温或降温指令,命令乙机执行加热或降温操作 (此处甲机模块模拟的是控制室,乙机模块模拟现场环境)。该系统的优点如下: 1 充分利用单片机的串行通信实现多机之间的信息交 换;2甲机与乙机之间采用 RS-232接口进行连接, 通信距离可达几米或
7、几十米, 可实现远程操作; 3 该系统可通过独立按键自由的设置高低温度限制的数值, 操 作非常方便灵活; 4 该系统可智能控制环境温度,使其动态保持在正常范围内。 该系统缺点如下: 1 由于使用的传感器 DS18B20的某些特性,如测量范围在 -55 125,该系统不适用于温度极高或极低的环境,在 -10 85范围内, 精度为 +0.5 ,所以也不满足对温度检测精度很高的环境要求; 2 采用串行通行 传送控制复杂、速度慢、抗干扰能力差。该检测系统硬件电路包括单片机、温度采集模块、显示模块、按键控制模 块、报警模块和升温降温模块六个部分,硬件电路将使用仿真软件 Proteus 进 行仿真,源程序
8、的编译将使用 Keil uVision3 ,然后生成 HEX文件加载到 51 单 片机中,实现 Keil 与 Proteus 的联调。文中将对每个芯片、模块功能以及实现 过程进行详细介绍。文中将附上完整电路图与源代码,经由本人亲自调试,可 以运行并完成相应的功能。前面大篇幅介绍各种电路子模块,请各位耐心拜读。第1页安徽建筑大学毕业设计(论文)第一章 绪论温度是工业与农业控制中主要的被控参数之一, 特别是在冶金、 化工、建材、 食品、机械、石油、蔬菜种植、花卉培养等应用中,具有举足重轻的作用。在工 业控制领域, 温度控制的应用非常广泛, 控制精度的高低直接影响到产品的质量 及使用寿命,研究和设计
9、高性能的温度控制系统具有非常重要的意义。国外对温度检测系统的研究较早,始于 20 世纪中期,现在世界各国的温度 检测技术发展很快, 一些国家在实现自动化的基础上正朝着完全自动化、 无人化 的方向发展。像园艺强国荷兰, 以先进的鲜花培养技术著称于世, 其玻璃室温全 由计算机操作。随着社会的发展, 科技的进步, 以及测温仪器在各个领域的应用, 智能化已 是现代温度监控系统发展的主流方向。 对于不同场所、 不同工艺所需温度高低范 围不同、精度不同,则采用的测温元件、 测方法以及对温度的控制方法也将不同; 产品工艺不同、 控制温度的精度不同、 时效不同, 则对数据采集的精度和采用的 控制算法也不同,
10、因而,对温度的测控方法多种多样。 随着电子技术和微型计算 机的迅速发展, 微机测量和控制技术也得到了迅速的发展和广泛的应用。 利用微 机对温度进行测控的技术, 也便随之而生, 并得到日益发展和完善, 越来越显示 出其优越性。 作为获取信息的手段传感器技术得到了显著的进步, 其应用领 域较广泛。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。 因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。为了提高对 51 单片机和传感器的认识和了解,尤其是对温度传感器的深入 研究以及其用法,同时基于实用、广泛、典型和智能自动化的原则,我在老师的 指导下设计了该温度检测系统。 本系
11、统利用温度传感器 DS18B20与 AT89C51单片 机相结合,应用性与目的性比较强。本系统可以作为仓库、蔬菜大棚、煤矿的温 度监控系统等等。课题主要任务是完成环境温度监测, 利用单片机与单片机之间的串行口通信 实现温度数据的采集、发送、显示及数据的处理。以下简称单片机甲为甲机,单 片机乙为乙机。 乙机采集温度数据并发送给甲机, 甲机使用 LCD1602显示温度数 据,并将数据与高低温度限制的数值比较, 若不在指定范围内则发出警报, 同时第2页安徽建筑大学毕业设计(论文)甲机向乙机发送升温或降温指令, 命令乙机执行加热或降温操作 (此处甲机模块 模拟的是控制室,乙机模块模拟现场环境)。该系统
12、的优点如下:1 充分利用单片机的串行通信实现多机之间的信息交换;2 甲机与乙机之间采用 RS-232接口进行连接,通信距离可达几米或几十米, 可实现远程操作; 3 该系统可通过独立按键自由的设置高低温度限制的数值,操 作非常方便灵活; 4 该系统可智能控制环境温度,使其动态保持在正常范围内。 该系统缺点如下: 1 由于使用的传感器 DS18B20的某些特性,如测量范围在 -55 125,该系统不适用于温度极高或极低的环境,在 -10 85范围内, 精度为+0.5 ,所以也不满足对温度检测精度很高的环境要求; 2 采用串行通行 传送控制复杂、速度慢、抗干扰能力差。该检测系统硬件电路包括单片机、
13、温度采集模块、 显示模块、按键控制模块、 报警模块和升温降温模块六个部分,硬件电路将使用仿真软件 Proteus 进行仿 真,源程序的编译将使用 Keil uVision3 ,然后生成 HEX文件加载到 51 单片机 中,实现 Keil 与 Proteus 的联调。文中将对每个芯片、模块功能以及实现过程 进行详细介绍。第3页安徽建筑大学毕业设计(论文)第二章 单片机及嵌入式系统概述2.1单片机的定义及发展前景1. 什么是单片机单片机又称单片微控制器( Micro Controller Uint,MCU), 它不是完成某一个逻辑功能的芯片 , 而是把一个计算机系统集成到一个芯片上,相当于一个微
14、型的计算机。和计算机相比,一块单片机芯片含有中央处理器 CPU、随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断系统、定时器 / 计数器等功能(可能还 包括显示驱动电路、脉宽调制电路、模拟多路转换器、 A/D 转换器等电路),只 是缺少了显示器、键盘、鼠标等外围设备。概括的讲:一块芯片就成了一台计算 机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同 时,学习使用单片机是了解计算机原理与结构的最佳选择。图 2.1 单片机外观图样单片机是靠程序运行的,并且可以修改,通过不同的程序实现不同的功能,应用起来相当灵活2. 单片机的发展历程单片机诞生于 1971 年,经
15、历了 SCM、MCU、SoC三大阶段。早期的 SCM单片 机都是 8 位或 4 位的,其中最成功的是 INTEL的 8051,此后在 8051 上发展出了 MCS51系列 MCU系统,基于这一系统的单片机系统直到现在还在广泛使用。随着 工业控制领域要求的提高,开始出现了 16 位单片机,但因为性价比不理想并未 得到很广泛的应用。 90 年代后随着消费电子产品大发展,单片机技术得到了巨第4页安徽建筑大学毕业设计(论文)大提高。随着 INTEL i960 系列特别是后来的 ARM系列的广泛应用, 32位单片机 迅速取代 16 位单片机的高端地位,并且进入主流市场。而传统的 8位单片机的 性能也得到
16、了飞速提高,处理能力比起 80年代提高了数百倍。高端的 32 位 Soc 单片机主频已经超 300MHz,性能直追 90 年代中期的专用处理器,而普通的型号 出厂价格跌落至 1 美元,最高端的型号也只有 10 美元。当代单片机系统已经不 再只在裸机环境下开发和使用, 大量专用的嵌入式操作系统被广泛应用在全系列 的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用 专用的 Windows和 Linux 操作系统。2.2嵌入式系统的定义与发展1. 嵌入式系统的定义IEEE(美国电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监 视或者辅助操作机器和设备的装置”。 嵌入式系统
17、是一种专用的计算机系统, 作 为装置或设备的一部分。 通常,嵌入式系统是一个控制程序存储在 ROM中的嵌入 式处理器控制板。 事实上, 所有带有数字接口的设备, 如手表、微波炉、录像机、 汽车等, 都使用嵌入式系统, 有些嵌入式系统还包含操作系统, 但大多数嵌入式 系统都是由单个程序实现整个控制逻辑。 从应用对象上加以定义, 嵌入式系统是 软件和硬件的综合体, 还可以涵盖机械等附属装置。 国内普遍认同的嵌入式系统 定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对 功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。2. 嵌入式系统的发展前景嵌入式系统无疑是当前最热门
18、最有发展前途的 IT 应用领域之一。嵌入式系 统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等) 非常有限, 并且对成本很敏感, 有时对实时响应要求很高等。 特别是随着消费家 电的智能化,嵌入式更显重要。像我们平常常见到的手机、 PDA、电子字典、可 视电话、 VCD/DVD/MP3 Player 、数字相机( DC)、数字摄像机 (DV) 、U-Disk 、 机顶盒(Set Top Box)、高清电视 (HDTV)、游戏机、智能玩具、交换机、路由 器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等 都是典型的嵌入式系统。第5页安徽建筑大学毕业设计(论文
19、)2.3 AT89C51的简介AT89C51是一种带 4K字节 FLASH存储器的低电压、 高性能 CMOS8 位微处理 器,俗称单片机。 AT89C51 提供以下标准功能: 4K字节 Flash 闪速存储器, 128 字节内部 RAM,32 个 I/O 口线,两个 16位定时/计数器, 5 个中断源, 2个中断 优先级,一个全双工串行通信口,片内振荡器及时钟电路。图 2.4 51 单片机及其引脚图第6页安徽建筑大学毕业设计(论文)第三章 仿真软件及元器件的简介3.1Proteus 的简介Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA工具软件。 它
20、不仅具有其它 EDA工具软件的仿真功能, 还能仿真单片机及外围器件。 从原理 图布图、代码调试到单片机与外围电路协同仿真, 一键切换到 PCB设计,真正实 现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、 PCB设计软 件和虚拟模型仿真软件三合一的设计平台 ,它是目前比较好的仿真单片机及外围 器件的工具。 虽然目前国内推广刚起步, 但已受到单片机爱好者、 从事单片机教 学的教师、致力于单片机开发应用的科技工作者的青睐。图 3.1 Proteus 的 ISIS 部分界面第7页安徽建筑大学毕业设计(论文)3.2Keil uVision 的简介Keil C51 是美国 Keil Soft
21、ware 公司出品的 51 系列兼容单片机 C语言软件开发系统,与汇编相比, C 语言在功能上、结构性、可读性、可维护性上有明显 的优势,因而易学易用。 Keil 提供了包括 C 编译器、宏汇编、连接器、库管理 和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境Vision )将这些部分合在一起。3.3DS18B20 的简介DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强, 精度高的特点。 DS18B20数字温度传感器接线方便, 封装成后可应用于多种场合, 如管道式,螺纹式,不锈钢封装式,型号多种多样。 DS18B20的技术特性如下: 1 独特的单线接口
22、方式; 2 测温范围 55 +125,固有测温误差 1;3 支 持多点组网功能,多个 DS18B20可以并联在唯一的三线上,最多只能并联 8 个, 实现多点测温; 4 测量结果以 912 位数字量方式串行传送。图 3.2 Keil uVision3的界面第8页安徽建筑大学毕业设计(论文)图 3.3 DS18B20 的外观图3.4LCD1602 的简介液晶显示( LCD)是单片机应用系统中一种常用的人机接口形式,其优点是 体积小,重量轻,功耗低。 LCD1602是工业字符型液晶,能够同时显示 16x2 即 32 个字符。1602液晶也叫 1602字符型液晶,它是一种专门用来显示字母、 数字、 符
23、号等的点阵型液晶模块。它由若干个 5X7或者 5X11 等点阵字符位组成,每个 点阵字符位都可以显示一个字符, 每位之间有一个点距的间隔, 每行之间也有间 隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。图 3.4 LCD1602 图样第9页安徽建筑大学毕业设计(论文)第四章 硬件电路的设计4.1 晶振复位电路1. 内部振荡电路(晶振电路)理论上说,振荡频率越高表示单片机运行的速度越快,但同时对存储器 的速度和印刷电路板的要求越高。 该系统中选用频率为 12M Hz 的无源晶振, 电容选值 22pF。图 4.1 内部振荡电路2. 复位电路51 单片机是高电平复位,当给单片
24、机加 +5V 电源启动时,这是电容相当于 短路(电容通交流,阻直流,上电瞬间相当于交流),可以认为 RST上的电压就 是 VCC,这时单片机就是复位状态。 随着时间推移电容两端电压升高, 就造成 RST 上电压降低,当低至阈值电压时,即完成复位过程。第 10 页安徽建筑大学毕业设计(论文)图 4.2 上电复位电路4.2 LCD1602LCD1602 数据显示模块lcd1602 采用标准的 16 脚接口,接在单片机甲机上。第 1 脚: VSS为电源地。第 2 脚: VDD接 5V电源正极。第 3 脚: VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时 对比度最高(对比度过高时会
25、产生“鬼影”,使用时可以通过一个 10K 的电位 器调整对比度)。第 4 脚: RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存 器。第 5 脚: RW为读写信号线,高电平 (1) 时进行读操作,低电平 (0) 时进行写操作。第 6脚: E端为使能端 ,高电平时读取信息,负跳变时执行指令。第 714 脚:D0D7为 8 位双向数据端。第 1516 脚:空脚或背灯电源。 15 脚背光正极, 16 脚背光负极。注: Proteus 里这两脚不显示。由于51单片机P0口漏极开路,内部驱动能力不足, 所以要接上拉电阻,大 小 1K 欧姆。第 11 页安徽建筑大学毕业设计(论文)图 4.3
26、 LCD1602与单片机引脚接线电路图第 12 页安徽建筑大学毕业设计(论文)4.3温度数据采集模块温度数据采集模块接在单片机乙机上,电路接法很简单: DS18B20的 DQ端 P3.7口上(必要时该引脚需接一上拉电阻), GND 端接地, VCC 端接 5V 电源正极。图 4.4 DS18B20 与单片机的接线图第 13 页安徽建筑大学毕业设计(论文)4.4 单片机与单片机之间相互通信模块图 4.5 串行口接线图图 4.5 是单片机甲机与单片机乙机之间的串行通信模块的接线图。 两个单片 机子系统均能独立的完成主系统的某一功能, 且这两个子系统具有一定的信息交 换需求时, 这时候就可以用串行通
27、信的方式将两个子系统联系起来。 两个单片机第 14 页安徽建筑大学毕业设计(论文)子系统如果共在一个电路板上或同处于一个机箱内,这时只要将两个单片机的 TXD和 RXD引出线交叉连接即可;若两个子系统不在一个机箱内,且相距有一定 距离(几米或几十米),这是要采用 RS-232 接口进行连接。本系统中就是模拟 远程串行通信,使用 RS-232 接口。RS-232 采用负逻辑电平,规定( -25V-3V)为逻辑“ 1”,( +3+25V) 为逻辑“0”,-3 +3V是未定义的过渡区。 由于 RS-232的逻辑电平与通常的 TTL 电平不兼容,为了实现与 TTL电路的连接,需要外加电平转换电路 (如
28、 MAX23)2 。 电路图中使用了两个 MAX23,2 其 11、12 号引脚与两个单片机的 RXD、TXD引脚 采用默认端子的方式进行连接,网络标号相同的端子表示这两个引脚连接上了, 具有相应的电气特性。4.5 设置高低温度限制模块 本系统中需要手动设置高温与低温限制的大小, 已达到自动控制现场温度的 目的。我使用三个常开按键,公共端接地,另一端分别接在P2.5 P2.7 口,同时接在一个含有三个输入引脚的与门上, 这样接的目的是为了触发外部中断, 按 下任何一个键都会触发中断,使用中断方式比查询方式要高效很多。4.6 图 键控电路第 15 页安徽建筑大学毕业设计(论文)图 4.7 中断触
29、发电路按下“模式设置”键一次,即可设定高温限制,每按一次“温度 +”或“温 度-”,温度数值+1或-1 摄氏度,设置好高温限制数值后, 再次按下“模式设置” 键,则切换到设置低温限制模式, 按照以上方式设定好低温限制数值后, 再次按 下“模式设置”则跳出设置模式,继续实施温度检测。4.6 警报模块4.6.1LED 环形灯警报 甲机接收到乙机传送的温度数据以后,会对该温度数据加分析。如果 温度数据比设定的高温限制的数值要高, 则发出高温警报, 高温警报包括声音警 报和红色 LED环形灯警报; 如果温度数据比设定的高温限制的数值要低, 则发出 低温警报,低温警报包括声音警报和黄色 LED环形灯警报
30、。 使用 LED环形灯需要 16 个 I/O 口,很明显 AT89C51的外接器件已经够多, I/O 口不够,所以我采用 74HC154扩展 I/O 口。第 16 页安徽建筑大学毕业设计(论文)图 4.8 Led 发光二极管图 4.9 I/O 口扩展电路第 17 页图74HC154 译码器可接受16 个互斥的有Proteus 仿真中,选用名称P3.7 口。安徽建筑大学毕业设计(论文)4.10 LED 环形灯4位高有效二进制地址输入,并提供效输出。 74HC154的两个输入使能门电路可用于译码器选通,以消除输出端上的通常译码“假信号”,也可用于译码器扩展。以上三幅电路图中,用甲机HC的P1.0
31、P1.3 连接 74HC154的 ABCD引脚,可以通过 P1.0P1.3 的输出来选通标 号为 116 的 led 灯亮或灭, 如果让 8 个灯依次亮灭, 就形成这种环装的报警设 备。注意:由于在上电以后, P1.0 P1.3 无论在何种状态都会选通某盏小灯, 即使不需报警,还是会有某盏小灯亮,为了避免这种情况,我将74HC154芯片 16 号引脚上的灯反接,最终的结果是该灯永远不会亮,但是不会影响报警效果4.6.2声音警报图 4.11 声音警报电路第 18 页当温度不在指定的范围时,需要发出警报。在为 SOUNDE的R 元器件,一端接地,另一端接甲机的安徽建筑大学毕业设计(论文)4.7 加
32、热与降温电路模块在该温度检测系统中,当温度过高时,需要实施降温措施;当温度过低时, 需要实施升温措施。 我使用直流电动机来模拟升降温过程, 反转表示降温, 正转 表示升温(加热),并使用多个 PNP结与 NPN结放大。图 4.12 电动机正反转电路图 4.13 电动机与单片机的连接电路第 19 页安徽建筑大学毕业设计(论文)4.8 整体电路图的设计4.8.1 整体设计思路第 20 页4.8.2硬件电路图图 4.15 整体硬件电路图PS:由于截取整个电路图尺寸大小有限,大家可以根据上文的各个子模块的清晰的电 路图,在 Proteus 里重新画出来,并加载源程序。4.8.3系统的工作原理该系统最终
33、的目的是进行温度的检测, 确保环境温度在一个合理的范围。 整 体硬件电路图中,乙机通过 DS18B20获取温度数据,然后通过 RS-232 串行通信 口将温度数值发送到甲机,甲机接收到温度数据后,将数据在LCD上显示出来,并将数据与高低温度限制比较, 若比高温限制数值大, 则红色环形报警灯亮, 启 动声音警报,同时发送一个降温指令给乙机, 命令乙机实行降温措施, 反之亦然; 若在设定的温度内, 则甲机仅仅用 LCD1602显示温度数值。 一旦环境温度被加热 或被降温至正常范围, 则甲机发送一个停止指令给乙机, 命令乙机停止加热或降 温。另外使用三个长开按键,来设定新的高低温度限制数值。安徽建筑
34、大学毕业设计(论文)第 21 页安徽建筑大学毕业设计(论文)第五章 软件设计5.1 整体程序设计框图图 5.1 源代码的流程图第 22 页甲机.C 里的程序如下安徽建筑大学毕业设计(论文)5.2甲机与乙机的主程序由于电路中有两个 51 单片机,所以我们用 Keil 建立两个工程,生成两个HEX文件。工程甲我们命名甲机,工程乙命名乙机,分别对应两个单片机每个工程下有一个或多个目标文件。甲机工程的界面如下:#include#includeLCD1602.h#includesbit buzzer=P37;sbit jia=P25;sbit jian=P26;sbit Mode=P27;uchar c
35、ode table18=WELCOME TO USE THE; uchar code table218=MONITORING SYSTEM! ; uchar code table315=WRITER: XUWU ; void gwjb() ;void dwjb();将字符送到发送端第 23 页安徽建筑大学毕业设计(论文)void Gdxs();void Beep()uchar i;for(i=0;i100;i+)delay(1); buzzer=buzzer;buzzer=0;float temp1,y;uchar fuhao,bai,shi,ge,xsd,xsd1,xsd2;int T_H,
36、T_H_bai,T_H_shi,T_H_ge;int T_L,T_L_bai,T_L_shi,T_L_ge;void receive_temp();void putc_to_SerialPort(uchar c) /SBUF = c;while(TI = 0);TI = 0;void KJhm()uchar i;lcdwritecom(0 x80+0 x10);for(i=0;i18;i+) lcdwritedata(tablei); delay(5); lcdwritecom(0 x80+0 x40+0 x10);for(i=0;i18;i+)lcdwritedata(table2i);第
37、24 页安徽建筑大学毕业设计(论文)delay(5);for(i=0;i18;i+)lcdwritecom(0 x1c);delay(200);delay(1000);lcdwritecom(0 x01);lcdwritecom(0 x80+0 x50);for(i=0;i15;i+)lcdwritedata(table3i);delay(5);for(i=0;iT_H)gwjb(); putc_to_SerialPort(J);第 27 页安徽建筑大学毕业设计(论文)if(temp1=T_L)&(temp1=T_H)P1=0 x0f;putc_to_SerialPort(B);buzzer=
38、0;putc_to_SerialPort(a);void gwjb() / 高温警报P1 = (P1+1)%8;Beep();void dwjb() / 低温警报 uchar i;P1=0 x07;for(i=0;i8;i+)P1+;delay(40);Beep();void GDxs() / 高低温度限制显示if(T_H=0)&(T_H=100)T_H=fabs(T_H);T_H_bai=T_H/100;T_H_shi=T_H%100/10;T_H_ge=T_H%10;lcdwritecom(0 x84);第 29 页安徽建筑大学毕业设计(论文)lcdwritedata(T_H_bai+0)
39、;lcdwritecom(0 x85); lcdwritedata(T_H_shi+0);lcdwritecom(0 x86);lcdwritedata(T_H_ge+0);lcdwritecom(0 x87);lcdwritedata( );if(T_L=0)&(T_L=100)T_L=fabs(T_L);T_L_bai=T_L/100;T_L_shi=T_L%100/10;T_L_ge=T_L%10;lcdwritecom(0 x8C); lcdwritedata(T_L_bai+0);lcdwritecom(0 x8D); lcdwritedata(T_L_shi+0);lcdwrite
40、com(0 x8E); lcdwritedata(T_L_ge+0); lcdwritecom(0 x8f);lcdwritedata( );void int0() interrupt 0delay(10);/ 延时消抖EA=0;P1=0 xff;while(1) / 进入检测按键函数 if(Mode=0)Beep();while(!Mode); / 检测松手while(1)第 31 页安徽建筑大学毕业设计(论文) lcdwritecom(0 x86); lcdwritecom(0 x0f);delay(50); / 必要的延时,光标闪烁时会更明显 if(jia=0)delay(10); if
41、(T_H0) y=fabs(T_H); y-; T_H=-1*y;else T_H+;Beep(); while(!jia); if(jian=0) delay(10); if(T_H0) delay(10);/ 延时消抖 y=fabs(T_H); y+; T_H=-1*y;elseT_H-;Beep(); while(!jian); lcdwritecom(0 x0c);GDxs(); if(Mode=0)第 32 页 jiance_安徽建筑大学毕业设计(论文)Beep(); while(!Mode); goto jiance_T_L ;T_L:while(1) lcdwritecom(0
42、x8e); lcdwritecom(0 x0f);delay(50); / 必要的延时,光标闪烁时会更明显 if(jia=0) delay(10);if(T_L0) y=fabs(T_L); y-; T_L=-1*y;else T_L+;Beep(); while(!jia); if(jian=0) delay(10);if(T_L0) delay(10);/ 延时消抖 y=fabs(T_L);y+; T_L=-1*y;第 33 页安徽建筑大学毕业设计(论文)elseT_L-; Beep(); while(!jian); lcdwritecom(0 x0c); GDxs(); if(Mode=
43、0) while(!Mode);Beep(); goto fanhui; fanhui:break;EA=1;/*LCD1602.H 里的程序如下 */第 34 页安徽建筑大学毕业设计(论文)#ifndef _1602_H_#define _1602_H_#include#define lcd P0#define uchar unsigned char#define uint unsigned intsbit lcde=P22;sbit rw=P21;sbit rs=P20;void lcdwritecom(unsigned char);void lcdwritedata(unsigned c
44、har);void lcdinit();第 35 页安徽建筑大学毕业设计(论文)void delay(unsigned int);void lcdwritecom(unsigned char com) rs=0;rw=0;lcd=com;delay(10);lcde=1;delay(10);lcde=0;void lcdwritedata(unsigned char dat)rs=1;rw=0;lcd=dat;delay(10);lcde=1;delay(10);lcde=0;void lcdinit()lcdwritecom(0 x38);第 36 页安徽建筑大学毕业设计(论文)lcdwri
45、tecom(0 x0f);lcdwritecom(0 x0c);lcdwritecom(0 x01);lcdwritecom(0 x80);void delay(unsigned int z)unsigned int m;for(;z0;z-)for(m=110;m0;m-);void stringaddress(uchar x,uchar y,uchar code *s) if(x=1) lcdwritecom(0 x80+y);elselcdwritecom(0 x80+0 x40+y); for(;*s!=0;s+)lcdwritedata(*s);#endif第 37 页工程名为乙机的
46、界面如下:安徽建筑大学毕业设计(论文)#include #includetemp.h #define uint unsigned int #define uchar unsigned char sbit jiare=P20;/ 加热 sbit jianre=P21;/ 降温 void Delay(uint x) uchar i;while(x-)for(i=0;i120;i+);void swcs()jiare=0; jianre=1;第 38 页/*乙机.C 里的程序安徽建筑大学毕业设计(论文)void jwcs()jiare=1;jianre=0;void putc_to_SerialPo
47、rt(uchar c)SBUF = c;while(TI = 0);TI = 0;unsigned char i, datas = 0, 0, 0, 0, 0; / 定义数组 float tp;int temp;void send_temp();void scan_sbuf();void main()SCON = 0 x50;TMOD = 0 x20;PCON = 0 x00;TH1 = 0 xfd;TL1 = 0 xfd;TI = 0;RI = 0;TR1 = 1;IE = 0 x90;Ds18b20Init();while(1)scan_sbuf();void send_temp()tem
48、p=Ds18b20ReadTemp();if(temp0) / 当温度值为负数SBUF=-;/ 将接收到的数据放入到发送寄存器 while(!TI); / 等待发送数据完成 TI=0;第 39 页将接收到的数据放入到发送寄存器/ 等待发送数据完成SBUF = 0+datas1;/将接收到的数据放入到发送寄存器安徽建筑大学毕业设计(论文)/ 清除发送完成标志位temp=temp-1;/ 因为读取的温度是实际温度的补码, 所以减 1,再取 反求出原码temp=temp;tp=temp; temp=tp*0.0625*100+0.5;/ 留两个小数点就 *100,+0.5 是四舍五入,因为 C 语言
49、浮点数转换 为整型的时候把小数点/ 后面的数自动去掉,不管是否大于 0.5 ,而+0.5 之后大于 0.5 的 就是进 1 了,小于 0.5 的就/ 算由 ?.5 ,还是在小数点后面。while(!RI);RI=0;elseSBUF= ;/ 将接收到的数据放入到发送寄存器 while(!TI);/ 等待发送数据完成TI=0;/ 清除发送完成标志位tp=temp;/ 因为数据处理有小数点所以将温度赋给一个浮点型变量 / 如果温度是正的那么,那么正数的原码就是补码它本身 temp=tp*0.0625*100+0.5;/ 留两个小数点就 *100,+0.5 是四舍五入,因为 C 语言浮点数转换 为整
50、型的时候把小数点/ 后面的数自动去掉,不管是否大于 0.5 ,而+0.5 之后大于 0.5 的 就是进 1 了,小于 0.5 的就/ 算加上 0.5 ,还是在小数点后面。while(!RI);RI=0;datas0 = temp / 10000;datas1 = temp % 10000 / 1000;datas2 = temp % 1000 / 100;datas3 = temp % 100 / 10;datas4 = temp % 10;SBUF = 0+datas0;/ while (!TI);TI = 0; while(!RI);RI=0;第 40 页安徽建筑大学毕业设计(论文)whi
51、le (!TI);TI = 0; while(!RI);RI=0;SBUF = 0+datas2;/ while (!TI);TI = 0; while(!RI);RI=0;SBUF = .;/ while (!TI); TI = 0; while(!RI);RI=0;/ 等待发送数据完成将接收到的数据放入到发送寄存器/ 等待发送数据完成将接收到的数据放入到发送寄存器/ 等待发送数据完成SBUF = 0+datas3;/ while (!TI);TI = 0; while(!RI);RI=0;SBUF = 0+datas4;/ while (!TI);TI = 0;将接收到的数据放入到发送寄存
52、/ 等待发送数据完成将接收到的数据放入到发送寄存器/ 等待发送数据完成void scan_sbuf()while(!RI);RI=0;switch(SBUF)case X:send_temp();break;case J:jwcs();break;case S:swcs();break;case B:jiare=1;jianre=1;break; default:break;5.3 DS18B20 的源程序第 41 页安徽建筑大学毕业设计(论文)图 5.2 DS18B20初始化的时序图第 42 页安徽建筑大学毕业设计(论文)简单的读取温度值的步骤如下:1.跳过 ROM操作 2. 发送温度转换命
53、令 3. 跳过ROM操作4. 发送读取温度命令 5. 读取温度值#ifndef _TEMP_H_#define _TEMP_H_#includesbit DSPORT=P37;void Delay1ms(unsigned int ); unsigned char Ds18b20Init();void Ds18b20WriteByte(unsigned char com); unsigned char Ds18b20ReadByte();void Ds18b20ChangTemp();void Ds18b20ReadTempCom();int Ds18b20ReadTemp();第 43 页以下
54、是名为“ temp.H”的源程序 */图 5.4 DS18B20 的写操作时序图#endif以下是名为“ temp.C”的源程序 */安徽建筑大学毕业设计(论文)#includetemp.hvoid Delay1ms(unsigned int y) /延时函数unsigned int x;for(y;y0;y-) for(x=110;x0;x-);unsigned char Ds18b20Init() /DS18B20 的初始化函数 unsigned int i;DSPORT=0;i=70;while(i-);/ 延时 642usDSPORT=1;i=0;while(DSPORT) /等待 D
55、S18B20 拉低总线i+; if(i5000)/ 等待5MS return 0;/初始化失败return 1;/初始化成功第 44 页安徽建筑大学毕业设计(论文)void Ds18b20WriteByte(unsigned char dat) /向 DS18B20 写入一个字节unsigned int i,j;for(j=0;j=1;unsigned char Ds18b20ReadByte() /向 DS18B20 读取一个字节unsigned char byte,bi;unsigned int i,j;for(j=8;j0;j-)DSPORT=0;/先将总线拉低 1us i+;DSPOR
56、T=1;/然后释放总线i+;i+;/ 延时 6us等待数据稳定bi=DSPORT;/读取数据,从最低位开始读取/*将 byte右移一位,然后或上左移 7 位后的 bi,注意移动之后移掉那位 补 0。 */byte=(byte1)|(bi7);i=4;/读取完之后等待 48us 再接着读取下一个数while(i-);return byte;void Ds18b20ChangTemp() / 让 DS18B20 开始转换温度Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0 xcc);/跳过 ROM 操作命令Ds18b20WriteByte(0 x44);/温
57、度转换命令第 45 页unsigned char tmh,tml;Ds18b20ChangTemp();Ds18b20ReadTempCom(); tml=Ds18b20ReadByte(); tmh=Ds18b20ReadByte(); temp=tmh;安徽建筑大学毕业设计(论文)void Ds18b20ReadTempCom() /发送读取温度命令 Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0 xcc); /跳过 ROM 操作命令Ds18b20WriteByte(0 xbe); /发送读取温度命令 int Ds18b20ReadTemp() /
58、读取温度 int temp=0;/先写入转换命令/然后等待转换完后发送读取温度命令 /读取温度值共 16 位,先读低字节/再读高字节temp=8;temp|=tml;return temp;由于程序太多,故不一一在后面注释,经本人调试,可以实行。如有不明之处加我QQ :1457534863,我会把程序及 Proteus 原理图发给你。第 46 页安徽建筑大学毕业设计(论文)第六章 毕业设计总结大学生涯的最后一个学期,已经没有真正意义上的课程了,伴随我们的是 3 月份的毕业实习以及即将就要完成的毕业设计, 这也意味着我们的大学生涯即将 结束,我们的人生即将踏上一段全新的旅程, 我们也将告别学生时
59、代, 真正成为 这个社会上奉献劳动与智慧的一份子。 毕业设计就是我们走出校门前的一块试金 石,检测你的基础知识、团队协作、抗压等多方面的能力,所以每一位毕业生都 应该认真去对待,毕竟这也相当于学生生涯的最后一次考试。在去年年底选择毕业设计的题目时, 我也思考了很久, 希望选到一个自己相 对熟悉一点题目,如果全是盲区,这个毕业设计题目将会一直是在黑暗中摸索, 如果所选题目涉及到自己曾经学过的知识, 那么一方面可以巩固以前的知识, 另 一方面更加让自己活学活用,还好最终选到了一个比较熟悉的有关单片机的题 目。我曾经在大三下学期学过 51 单片机方面的知识, 还花费 80 多块钱买了一块 简单的学习
60、板。当写入自己的第一条语句, 点亮第一个小灯时, 心里有点小激动, 我知道这便是学习带来的乐趣与充实。 很多人都认为在大学不用努力读书, 保证 不挂科就行,其实不然,只要身在校园,那我们的第一要务便是学习。在此次毕 业设计中, 我真的学到了很多知识, 但同时也深深感受到大学四年, 学到的东西 太少。在这么良好的学习环境下,还是浪费了太多宝贵的光阴。在此要特别感谢我的指导老师对我悉心的指导,感谢赵老师给我的帮助。尤 其是中途有几次家里有事, 无法参加每周例行的会议, 老师更是给我充分的信任, 让我先把当下要紧的事情解决, 后来还单独给我辅导了一次, 当时我在编写程序 的过程中遇到了瓶颈, 赵老师
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025物业转让合同
- 音乐作品创作的乐理试题及答案
- 2025购墓穴合同样本范本
- 2025建筑外墙仿石涂料施工合同模板
- 2025新能源充电站特许经营合同
- 2025购车转让合同范本
- 2025年航空滤网钢丝合作协议书
- 2025-2030年苯亚磺酸钠项目投资价值分析报告
- 2025年个人信用借款合同范本
- 2025-2030年热料型刮板输送机项目投资价值分析报告
- GA 1812.2-2024银行系统反恐怖防范要求第2部分:数据中心
- 2025至2030中国智慧消防行业发展状况及未来前景研究报告
- 联锁系统设备调试施工作业指导书
- 热网工程施工组织设计方案
- 2025年上半年黑龙江牡丹江市“市委书记进校园”活动暨“雪城优才”企事业单位人才招聘1324人重点基础提升(共500题)附带答案详解
- 2025年重庆市中考物理模拟试卷(一)(含解析)
- 髌骨骨折的中医护理查房
- 希尔顿管理制度
- 2022继电保护微机型试验装置技术条件
- 2025年浙江宁波交通工程建设集团有限公司招聘笔试参考题库含答案解析
- 消毒供应中心管理制度
评论
0/150
提交评论