毕业设计(论文)-基于单片机的仓库测温巡检系统.doc_第1页
毕业设计(论文)-基于单片机的仓库测温巡检系统.doc_第2页
毕业设计(论文)-基于单片机的仓库测温巡检系统.doc_第3页
毕业设计(论文)-基于单片机的仓库测温巡检系统.doc_第4页
毕业设计(论文)-基于单片机的仓库测温巡检系统.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本 科 毕 业 设 计基于单片机的仓库测温巡检系统Warehouse temperature measurement and control system based on the single chip microcomputer学 院: 电子工程学院 专业班级: 电子信息工程 D电子091班 学生姓名: 学 号:指导教师: 2013年 6 月2毕业设计中文摘要摘 要:随着单片机技术的飞速发展,单片机在各个领域得到了广泛的应用。在人类的生活环境中,温度扮演着非常重要的角色。仓库温度控制一直是智能控制方面的一块重点,多点测温巡检系统的实现使得火灾等自然灾害能够提前预警,给人们的生产生活带来了诸多好处。因此,本设计基于单片机展开对温度巡检系统的研究。 本课题是基于单片机的测温巡检系统设计。是一种以单片机为控制核心,具有实时温度检测、显示、报警、与计算机串行通信等功能的多点温度测量巡检系统。采用AT89C51单片机为核心控制模块,一总线结构的DS18B20智能温度传感器,实现温度实时采集,信号处理,数据通信,经过单片机处理后在LCD上显示。外围硬件部分包括:键盘模块、显示模块、报警模块、RS232通信模块等。当温度超过系统设定阀值时会自动启动声光报警,本设计还增加了RS232串行通信接口,方便计算机远程数据统计与操作。系统具有抗干扰性强、结构简单、稳定性好、具有一定的工程价值。关键词: 单片机, AT89C51, DS18B20,温度检测6毕业设计外文摘要Abstract: This topic is based on single chip micro computer temperatures measurement and controlled system designed. Is a single-chip microcomputer to control the core, with real-time temperature detection, display, alarm, and computer serial communication and other functions of the multi-point temperature measurement system. Using AT89C51 micro controller as the core control module, intelligent temperature sensor DS18B20 bus structure, to achieve real-time temperature acquisition, signal processing, data communication, through the display on the LCD single-chip processing. Peripheral hardware part includes: the keyboard module, display module, alarm module, RS232 communication module, etc. When setting the threshold temperature exceeds the system will automatically start sound and light alarm, this design also increased the RS232 serial communication interface, remote data convenient computer statistics and operation. System has strong anti-jamming capability, strong stability, easily to use, simpled operation, etc. Keywords: SCM ,AT89C51,DS18B20,Temperature detection 目录第1章 绪 论11.1设计的目的和意义11.2国内外研究现状和发展趋势1第2章 仓库测温巡检系统方案22.2硬件总体方案设计与论证2 2.2.1方案设计2 2.2.2方案论证32.4系统硬件总方案3第3章 仓库测温巡检系统硬件设计43.1 单片机AT89C51介绍4 3.1.1单片机AT89C51基本知识4 3.1.2单片机AT89C51各个I/O口介绍5 3.1.3时钟电路7 3.1.1复位电路8 3.2 温度传感器的选则8 3.2.1 DS18B20简介9 3.2.2 DS18B20 的性能特点9 3.2.3 DS18B20的内部结构9 3.2.4 DS18B20的工作时序图10 3.2.5 DS18B20 的测温原理11 3.2.6 DS18B20 的测温流程图13 3.2.7 DS18B20与AT89C51单片机连接电路133.3 1602LCD液晶显示屏14 3.3.1 LCD1602液晶显示屏的技术参数14 3.3.2 LCD1602的引脚说明15 3.3.3 LCD1602控制指令说明16 3.2.4 LCD1602基本操作时序16 3.3.5 LCD液晶显示屏与单片机接口电路设计173.4 键盘模块设计183.5 报警模块设计18 3.6 RS232串行通信19 3.7电源电路设计20第4章 仓库测温巡检系统软件设计204.1 主程序流程图204.2 温度处理子程序设计214.3 显示模块子程序设计244.4 温度报警值程序设计25第5章 系统软硬件的调试265.1 系统硬件调试295.2 系统软件调试29 5.2.1 KeilC51调试30 5.2.2 Proteus调试335.3 系统仿真26总 结34参考文献34致 谢35附录 程序清单36附录 系统原理图36第 35 页 共 41 页淮海工学院2013届毕业设计(论文)第一章 绪论1.1设计的目的和意义温度是平时生产生活中不可或缺的自然参数。人们通常使用温度这一物理量来表示物体冷和热的程度,微观定义上来说是物体分子的热运动引起的。分子运动越快,物体温度就会显得越高,反之,愈慢愈冷。温标是一种用来检测温度具体数值的尺度标准。 温度在人类生产和生活中扮演着非常重要的角色,从生活到工作温度一直伴随并影响着你。自18世纪工业革命以来,工业发展革新一直与温度保持着密切联系。温度不仅对工业而言影响如此广泛,在农业领域中温度也占有着很大的影响比例。因此,无论是工业生产加工还是农作物生长收获的过程,都不能离开温度。温度检测和控制可以使人类生产生活更加科学化、合理化、便捷化。本设计围绕应用在仓库的温度的巡检与报警展开相应的研究工作。随着单片机技术的拓展与利用,近年来单片机技术逐渐革新,已经进入高性能单片机的发展阶段。航天、军事、医疗、农业、化工等各个行业已经逐渐离不开单片机的广泛使用。传统方式的测温不仅浪费资源人力而且精度差不能达到实时监测的目的。单片机的产生使得温度信号采集和信息处理方面变得更加简单,快速,效率。测温传感器做工不同,信号采集的精度也不相同,因此对数据采集的精度和控制方式也不相同。1.2国内外研究现状和发展趋势(1) 国外温度测控系统研究 1600年,伽厘略研究出了气体温度计,开启了人们研究温度这一物理量的先河。自1970年开始,国外科学家就着手探索温度控制这一领域。国外已经陆续推出多种温度传感器,并且可靠性更高,测量精度更准确。国外逐渐开始运用9到12位A/D转换器,分辨率可以达到0.5-0.0625。美国达拉斯半导体公司新研制的DS1624型高分辨率的智能温度传感器,分辨率高达0.03125,测温精度位0.2。目前,国外的温控技术正朝着无人化,自动化,高精度的方面发展。(2)国内温度测控系统研究 相比与国外,我国对于温度控制与测量这一领域的研究则较晚,大约开始于1980年左右。我国温度测控领域技术离产业化,工业化还有很大一段距离,在实际生产生活中还有大量问题困扰着我们。我国温控技术的发展一直存在着硬件系统差,领域窄,产量少,产业化程度低,环境保护意识落后,基础的研究资源少等缺点。近年来国内经济发展迅速,温控测控这一市场即将面临国外产品的冲击。第二章 仓库测温巡检系统的方案考虑到本系统设计成本和现实操作,我选择AT89C51单片机作为本设计的核心模块。目前,AT89C51应用广泛,价格便宜,而且功能更齐全。因此,将AT89C51作为接口芯片使用,是非常睿智的。关于温度传感器的选择,我认为达拉斯公司生产的DS18B20传感器可以胜任这一项工作。单片机可以直接从DS18B20读取转换后的温度值,而且不需要另外接A/D转换器,非常方便。而且多个DS18B20可以用单总线结构来连接,只需要一个I/O口就可以完成多点测量。其物理性能稳定,测量精度高,在090之间,最大线性偏差小于1。系统要完成的设计功能如下:对仓库各地点温度参数的实时采集,再通过温度传感器和单片机对数据进一步的处理,实时反馈到LCD上。实现智能声光报警。抗干扰性好,运行稳定,LCD显示简洁友好。采用RS232串行通讯方式,将温度数据实时传送到计算机,实现远程通信。系统自动存储温度数据。测温范围:-55+125测温精度:正负0.52.2 方案选择2.2.1 方案一 本仓库测温巡检系统设计可以使用热电偶,热敏电阻之类的元器件,虽然其线性度较好,但在所测温的要求内,测温精度差2,对于小于1的温度信号是不适用的。在电路布局设计方面中较为繁琐,相比之下总成本也比较高。2.2.2 方案二 也可以考虑使用智能温度传感器DS18B20,结合单片机电路设计,采用多只温度传感器。采用并联的方式把各个温度传感器分布在不同位置,由DS18B20测温后后进行数值转换,再由LCD显示出实时温度。此方案电路设计简洁,设计成本较低,在C语言编程时也非常简便。2.3 方案论证比较以上两种方案,我觉得方案二工作稳定、系统响应快、远距离通信、体积小、耗能低、外围电路简单、精简了系统工作时间、软件设计方便快捷。因此,本设计中选择方案二。如图1所示:它由三部分组成1) 核心控制模块采用AT89C51单片机2)显示部分采用LCD1602实现温度显示2) 温度采集部分采用DS18B20温度传感器 数据处理 键盘模块 AT89C51 DS18B20 温度采集LCD 显示模块晶振电路 报警模块 复位电路 图1 系统硬件方案2.4 系统硬件总方案课题设计的硬件部分由AT89C51单片机、DS18B20、LCD1602、排阻以及若干电容、2个LED灯、扬声器、RS232串行通信、4个按键、12MHZ晶振组成。以下是对几个组成部分的介绍:1) AT89C51单片机用于温度采集,信号处理,存储温度和报警电路控制。2) DS18B20是单总线结构的数字温度传感器,主要是温度信号的采集和转换。单片机P3.3口接收来自温度传感器DS18B20的信号,AT89C51接收温度数据并存储。3) LCD1602液晶显示屏用于显示实时温度值、温度传感器序列号、温度报警上下限。4) RS232用于和计算机进行数据通信。5) LED灯是用来温度上下限溢出的警报。第3章 仓库测温巡检系统硬件设计3.1 单片机AT89C51介绍3.1.1单片机基本知识AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS8位单片微型计算机。片内含4K字节的可重复擦写的只读程序存储器,及128k字节的随机存取存储器。 由于单片机主要的功能是控制的功能,随着科技的进步和需求,单片机芯片内集成了许多的需要被测控的目标的接口电路。这些已经超出了传统微型计算机的体系构造,所以可以更加明确的反应单片机的本质名字应是微型控制器。 它采用了ATMEL公司的高密度、非易失性存储技术,兼容行业标准的MCS-51指令系统,片内置8位CPU和FLASH存储单元,功能强大的AT89C51可灵活运用与各种生活生产领域。如图2: 图2 AT89C51引脚图3.1.2 AT89C51各个I/O口介绍PO口的口线逻辑电路如图所示。当写P0口,由锁存和驱动电路输出通道。途径为输出锁,所以与外围设备直接连接到输出的数据,而不需要添加数据锁存电路。 图3 P0口内部结构图P1口是一个在单片机内提供上拉电阻的8位双向I/O口,如下图: 图4 P1口内部结构图P2口是一个8位准双向I/O口的内部带有上拉电阻,属于多功能口, 在有外接存储器或者I/O接口时,系统的地址总线输出高8位地址,与P0口的低8为地址组成16位的地址总线。在编写程序的时候,控制的信号和高8位的地址字节也输送到P2口。如下图: 图5 P2口内部结构图 P3端口是一个多功能,它除了可以作为I / O网点,另外还有一个功能,端口P1和P3结构相似,不同的是P3口每个端口线有两个功能。当P3在功能状态,1秒线为高水平的函数。此时,内部总线信号通过锁存器场效应管进行输入/输出操作,那么函数的P3口和P1口是一样的,是一个静态双向I / O端口。当P3在函数,输出高水平,2锁存和在一个特定的输出信号,通过函数输出线2在P3输入口,已经可以通过输入缓冲引脚区信号,可以通过选择输入函数来读取特定函数的第二信号。因为输出信号是锁和有两重功能,因此P3端口静态的两重功能如下图: 图6 P3口内部结构图P3端口结构图P3口第二功能表:端口引脚第二功能标识第二功能P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2INT0外部中断0申请P3.3INT1外部中断1申请P3.4T0定时器/计数器0输入P3.5T1定时器/计数器1输入P3.6WR外部RAM写选通P3.7RD外部RAM读选通。RST:复位输入口。ALE/:输出低电平编程的过程中,不能用在正常操作。在成为一个PSEN必须保持低水平,不能使用在正常操作。在编程的EA / VPP这销管,没有使用外部程序存储器的应用程序,这个引脚可以永久的接到VCC上面。时钟和复位是一个重要的组成部分在单片机系统中,控制单片机复位机器循环和函数。简单地说,单片机复位并重新启动计算机。几乎,每一个微控制器在工作要复位过程中,对单片机复位,程序还没有开始准备工作或单片机必须重新启动工作的实现。 3.3.3 时钟电路将AT89C51的反向放大输入端XTAL1和输出端XTAL2与石英晶体震荡器X1及两个电容C1、C2按图3-1所示形式连接起来。图中由晶振、电容C1C2及片内与非门(作为反馈、放大元件)构成了晶振电容三角式的震荡器,而震荡信号频率大小是和晶振频率及电容C1、C2的容量有很大关联,但主要还是由晶振频率来决定,晶振的范围在024MHz之间,电容C1、C2取值范围则在530pF之间。根据实际情况,本设计中采用12MHZ做系统的外部晶振。电容取值为30pF。图7 时钟电路 3.3.4 复位电路本设计单片机每次上电就会复位一次。如果单片机连续操作两个周期以上的高电平时,也会复位一次。如引脚RST一直是高电平,单片机就会保持循环复位状态。单片机复位是另一个特征的CPU和系统从初始状态,一般复位模式主要是上电复位和手动复位按钮等,本设计选用手动按钮复位模式。当单片机通电后,电压的电容器C3此时会很小,重置下拉电阻器R2的电容器C3并联电压接近电源电压,相当于RST是1(高水平),在这个过程中充电电容器C3 RST端口电压下降缓慢,RST电压下降到低于一定值,单片机内部CPU从复位状态,由于电容器C3足够大,可以保证RST 1有效时间大于24振荡周期,CPU可以可靠复位。当复位按钮添加到避免事故不能可靠复位。当复位按钮按下电容器C3放电。当放电电容器C3结束,RST的点位是由R1和R2的分压比来决定。因为R2 R1,所以RST高水平,CPU在复位状态,放手,在充电电容器C3,RST结束电压降,CPU从复位状态。R2的作用是限制按钮按下瞬时放电电流的电容器C3,防止电火花的产生,为了保护按钮触电。复位电路与AT89C51连接如图8: 图8 复位电路3.2 温度传感器DS18B20的选择 DS18B20是美国达拉斯公司设计制造的一种温度传感器。该传感器使用一种独特的“单总线”结构,可以将传感器与微处理器之间的连线降到最少。同时DS18B20支持912位精度的温度测量和转换。它的主要特点体积小,测量精度高,传感器和处理电路集成,采用单总线连接,支持温度报警功能。温度与人们的生活紧密联系,同时也是人们在科学实验和生产活动中需要探索和研究的关键物理参数。因此,在各类传感器中,温度传感器是应用范围比较大的一种。对比于传统的温度传感器和集成温度传感器,它的线性度和均匀性都很好。由于集成温度传感器将传感部分、放大电路、驱动电路以及信号处理电路等集成在一个芯片上,使得它体积小,使用方便快捷,因此在很多领域的到了应用。在智能温度传感器中,温度传感部分大都利用一堆极其匹配的半导体三极管当做温敏差分对管,利用他们两个的U电压之间所具有的的良好正温度系数来制作集成温度传感器。3.2.1 DS18B20简介温度值是由温度传感器以9位数字量的形式显示出来的,经过单总线结构接口发送或接收信息,因此在CPU和DS18B20之间仅需1根数据线进行连接。因为每个DS18B20都有一个独特的ROM序列号,所以多个DS18B20可以同时连接在一根单总线上,这样就可以把温度传感器安放在不同的地方进行温度的多点检测。3.2.2 温度传感器DS18B20的性能特点1) 一总线结构,仅需要一根口线与SCM连接;2) 寄生电源或外接电源;3) 支持多点测量功能,多个DS18B20可以并联在一起(+5V、地一根口线);4) 可实现1/21/16的高精度转换;5) 在93.75ms或750ms内将温度值转化9位或12位的数字量;6) 可以设置报警上下限值;7) 报警搜索命令可以识别哪片DS18B20温度超过报警阀值;8)芯片自身有存储功能;3.2.3 DS18B20的内部结构DS18B20内部结构如图1所示,主要由4部分组成:1)64位的ROM 2)温度传感器3)非挥发的温度报警触发装置TH和TL 4)配置寄存器。DS18B20的管脚排列如图2所示:DQ为数字信号输入输出端GND为电源地VDD为外接电源 图9 DS18B20管脚排列3.2.4 DS18B20工作时序图1) 初始化时序 单片机输出低电平,温度传感器保持480us,已取得足够的时间来产生复位脉冲。然后主机释放,由4.7K的上拉电阻拉高电平,并延时1560us,产生低电平应答脉冲,如果是低电平,则延时480us。 图10 初始化时序图2) 写时序图11 写时序3) 读时序 图12 读时序3.2.5 DS18B20的测温原理单片机每次对DS18B20发起操作都必须严格按照下面流程执行:1) 初始化DS18B202) 发送ROM指令3) DS18B20功能命令这个交互顺序非常重要,每当单片机访问DS18B20时都必须按照这个流程执行,如果某个流程中的步骤或者顺序出错,DS18B20将没有响应。当命令序列执行完毕后,主控制器返回1。一总线高电平的位置处于空闲状态。斜率累加器预置预置低温度系数晶振预置计数器1LSB位置/清除温度寄存器=0 加1高温度系数晶振计数器2=0停止 图13 测温原理内部装置表1 ROM操作命令 DS18B20在单线通信中是分成各个时间段来完成的,它有一个严格的时间槽。因此,读写时序对于单片机控制DS18B20来说显得格外重要,它必须按协议进行操作。操作协议:初始化DS18B20发送ROM指令发送存储器操作命令进行数据处理。3.2.6 DS18B20的测温流程图 初始化DS18B20跳过ROM匹配温度变换延时1S跳过ROM匹配读暂存器转换成显示码数码管显示图14 DS18B20测温流程3.2.7 DS18B20与单片机AT89C51连接电路在本设计中DS18B20采用的电源供电方式,一个管脚接地,一个管脚经4.7K上拉电阻后接电源,另一个管脚接单片机P3.3口。DS18B20是支持“一总线”模式的,但有些总线协议会将一些信号释放为高阻态,实际上电路的状态应该事确定的0或1,所以在这里上拉电阻是用来提供一个确定的状态。由于单线制只有一根线,因此发送端接口必须是高电平,低电平,高阻态。3.3 1602LCD液晶显示屏3.3.1 LCD1602液晶显示屏的基础参数 液晶显示模块是一种将液晶显示元器件,连接件,集成电路,PCB线路板,背光源构件装配在一起的组件。英文名称“LCD Module”,简称”LCD”,中文一般称为“液晶显示模块”。根据显示方式和显示内容的不同,液晶模块可以分为以下3种:1)数显液晶模块2)液晶点阵字符模块3)点阵图形液晶模块LCD1602分为有背光和没有背光的两种,基础控制驱动器大部分为HD44780,有背光的比没有背光的厚,不管带不带背光在应用中是没有多大区别的。3.3.2 LCD1602引脚说明 图15 1602A的接口图1602采用标准的16脚接口:3.3.3 LCD1602控制指令说明LCD1602液晶模块内部的控制器如表所示:表4.5 控制命令表3.3.4 基本操作时序1) 读状态:输入;RS=L, RW=H, E=H 输出:D0D7=状态字2) 写指令:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:无3) 读数据:输入:RS=H,RW=H,E=H 输出:D0D7=数据4) 写数据:输入:RS=H,RW=;,D0D7=数据,E=高脉冲 输出:无 字符集 3.3.5 LCD1602与AT89C51单片机接口电路本设计采用了LCD1602字符显示模块,相比较数码管显示而言,LCD在硬件连接和软件调试上具有明显优势,LCD1602在跟单片机连接时使用了RESPEACK-8排阻相比较数码管少了74LS138译码器,硬件电路更加简洁。LCD在与单片机连接时采用了总线模式,使电路更明显易懂。3.4 键盘模块设计键盘一般分为矩阵键盘和独立键盘,使用矩阵式键盘能大量的节约单片机的I/O接口资源,方便快捷。相比较而言独立键盘虽然占用了I/O资源,但是运用灵活,C程序编译调试简单,相对于按键较少的电路很适用。1) 按键按下判断:通过判断电平状态来检测开关闭和问题;2)按键确认判断:主要是按键消抖问题;3)按键充分释放判断:确认按键已经按下后,还需不断循环检测键位是不是被完全释放。 1) 传感器ROM显示:通过按键显示不同DS18B20的ROM序列号来分辨仓库各点的温度。2) 显示报警温度:按键显示报警温度上下限3) 正常显示温度:通过按键切换显示各个DS18B20的实时温度3.5 报警模块设计 DS18B20每经过一次温度转换,都会对存储在温度传感器中的TH和TL值进行比较,由于它是8位寄存器,因此0.5小数位可以不计算在内。16位温度寄存器是由TH或TL的最高有效位来对应或决定的。当温度传感器测量的温度超过TH(或者低于TL)时,元器件内部会生成报警记号,每操作一次温度检测就对这个温度记号进行数据更新。如果某地点的温度超过了温度报警阀值,报警的元器件就会被系统立即识别出来并读取。 报警电路说明:单片机AT89C51负责控制P3.7报警电路的信号输出,当温度值低于温度下限时,报警器响并伴随(蓝)灯暗灭交替,表示当前温度值低于上限值,系统默认为安全状态;反之,当温度超过温度上限值时,报警器响并伴随(红)灯暗灭交替。 3.6 RS232串行通信RS-232是由美国电子工业联合会与BELL等公司一起开发的串行通信接口标准。目前,电脑与外围设备的连接,很多都使用RS232接口,例如串口的键盘,数字机顶盒,PSP等等。RS232采用负逻辑电平,收发两端之间采用多芯的信号线,而且总负载电容不能超过250pF。所谓的RS-232通信标准,就是对插件样式、信号名称和意义以及所谓的驱动器/接收器的电气模式这种硬件作出规定。一般的都是9针的接口,其中包括CD接口:载波检测;RD接口:接收信号;SD接口:发送信号;ER接口:信号终端就绪;SG接口:信号用接地;DR接口:数据集就绪;RS接口:请求发送;CS接口:允许发送;CI接口:被呼表示。用以上接口进行数据通信,还有对电平的要求。当然与51单片机进行通信方式很简单,首先要解决的是电平标准,51的I/O口最大输出5V电压,而RS-232要求电压在12V,为达到电平匹配,需用到MAX232CPF电平转换芯片,将05V电平转换为12V电平,从而实现电平匹配;然后,数据接口只用到了数据发送与接收2个端口,还有数据的请求发送与允许发送,共4个端口,MAX232CPF还有其他一些外围电路接口,但比较简单,都是些电容接口,从而实现单片机与RS232接口的通信。3.7 电源电路设计 本设计单片机电源电路采用220V转5V稳压电源供电。220V交流电压经过变压器电压值降到12V左右,在经过整流滤波和LM7805集成稳压器将输出电压稳定在5V,电路中设计了两个滤波电容(470uf和0.1uf)进一步滤出波纹,进而得到稳定5V稳压电源(稳压电路在这里的作用是清除电网波动及负载变化的影响,保持电压的稳定)。当电路接通时LED绿灯亮表示已通电。这里C8和 C9两个电容是滤波电容,C9它是针对电源本身的波动而加入的,是用来去除电源低频波纹;C8退藕电容是因为放大电路电力消耗而使电源波动才加入的。第4章 仓库测温巡检系统软件设计4.1 主程序流程图 本系统采用C语言编写,程序主要由定时程序,温度显示程序,LCD显示程序,报警程序,按键消抖程序组成。温度程序主要分为:DS18B20初始化,跳过ROM,读字节,写字节,读温度,温度转换这几部分。LCD程序主要分为:LCD初始化,测忙,写地址,写字符,显示这几部分。键盘处理部分主要实现用户对温度报警值的查阅及温度传感器序列号的查阅,系统软件主流程如图4-1所示。开 始初始化DS18B20显示当前温度判断当前温度值超过设定温度上限蜂鸣器响红灯亮 初始化LCD蜂鸣器响是否低于设定温度下限是蓝灯亮否 4.2 温度处理子程序设计35DS18B20复位、应答子程序跳过ROM匹配命令写入子程序温度转换命令写入子程序显示子程序(延时)DS18B20复位、应答子程序跳过ROM匹配命令写入子程序读温度命令子程序终 止 图5-8 读出温度子程序4.2.1 初始化DS18B20 uchar Init_DS18B20() uchar status;DQ = 1;Delay(8);DQ = 0;Delay(90);DQ = 1;Delay(8);status = DQ;Delay(100);DQ = 1;return status;4.2.2 读一个字节命令uchar ReadOneByte() uchar i,dat=0;DQ = 1;_nop_();for(i=0;i= 1;DQ = 1;_nop_();_nop_();if(DQ)dat |= 0X80;Delay(30);DQ = 1;return dat;4.2.3 写一个字节命令void WriteOneByte(uchar dat) uchar i;for(i=0;i= 1;4.2.4 读取温度void Read_Temperature() if(Init_DS18B20()=1)DS18B20_IS_OK=0;elseWriteOneByte(0xCC);WriteOneByte(0x44);Init_DS18B20();WriteOneByte(0xCC);WriteOneByte(0xBE);Temp_Value0 = ReadOneByte(); Temp_Value1 = ReadOneByte();Alarm_Temp_HL0 = ReadOneByte();Alarm_Temp_HL1 = ReadOneByte();DS18B20_IS_OK=1;4.3 显示模块子程序设计 显示 写显示字符 写显示地址 初始化LCD 开始4.3.1 LCD初始化void LCD_Initialise()/delay(15); /延时15ms,首次写指令时应给LCD一段较长的反应时间 Write_LCD_Command(0x38); /显示模式设置:8位数据,162显示,57点阵,delay(5); /延时5ms/Write_LCD_Command(0x38);DelayMS(1);/Write_LCD_Command(0x38);/delay(5);/Write_LCD_Command(0x0f); /显示模式设置:显示开,有光标,光标闪烁/delay(5); Write_LCD_Command(0x01); /清屏幕指令,将以前的显示内容清除DelayMS(1);Write_LCD_Command(0x06); /显示模式设置:光标右移,字符不移DelayMS(1);Write_LCD_Command(0x0C); DelayMS(1); 4.4 温度报警值程序设计此次设计设有温度报警功能,程序中首先设定了高温报警的温度为70摄氏度,即仓库内的温度超过了70摄氏度时,就自动会启动高温报警系统,仓库内的温度低于-20摄氏度时,就会自动启动低温报警系统在本次试验中的报警设备选用了蜂鸣器和LED灯。如果仓库内监测点的温度值超过了报警温度值,LED灯闪烁,扬声器响。case 1: /正常显示当前温度,越界时报警 Read_Temperature(); if (DS18B20_IS_OK) if(HI_Alarm = 1 | LO_Alarm = 1) TR0 =1; else TR0 = 0; Display_Temperture(); DelayXus(100); break;第五章 系统软硬件的调试5.1 系统硬件调试硬件调试主要是检查电路连接是否正确,每个元器件参数是不是符合要求(例如DS18B20要接4.7K的上拉电阻,选择11.0592MHZ晶振时电容值最好在2030uf之间,与电脑串行通信时最好使用30uf电容)。5.2 系统软件调试我的程序是在KeilC51软件中编写的,经过多次调试,修改,最终终于编译通过。编译通过后,生成hex文件。然后打开Proteus软件,将生成的hex文件下载到单片机中运行。由于测到的温度是71度,而设定的范围是-20摄氏度到70摄氏度,因此实际检测到的温度不在温度阀值范围之内,系统自动报警扬声器响。仿真结果达到了预期设想。5.2.1 keilC51调试Keil C51是德国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,提供了丰富的库函数和功能强大的集成开发调试工具Vision3、keilC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编语言代码高效、快速的特点。利用KEIL开发和调试系统软件流程:(l)进入KEIL软件;(2)新建C文件,编辑程序;(3)新建工程,选择对AT89C51单片机进行开发,选择c文件的编译、链接参数,选择调试方式,修改单片机晶振频率;(4)可进行编译、链接,并生成HEX文件。一)新建工程,选择单片机型号AT89C51,这时会弹出一个对话框,选择NO。2) 新建C文件,将编写好的程序粘贴进来,进行保存。添加c文件,选择“源代码组1”右击添加c文件。3)4) 勾选“产生hex文件”选项五)单击项目窗口上的“Target1”然后单击菜单,工程“Targte1”属性,对话框中的选项选择默认值。这里设置频率值为12M,勾选生成“HEX”文件从而生成文件代码。很快在窗口中就显示HEX文件已经到指定的文件夹中去了,这样我们就可用自己的Keil附带的软件去读取并输入到单片机中。六)编译,调试和运行。如果做单片机的话,这是必须的。单击“工程”菜单,再在菜单中单击“构造目标”选项,如果有错误,则按照提示修改程序,编译成功后,再单击“debug”菜单下的“start/stop debug”,开始调试。单击菜单下的“go”按钮,然后单击“ stop go”按钮,就可以看到执行后的结果了。编译完成,查看是否有错。5.2.2 proteus调试Proteus是世界上著名的EDA工具(仿真软件),是一个基于ProSPICE混合模型仿真器的,完整的嵌入式系统软,硬件设计仿真平台,由ISIS和ARES两大应用功能软件组成,前者是一个原理图输入软件,用于电路原理图的设计和仿真,后者则用于PCB布线。Proteus软件实现操作的流程化原理图输入模块混合模型设计模 块ASF高级图形模 块 Proteus 软件动态器件库模块CPU仿真模 块高级布线/编辑模块 图16 Proteus操作过程5.3 系统仿真1) 系统上电后,LCD显示C温度传感器实时温度,通过“传感器序列号显示”按键我们可以看到该DS18B20的序列号,下图是正常温度显示时的画面:2) 按下”显示报警温度”可以看到系统默认的温度报警阀值位“高温70,低温-20”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论