毕业设计(论文)-基于MCS-51单片机数据采集控制系统.doc_第1页
毕业设计(论文)-基于MCS-51单片机数据采集控制系统.doc_第2页
毕业设计(论文)-基于MCS-51单片机数据采集控制系统.doc_第3页
毕业设计(论文)-基于MCS-51单片机数据采集控制系统.doc_第4页
毕业设计(论文)-基于MCS-51单片机数据采集控制系统.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

学号: 08446333 常 州 大 学 毕业设计(论文)(2012届)题 目 基于mcs-51单片机数据采集控制系统 学 生 学 院 信息科学与工程学院 专业班级 电子(怀)081 校内指导教师 专业技术职务 讲师 校外指导老师 专业技术职务 电子工程师 二一二年四月1常州大学本科生毕业设计(论文)基于mcs-51单片机数据采集控制系统摘 要:随着电子技术的飞速发展,数据采集系统的应用越来越广泛,在工农业生产中,经常要对一些温度、湿度、电压、电流等参数进行采集,再利用采集的数据进行分析,以实现更好的控制。因此,数据采集系统的研究很重要。本文介绍了一种基于单片机的温度数据采集系统,利用单片机和多路温度传感器进行分散式数据采集,并将采集到的温度通过液晶显示器显示,同时可以利用按键设置异常温度值,当测量的温度超出这个异常值时,系统可以启动蜂鸣器报警提示。本文提出的设计方法电路简单易懂、成本低廉、测量结果准确、稳定性高。关键词:单片机、数据采集、ds18b20、液晶显示器。based on the mcs-51 single-chip microcomputer data acquisition control systemabstract: with the rapid development of electronic technology, the application of data acquisition system is more and more widely, in the industrial and agricultural production, the temperature, humidity, voltage, current, parameters are collected, andanalyzetheaccumulateddata, in order to achieve better control. so, data collection system study is very important. this paper introduces a kind of based on single chip microcomputer temperature data acquisition system, using single-chip microcomputer and temperature sensor for distributed multi-channel data collection, and the collected temperature are shown through liquid crystal, also can use the buttons to set the value of the abnormal temperature, when measuring temperature beyond this unusual value can start a buzzer alarm prompt. this paper puts forward the design method of the circuit is simple to understand, low cost, measurement results are accurate, high stability.key words: single-chip microcomputer; ds18b20; temperature sensor; lcd monitor摘要目次术语表(如有)1 引言(或绪论)11.1 题名11.1.1 题名12 题名32.1 题名52.1.1 题名105 结论35参考文献38致谢40附录a41附录b421 引言1.1 选题目的及意义随着电子技术和计算机技术的飞速发展,数据采集系统在很多领域都有广泛的应用,包括工农业生产过程中的控制系统、医药、化工、食品加工等的生产过程中,往往需要检测生产环节中的温度、湿度、压力、流量等各种参数,同时将参数提取出来经过数据转换后输入至计算机,对数据进行比较、分析,以便做出正确的决策,调整方案,提高生产效率。单片机是把组成微计算机的个功能部件如中央处理器cpu、随机存取存储器ram、只读存储器rom、i/o接口电路、定时器/计数器以及串行通信接口等部件制作在一块集成芯片中,构成一个完整的微型计算机。单片机的单芯片的微小体积和极低的成本,使其可以广泛的嵌入到玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端以及通信产品中,成为现代电子系统中最重要的智能化配件1。单片机的应用是现代计算机、电子技术的新兴领域,无论是单片机本身还是单片机应用系统设计方法都会随时代不断发生变化,各种产品一旦用上了单片机,就能起到使产品升级换代的功效,而且单片机可以通过串口与pc机相连实现通信,这样可以将采集到的数据上传至计算机中,实现数据的各种分析等功能,还能实现数据的远程传输于监控2。因此,利用单片机来设计多路数据采集意义重大。 1.2 技术发展概况数据采集,又称为数据获取,是指从传感器和其他待测设备等模拟和数字被侧单元中自动采集信息的过程。数据采集系统是结合基于极端及的测量软硬件产品来实现灵活的、用户自定义的测量系统。数据采集的目的是为了测量电压、电流、温度、压力或声音等物理现象,可以是物理量,也可以是数字量,采集一般是采样方式,即隔一定时间对同一点数据重复采集3。采集的数据大多是瞬时值,也可以是某段时间内的一个特征值。准确的数据测量是数据采集的基础。数据测量方法有接触式、非接触式,检测元件多种多样,不论哪种方法或者元件,均以不影响被测对象状态和测量环境为前提,以保证数据的这个正确性4。数据采集含义很广,在计算机辅助制图、测图、设计中,对图形或者图像的数字化过程也可以称为数据采集,此时被采集的是几何量数据。基于pc的数据采集,通过模块化硬件、应用软件和计算机的结合,进行测量。尽管数据采集系统根据不同的应用需求有不同的定义,但各个系统采集、分析和显示信息的目的却都相同5。数据采集系统整合了信号、传感器、激励器、信号调理、数据采集设备和应用软件。在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,数据采集领域已经发生了重要的变化6。首先,分布式控制应用场合中的智能数据采集系统在国内外已经取得了长足的发展。其次,总线兼容型数据采集插件的数量不断增大,与个人计算机兼容的数据采集系统的数量也在增加。国内外各种数据采集机先后问世,将数据采集带入了一个全新的时代7。数据采集系统的机构多种多样,常见的分类有以下几种:按照功能分为数据收集和数据分配;按照数据采集系统适应环境分为隔离型和非隔离型,集中式和分布式,高速、中速和低速型;按照控制的功能分为智能化数据采集系统、非智能化采集系统7;按照模拟信号的性质分为电压信号、电流信号,高电平信号、低电平信号、单端输入、差动输入,单极性、双极性;按照信号通道的结构方式分为单通道方式和多通道方式。数据采集系统的发展趋势:微电子技术的一系列成就和微型计算机的广泛应用,不仅为数据采集系统的应用开拓了广阔前景,也对数据采集技术方面产生了非常大的影响8。数据采集系统的发展趋势主要体现在以下几个方面:1、新型快速、高分辨率的数据转换器件不断出现,在很大程度上提高了数据采集系统的性能;2、高性能的单片机的问世和各种数字信号处理器的涌现,推动了数据采集系统的广泛应用;3、智能化传感器的发展对今后数据采集系统的发展也会产生很大的影响;4、与微型机配套的数据采集器件大量问世,大大方便了数据采集系统在各个领域的应用,并有利于促进数据采集系统技术的进一步发展;5、分布式数据采集是数据采集系统发展的一个重要趋势。2 方案设计2.1 方案比较与选择2.1.1 温度传感器选择目前测量温度主要是通过以下几种方式:热电偶、热电阻、热敏电阻和数字式温度传感器,下面对这几种方式作以分析比较。方案一:热电偶式温度传感器。热电偶式温度传感器测量特点是测量精度高,结构简单,测量范围广,价格便宜,但热电转换灵敏性差,对放大电路要求高。方案二:热电阻温度传感器。它的优点是线性度好,测量准确,有较大的测量范围,但灵敏度低,价格较高。方案三:热敏电阻。热敏电阻是利用半导体的电阻值随温度的变化而显著变化的特性实现测温的,半导体热敏电阻有很高的电阻温度系数,其灵敏度比热电阻高得多。热敏电阻的缺点是互换性较差,另外其热电特性是非线性的。方案四:数字式温度传感器ds18b20。ds18b20是美国dallas半导体公司的产品,它采用1-wire总线技术,将地址线、数据线、控制线合为1根信号线,允许在这根信号线上挂接多个1-wire总线器件。1-wire总线技术具有节省i/o资源、结果简单、成本低廉、便于总线扩展和维护等特点。ds18b20采用特有的温度测量技术,可提供912位(二进制)数据来指示传感器温度,数据信息与ds18b20之间只需一根数据线(和地线)连接即可。综上所述,选用ds18b20作为温度传感器为最佳方案。2.1.2 单片机选择方案一:intel公司推出的mcs-48系列单片机,被称为第一代单片机。由于8048硬件结构相对简单,寻址能力也较弱,仅适用于一些简单实时控制场合。方案二:mcs-51系列单片机称为第二代单片机,与8048相比,51系列单片的硬件结构和指令系统均有很大改进,51系列在片内存储器容量、i/o口的功能以及指令系统功能等方面,都大大地得到加强,如支持更大的存储空间,很强的外部扩展功能,速度提高了2-5倍,可完成布尔运算等。51系列特别适用于实时控制、只能仪表等领域,是控制应用领域中最理想的8位机。方案三:近年来,又出现了十六位单片机,即mcs-96系列,8096、8098是先进的十六位“片上计算机”,芯片内含有2000个以上晶体管,速度快,集成度高,适合于i/o密集场合的实时控制,但是设计过程较复杂,价格较高。根据上述比较可看出,mcs-51单片机在i/o功能、种类、数量级系统扩展和cpu处理上都有较高性能,可谓是性价比最佳的8位单片机。因而本系统采用at89c52单片机作为控制器。2.2 设计方案本设计用at89c52单片机作为主控制器件,测温传感器则采用新型单线数字温度传感器ds18b20,实现温度的测量与显示,由于ds18b20的输出即为数字信号,所以可以直接接单片机引脚进行数据通信。显示单元采用液晶显示器进行显示。使用人员可以根据实际需要通过按键设定温度值范围,当测量温度超出所设定的温度范围值时,启动蜂鸣器报警。本设计共采集了2个点的温度。系统设计框图如图2-1所示。at89c52单片机测温电路按键电路显示电路报警电路图2-1 系统设计框图3 系统硬件设计3.1 protel简介本设计硬件电路是在protel电子设计软件环境下进行设计的,系统整体电路原理图见附录。protel电子线路设计软件是在tango基础上改进的电路cad软件,它在原理图文件格式、印制板文件格式、原理图器件库文件格式、印制板封装库文件格式、原理图编译和网络表转换与检查等方面保持了与tango版本一致或兼容的前提下,对原tango版本做了一些改动。protel电子线路设计软件由原理图编辑、印制板设计、原理图输出、印制板输出、原理图器件库编辑和其他应用程序组成。电路原理图的设计是印制电路板设计中的第一步,也是非常重要的一步。电路原理图设计得好坏将直接影响到后面的工作。首先,原理图的正确性是最基本的要求,因为在一个错误的基础上所进行的工作是没有意义的;其次,原理图应该布局合理,这样不仅可以尽量避免出错,也便于读图、便于查找和纠正错误;最后,在满足正确性和布局合理的前提下应力求原理图的美观。电路原理图的设计过程可分为以下几个步骤:1、设置电路图纸参数及相关信息根据电路图的复杂程度设置图纸的格式、尺寸、方向等参数以及与设计有关的信息,为以后的设计工作建立一个合适的工作平面。2、装入所需要的元件库将所需的元件库装入设计系统中,以便从中查找和选定所需的元器件。3、设置元件将选定的元件放置到已建立好的工作平面上,并对元件在工作平面上的位置进行调整,对元件的序号、封装形式、显示状态等进行定义和设置,以便为下一步的布线工作打好基础。4、电路图布线利用protel所提供的各种工具、命令进行画图工作,将事先放置好的元器件用具有电气意义的导线、网络标号等连接起来,布线结束后,一张完整的电路原理图基本完成。5、调整、检查和修改利用protel所提供的各种工具对前面所绘制的原理图做进一步的调整和修改。6、补充完善对原理图做一些相应的说明、标注和修饰,增加可读性和可观性。7、保存和打印输出这部分工作主要是对设计完成的原理图进行保存,包括存盘、打印输出等,以供以后的工作中使用。3.2 测温模块3.2.1 ds18b20简介ds18b20是美国dallas公司生产的一线式数字温度传感器,它具有微型化、低功效、高性能、抗干扰能力强、易配处理器等优点,特别适用于多点测温系统,可直接将温度转化成串行数字信号给单片机处理,且在同一总线上可以挂接多个传感器芯片。它具有3引脚to-92小体积封装形式,温度测量范围为-55+155摄氏度,可编程为912位a/d转换精度,测温分辨率可达0.0625摄氏度,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远程引用,也可采用寄生电源方式产生,多个ds18b20可以并联到三根或两根线上,cpu只需一根端口线就能与多个ds18b20通信,占用微处理器端口较少,可节省大量的引线和逻辑电路。以上特点使得ds18b20成为此次设计的首选。ds18b20的主要特性: 1.1、适应电压范围更宽,电压范围:3.05.5v,在寄生电源方式下可由数 据线供电 1.2、独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯 1.3、 ds18b20支持多点组网功能,多个ds18b20可以并联在唯一的三线上,实现组网多点测温 1.4、ds18b20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内 1.5、温范围55+125,在-10+85时精度为0.5 1.6、可编程 的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温 1.7、在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快 1.8、测量结果直接输出数字温度信号,以一 线总线串行传送给cpu,同时可传送crc校验码,具有极强的抗干扰纠错能力 1.9、负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。2、ds18b20的外形和内部结构 ds18b20内部结构主要由四部分组成:64位光刻rom 、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器。 ds18b20的外形及管脚排列如下图3-1所示: 图3-1 ds18b20的外形及管脚排列3、ds18b20引脚定义: 3.1、dq为数字信号输入/输出端; 3.2、gnd为电源地; 3.3、vdd为外接供电电源输入端(在寄生电源接线方式时接地),ds18b20内部结构图如图3-2所示。图3-2 ds18b20内部结构图3.2.2 ds18b20工作原理ds18b20的读写时序和测温原理与ds1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 ds18b20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。ds18b20测温原理框图如图3-3所示。斜率累加器计数器1低温度系数晶振预置高温度系数晶振计数器2=0=0比较预置温度寄存器停止加1lsb置位/清除 图3-3 ds18b20测温原理框图3.2.3 测温电路设计测温电路设计如图3-5所示。ds18b20有两种方式供电,一种是采用电源供电方式,此时ds18b20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,单片机端口接单线总线,用一个mosfet管完成对总线的上拉。由于本设计为单片测温,所以采用外部电源供电法即可,方便简单。ds18b20是单总线控制,i/o引脚直接与单片机的引脚相连,就可以实现单片机与ds18b20之间的通信。图3-5 测温电路3.3 按键电路温度的范围设定通过按键来实现。常用的按键有独立键盘和矩阵键盘,矩阵式键盘分行和列,通过行和列来确定某一个按键的位置,适用于多键盘操作,可以节省单片机的i/o口。独立式键盘是直接将按键连接至单片机i/o口,单片机通过检测i/o来判断按下的按键,编程简单,但是占用i/o资源比较多。本设计中只需要用到4个按键来实现对温度范围的设定,所以使用独立式键盘即可。按键电路如图3-6所示。单片机的p3.0-p3.3口用来控制3路按键,按键作用为温度设定、移位、加1功能。图3-6 按键电路3.4 控制模块3.4.1 单片机简介单片机是指将cpu、随机存储器ram、只读存储器rom、输入/输出i/o接口电路集成在一个芯片上的微处理器,它将定时器/计数器等部分都制作在一块芯片上,从而构成一个完整的计算机系统。单片机的内部结构图如图3-7所示。定时/计数器中断系统cpu存储器并行i/o口串口i/o口txdtxdrxdtintp0-p3图3-47单片机内部结构图各部分功能介绍:cpu:中央处理器,是单片机内部的核心器件,它决定了单片机的主要功能特性。cpu主要由运算部件和控制部件构成。运算部件的功能是实现数据的算术运算、位变量处理和数据传送操作;控制部件是单片机的神经中枢,以主振频率为基准发出cpu的时序,对指令进行译码,然后发出各种控制信号,完成呢个一系列的定时控制的微操作,用来控制单片机各部分的运行。内部存储器:包含内部数据存储器(ram)和程序存储器(rom),存储器由大量的寄存器组成,每个寄存器称为一个存储单元。定时/计数器:定时器是由单片机的内部来提供一个计数信号;计数器记录单片机外部发生的事件,由单片机的外部电路来提供计数信号。at89s52单片机有3个16位定时/计数器,通过编程可以实现4种工作方式。中断系统:中断系统在单片机中起着非常重要的作用,采用的是一种实时控制技术,能对突发时间进行及时处理,从而提高系统的实时性能。at89s52有6个中断源,分为4个优先级,每个中断源的优先级是可编程的。串行i/o口:串行i/o口的数据每个位是按照顺序传输的,其特点就是需要一对传输线,且成本低,但是速度比较慢,效率低,适合于静态显示的应用。并行i/o口:并行i/o接口的数据所有的位同时传输的,其特点是速度快、效率高,但是传输多少位就需要多少根线,因此成本较高,适合于动态显示的应用。单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,鉴于以上考虑本课题选择at89c52作为整个系统的主控芯片。at89c52是一个低功耗,高性能cmos 8位单片机,片内含8k bytes isp(in-system programmable)的可反复擦写10000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89c52可为许多嵌入式控制应用系统提供高性价比的解决方案。at89c52芯片具有以下特性:(1)指令集和芯片引脚与intel公司的8051兼容;(2)8kb片内在系统可编程flash程序存储器;(3)时钟频率为033mhz;(4)128字节片内随机读写存储器(ram);(5)32个可编程输入/输出引脚;(6)2个16位定时/计数器;(7)6个中断源,2级优先级;(8)全双工串行通信接口;(9)监视定时器;(10)2个数据指针。at89c52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出i/o引脚。at89s52的引脚图如图3-5所示。图3-5 at89s52的引脚图各引脚功能如下:(1)电源引脚vcc和vss vss:接地端。vcc:芯片+5v电源端。(2)时钟信号引脚xtal1和xtal2xtail1、xtal2:当使用单片机内部振荡电路时,用外接石英晶振和微调电容,xtal1是内部振荡电路反相放大器的输入端,xtal2是片内振荡电路反相放大器的输出端,振荡电路的频率就是晶振的固有频率。当使用外部时钟时,xtal1接地,xtal2接外部时钟信号源。(3)控制信号引脚、和。:ret是复位信号输入端。当输入的复位信号保持两个机器周期(24个时钟周期)以上的高电平时有效,用来完成复位操作;第二功能作为备用电源输入端,当电源发生故障,电压降低到低电平规定值时,可通过为单片机内部ram提供电源,以保护片内ram中的信息不丢失,使系统在上电后能继续正常运行。:ale为地址锁存允许输出信号。在访问外部存储器时,ale用来锁存p0口扩展低8位地址的控制信号。在不访问外部存储器时,ale也以时钟振荡频率的1/6的固定频率输出,因而它又可以作对外输出时钟信号或其他需要,例如可以示波器查看ale是否有脉冲信号输出来确定89c52芯片的好坏;第二功能prog是对内部有eprom的单片机的eprom编程脉冲输入端,它和31号引脚的第二功能一起使用。:外部rom的读选通信号输出端。在访问外部rom时,产生负脉冲作为读外部rom的选通信号。而在访问外部ram或片内rom时,不会产生有效psen信号。:是访问外部rom的控制信号。当为低电平时,cpu只执行外部rom中的程序。当为高电平且pc值小于0fff(4k)时,cpu执行内部rom的程序,但当pc的值超出4k时将自动转去执行片外rom的程序。对于无片内rom的8031或不使用内部rom的89c51,需外扩eprom,此时ea必须接地;第二种功能是作为8751的片内eprom的+21v编程电源输入端。(4)并行i/o端口p0、p1、p2和p3p0口(p0.0p0.7):p0口是一个8位双向i/o端口(无需外接上拉电阻)。在访问外存储器时,分时提供低8位地址线和8位双向数据线。p0口先输出片外存储器的低8位地址并锁存在地址锁存器中,然后再输入或输出数据。p1口(p1.0p1.7):p1口是一个内部带有上拉电阻的8位准双向i/o端口。且p1口只能作为一般i/o口使用。p2口(p2.0p2.7):p2口是一个内部带有上拉电阻的8位准双向i/o端口。在访问外部rom或外部ram时,输出高8位地址,与p0口提供的低8位地址一起组成16位地址总线。p0口和p2口用作数据/地址线后,不能再作为通用i/o口使用。p3口(p3.0p3.7):p3口是一个内部带有上拉电阻的8位准双向i/o端口,在系统中8个引脚都有各自的第二功能。3.4.2 单片机时钟与复位电路时钟电路用于产生单片机工作时产生的时钟信号。时钟电路常用的有2种:内部振荡时钟电路和外部振荡时钟电路。at89s52内部带有时钟电路,只需要在xtal1和xtal2这2个引脚之间连接一个晶振和对地电容即可;外部振荡方式是把已有的时钟信号输入至单片机内部,使单片机时钟与外部时钟信号保持同步。本设计选用内部振荡方式,电路如图3-6所示。图3-6 单片机时钟电路复位电路用于使单片机系统回到初始状态。复位方式主要有四种:上电自动复位、按键电平复位、外部脉冲复位和自动复位。上电自动复位是通过外部复位电路的电容充电来实现的;按键电平复位是通过使复位端经过电阻与电源接通而实现的,在中间加一个按键,只要按下按键就实现了复位功能;外部脉冲复位是由外部提供一个复位脉冲来使系统复位的;自动复位是利用单片机内部的看门狗电路。本设计选用按键电平复位方式,电路如图3-7所示。图3-7 复位电路3.4.3 控制电路控制电路如图3-8所示。p0口作为液晶显示器lcd1602的8位数据线端口,p0口在使用时必须加上拉电阻,本设计选用了9针排阻;p1.0-p1.2控制液晶显示器lcd1602的复位端、读/写端和使能端;p1.3和p1.4引脚连接2路ds18b20的i/o口,控制并读取ds18b20采集的温度数据;单片机的p3.0-p3.2引脚控制3个按键用于设定温度的范围。单片机工作过程:单片机通过p1.3和p1.4引脚读取ds18b20的温度数据后通过p0口送至液晶显示器显示,通过读取p3口按键的输入设置温度的报警值,当测量温度超出设定的温度报警值时,单片机启动蜂鸣器报警。图3-8 单片机控制电路3.5 显示模块本设计的显示器选用lcd1602液晶显示器。lcd1602可显示162个字符,芯片工作电压为4.5-5.5v,工作电流为2.0ma(5.0v),模块的最佳工作电压为5.0v。lcd1602的接口信号说明如表3-1所示。表3-1 lcd1602引脚说明编号符号引脚说明编号符号引脚说明1vss电源地9d2data i/o2vdd电源正极10d3data i/o3vl液晶显示偏压信号11d4data i/o4rs数据/命令选择端(h/l)12d5data i/o5r/w读/写选择端(h/l)13d6data i/o6e使能信号14d7data i/o7d0data i/o15bla背光源正极8d1data i/o16blk背光源负极显示电路如图3-9所示,单片机的p0口向液晶显示器的d0-d7传送数据,p1.0引脚控制液晶显示器的复位端rst,p1.1引脚控制液晶显示器的读/写端r/w,p1.2引脚控制液晶显示器的使能端e。图3-9 显示电路3.6 报警电路 报警电路如图3-10所示,单片机p2.0引脚控制led灯,p3.2引脚控制蜂鸣器,实现声光报警功能。当测量值超出设定的范围值时,单片机p2.0引脚置低,led灯亮,p3.2引脚拉高,三极管导通,蜂鸣器导通蜂鸣,即实现了超温声光报警功能。图3-10 报警电路4系统软件设计4.1 keil简介本设计软件的设计是在keil c51的环境下编译的。keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。c语言有以下特点:1、语言简洁、紧凑、使用方便、灵活。c语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分。2、运算符丰富。c的运算符包含的范围很广泛,共有34种运算符,使得c的运算类型极其丰富,表达式类型多样化,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。3、数据结构丰富,具有现代化语言的各种数据结构,能用来实现各种复杂的数据结构的运算。4、具有结构化的控制语句,用函数作为程序的模块单位,便于实现程序的模块化。5、语法限制不太严格,程序设计自由度大。6、c语言能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此,c既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。c语言的这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。7、生成目标代码质量高,程序执行效率高。8、用c语言写的程序可移植性好。基本上不用修改就能用于各种型号的计算机和各种操作系统。对操作系统和系统实用程序以及需要对硬件进行操作的场合,用c语言明显地优势于其他高级语言,有的大型应用软件也用c语言来编写。4.2 程序设计流程 本设计软件设计流程图如图4-1所示。结束开始初始化设定温度值范围读取温度数据将温度值送显示超温度值?ny报警图4-1 软件设计流程图4.3 测温程序设计ds18b20有三个主要的数据部件:64位激光rom,温度灵敏元件,非易失性温度告警触发器th和tl。器件从单线的通信线取得其电源,在信号线为高电平的时间周期内,把能量贮存在内部的电容器中,在单信号线为低电平的时间期内断开此电源,直到信号线变为高电平重新接上寄生(电容)电源为止,作为另一种可供选择的方法,ds18b20也可用外部5v电源供电。与ds18b20的通信经过一个单线接口。在单线接口情况下,在rom操作未定建立之前不能使用存储器和控制操作。主机必须首先提供五种rom操作指令之一:read rom(读rom);match rom((符合rom);search rom(搜索rom);skip rom(跳过rom);alarm search(告警搜索)。这些命令对每一器件的64位激光rom部分进行操作。如果在单线上有许多器件,那么可以挑选出一个特定的器件,并给总线上的主机指示存在多少器件及其类型。在成功地执行了rom操作序列之后,可使用存储器和控制操作,然后主机可以提供六种存储器和控制操作命令之一。一个控制操作命令指示ds18b20完成温度测量。该测量的结果将放入ds18b20的高速暂存存储器,通过发出读暂存存储器内容的存储器操作命令可以读出此结果。每一温度告警触发器th和tl构成一个字节的eeprom。如果不对ds18b20施加告警搜索命令,这些寄存器可用作通用用户存储器。使用存储器操作命令可以写th和tl。对这些寄存器的读访问通过便笺存储器。所有数据均以最低有效位在前的方式被读写。读时间片:当ds18b20读数据时,主机产生读时间片。当主机把数据线从逻辑高电平拉至低电平时,产生读时间片,数据线必须保持在低逻辑电平至少1us,来自ds18b20的输出数据在读时间片下降沿之后15微秒有效。因此,为了读出从读时间片开始算起15微秒的状态,主机必须停止把i/o引脚驱动拉至低电平。在读时间片结束时,i/o引脚经过外部的上拉电阻拉回至高电平。所有读时间片的最短持续期限为60us,各个读时间片之间必须由最短为1us的恢复时间。该部分子程序流程图如图4-2所示:开始总线拉低释放总线读取总线结束图4-2 单片机读ds18b20时间片程序流程图温度变换:此命令开始温度变化,不需要另外的数据,温度变化将被执行,接着ds18b20便保持在空闲状态,如果总线主机在此命令之后发出读时间片,那么只要ds18b20正忙于进行温度变换,它将在总线上输出“0”,当温度变换完成时,它便返回“1”。如果由寄生电源供电,那么总线主机在发出此命令之后立即强制上拉至少2秒。ds18b20的温度变换需要2秒钟。在接收到温度变化命令之后,如果期间未从vdd引脚取得电源,那么ds18b20的i/o引线必须至少保持2秒的高电平以提供变换过程所需的电源。这样,在温度变换命令发出之后,至少在此期间内单引线总线上不允许发生任何其他动作。在接收到复制暂存存储器的命令以后,如果期间没有从vdd引脚取得电源,那么ds18b20的i/o引线必须至少维持10ms的高电平,以便提供复制过程中所需的电源。这样,在复制暂存存储器命令发出之后至少在此期间内单线上不允许发生任何其他的动作。此命令写至ds18b20的暂存存储器,以地址2开始,接着写的两个字节被保存在暂存存储器地址2和3之间中。发出一个复位便可在任何处终止写操作。温度转换子程序流程图如下:开始复位检测应答信号延时写跳过读rom指令结束 图4-3 温度转换子程序流程图当ds18b20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625/lsb形式表示。当符号位s=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位s=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。读取温度数据子程序流程图如下:开始初始化da18b20跳过读rom序列号启动温度转换读取温度值结束图4-4 读取温度数据子程序流程图4.4 显示程序设计lcd1602液晶模块内部的指控器共有11条控制指令,如表4-1所示。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块哪里显示字符。对液晶模块的初始化要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预,每次输入指令前都要判断液晶模块是否处于忙的状态。表4-1 lcd1602控制指令序号指令rsr/wd7d6d5d4d3d2d1d01清显示00000000012光标返回000000001*3置输入模式00000001i/ds4显示开/关控制0000001dcb5光标或字符移位000001s/cr/l*6置功能00001dlnf*7置字符发生存储器地址0001字符发生存储器地址8置数据存储器地址001显示数据存储器地址9读忙标志或地址01bf计数器地址10写数到cgram或ddram10要写的数据内容11从cgram或ddram读数11读出的数据内容lcd1602初始化过程:延时15ms;写指令38h(不检测忙信号);延时5ms;写指令38h(不检测忙信号);延时5ms;写指令38h(不检测忙信号);以后每次写指令、读/写数据操作均需要检测忙信号;写指令38h,显示模式设置;写指令08h,显示关闭;写指令01h,显示清屏;写指令06h,显示光标移动设置;写指令0ch,显示开及光标设置。lcd1602读、写操作时序如图4-2及图4-3所示。图4-1读操作时序图4-2 写操作时序液晶数据送显程序流程图如图4-5所示:开始lcd初始化延时设第一行显示位置显示第一行内容设第二行显示位置显示第二行内容结束图4-5 液晶数据送显程序流程图4.5 按键程序设计单片机读取按键值的方法有两种:查询方式和中断方式。查询方式是利用键盘程序不断查询是否有按键按下,有按下则进入相应按键的子程序进行数据处理,没有则一直循环查询;中断方式是将按键动作与单片机的中断系统联系起来,有按键按下时,就引起单片机中断,使系统进入中断处理程序。本设计中有4个按键,且主要程序就是按键的处理,所以采用查询方式来处理读取按键值程序。 设计按键程序时,首先应注意的是按键的机械触点效应,原理上,按键按下时,单片机端口为低电平,但是由于按键的机械触点效应,按键在断开和闭合瞬间会有抖动过程,这个过程会出现一系列的负脉冲,这样会让单片机引起误判,因地,必须才需措施去掉按键抖动的影响。去按键抖动常用的有两种方法:硬件方法和软件方法。硬件方法一般是并接电容,或者加r-s触发器;软件去抖动一般采用延时的方法,按键抖动的过程一般持续5-10ms的时间,在判断按键状态时,只要加一个5-10ms的延时程序,再次判断按键是否状态不变,即可实现去抖动的作用。本设计中选用软件延时的方法去按键抖动。本设计中采用软件方法去按键抖动。按键子程序流程图如图4-6所示。开始有键按下?延时有键按下?读取按键值进入相应按键子程序结束nnyy 图4-6 按键子程序流程图5 仿真5.1 仿真软件简介仿真软件采用 proteus。在国外有包括斯坦福、剑桥等在内的几千家高校将proteus作为电子工程学位的教学和实验平台;在国内也有众多大学正在体验proteus的独一无二的功能并申报大学计划。该方法具有普遍意义。通过实际应用发现,采用该方法可以大大简化硬件电路测试和系统调试通过程中电路板制作、元器件安装、焊接等过程。很明显,使用该方法可以提高开发效率、降低开发成本、提升开发速度,对单片机系统开发具有指导意义。proteus软件是来自英国labcenterelectronics公司的eda工具软件,proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它eda工具一样的原理布图、pcb自动或人工布线及电路仿真的功能外,其革命性的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如电机、led、lcd、开关等,实时看到运行后的输入、输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,proteus为我们建立

温馨提示

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

最新文档

评论

0/150

提交评论