温度显示系统的设计与实现

上传人:QQ-1****6396 文档编号:6404023 上传时间:2020-02-24 格式:DOC 页数:56 大小:1.38MB
返回 下载 相关 举报
温度显示系统的设计与实现_第1页
第1页 / 共56页
温度显示系统的设计与实现_第2页
第2页 / 共56页
温度显示系统的设计与实现_第3页
第3页 / 共56页
点击查看更多>>
资源描述
本科毕业设计(论文) 题目:温度显示系统的设计与实现 院 系: 控制工程学院 专 业: 自动化 学 号: 1209101033 姓 名: 王瑶 指导教师: 张开生(教授) 2016年4月摘 要随着大众的生活水平不断的向上提升,以及现代科技的不断发展。人们越来越关注和自己相关的物理环境因素。其中,环境温度是一项和我们的生活密切相关的因素,例如我们在早上起床的时候都会看看天气预报来了解自己所处的地区的天气状况,以及实时的温度,从而来决定自己一天的穿着和出行计划。同时,时刻了解我们的环境温度还在很多生产和农业领域有着巨大的作用。比如农业中的温室大棚,我们就需要时刻了解大棚的温度。工业生产也是一样,我们需要时刻监测工厂的生产温度。正因为环境温度和我们息息相关,而且有着重要的作用。所以本次设计就制作了一个温度显示系统。经过前期的硬设计和软件设计。以及后期的仿真调试。本设计实现了:利用STC89C51单片机对环境温度进行实时的采集,然后通过LCD1602液晶显示模块实时的显示温度,同时通过外置的独立按键进行温度上限和温度下限的实时设定,在采集了温度之后进行实时的比较,如果超过设定的温度上限值或者低于设定的温度下限值,就你用蜂鸣器和LED灯进行组合报警提示。在本次设计中,主要用到了STC89C51单片机,DS18B20集成温度传感器,LCD1602液晶显示模块,独立按键调节,蜂蜜器和LED组合报警模块。进过前期的大量设计和中期的软件仿真。从整体的系统设计到分块的软件和硬件设计,采用分块独立设计,后期整合的方式进行。保证了系统设计的高效和可靠性。在大量的测试和实际的软件仿真测试之后得出结论。本文所采用的硬件和软件设计方式是正确可靠的。能够实现我们最初的目的,实时显示温度并在超过温度设定值的时候进行报警。关键词:单片机,DS18B20,温度采集,液晶显示IABSTRACTAs the publics living standards continue to upgrade, and the continuous development of modern science and technology. People are increasingly concerned with their own physical environment factors. The ambient temperature is a and our lives are closely related to the factors, for example, we in the morning will look at the weather forecast to know the weather conditions in the area, and the real-time temperature, so as to decide a day dress and travel plans. At the same time, time to understand our environment temperature is still a lot of production and agriculture has a huge role in the field of. For example, the agriculture of the greenhouse, we need to know the temperature of the greenhouse. Industrial production is the same, we need time to monitor the production temperature of the plant. Because of the environmental temperature and we are closely related, but also has an important role. So the design of the production of a temperature display system.After the previous hard design and software design. Simulation and debugging. This design realized: real-time acquisition of ambient temperature using STC89C51 MCU, and then through the LCD1602 liquid crystal display module to display real-time temperature, at the same time by an external, independent of the key for the real-time set upper and lower temperature limits, the collected temperature in real-time comparison, if exceeds a set temperature limit value or lower than the set temperature lower limit value, you with the buzzer and LED lamp combination alarm.In this design, mainly uses the STC89C51 monolithic integrated circuit, the DS18B20 integrated temperature sensor, the LCD1602 liquid crystal display module, the independent key regulation, honey and LED combination alarm module. A large number of design and medium-term software simulation. From the overall system design to the sub block of the software and hardware design, the use of block independent design, the way of late integration. Ensure the design of the system is efficient and reliable. After a lot of tests and the actual software simulation test, the conclusion is drawn. The design method of hardware and software used in this paper is correct and reliable. To achieve our initial purpose, real-time display of temperature and in excess of the temperature set value alarm.Key words: MCU, DS18B20, temperature acquisition, liquid crystal displayIII目 录摘 要IABSTRACTIII第1章 绪 论71.1 设计的目的71.2 国内外研究现状81.3 本次设计的内容和任务8第2章 系统总体设计方案92.1 系统理论分析92.2 设计的总体组成92.3 系统的硬件模块102.4 系统的软件模块11第3章 控制器件选择123.1 单片机的组成和特点12运算器12控制器12主要寄存器133.2 STC89C51单片机介绍143.2.1 STC89C51单片机特点153.2.2 STC89C51单片机资源介绍163.2.3 STC89C51单片机定时器介绍18第4章 数据采集器的选择194.1 不同传感器的比较194.2 DS18B20温度传感器204.2.1 DS18B20传感器简介204.2.2 DS18B20传感器工作方式介绍21初始化21写操作21读操作224.2.3 DS18B20传感器数据转换方式22第5章 系统硬件设计245.1 STC89C51单片机系统电路245.1.1复位电路的设计245.1.2 STC89C51单片机的晶振电路255.2 DS18B20传感器电路265.3 系统电路的设计265.4 液晶显示电路的设计275.4.1 LCD1602的特点285.4.2 LCD1602引脚介绍285.5 蜂鸣器和LED报警电路的设计29第6章 系统软件设计306.1 系统软件设计所使用的编程环境介绍306.2 主程序模块设计316.3 定时中断函数的设计316.4 计算函数设计326.5 显示函数程序流程326.6 蜂鸣器和LED预警流程图336.7 数据采集流程图336.8 按键清除流程图34第7章 仿真设计357.1 仿真软件介绍357.2 本次设计的仿真图设计36主要参考文献37附 录 一 设计电路图38附 录 二 仿真电路图38附 录 三 设计源程序39致 谢5557第1章 绪 论在人们的生活中,很多环境因素总是在实时的影响着大家。例如实时的天气状况,实时的环境温度,空气质量等。我们总是希望可以对我们所在的环境进行实时的了解,这来是因为人有着天生的求知欲。同时,知道我们身边的环境因素对我们做出决定也有着重要的参考作用,例如今天的天气好,你可能会选择外出郊游,但是今天如果是下雨天,你可能就会选择在家中休息。温度对我们的重要性是不言而喻的。长期以来,人们对温度的感知都是来自于经验和自身的感觉。而如今,利用新型的科学技术,我们可以确切的知道我们的环境温度。本文就实现了一个环境温度采集显示系统,同时还加入了温度设定和报警功能。本设计采用了STC89C51单片机作为系统的采集和控制中枢部分。利用DS18B20作为环境温度传感器,将环境温度转换为数字信号,然后单片机对数据进行读取,计数出实时的环境温度。然后将数据发送给显示模块LCD1602进行温度的实时显示。同时本次设计还在显示的基础上加入了温度报警功能。通过外置的3个独立按键。我们可以设定一个温度上限报警值和一个温度下限报警值。只要我们的系统采集的数据不在我们设定的范围内。单片机就会启动蜂鸣器和LED灯进行报警。从而通知人们进行必要的操作,例如开电暖气进行加热或者开空调进行降温等操作。这种方式可以避免人们以往的盲目或者靠感觉进行温度控制的方式。1.1 设计的目的因为环境温度对我们有着十分重要的影响,所以我们需要清楚的知道问所处的环境的实时温度。在我们需要进行温度的精确控制的时候,如果我们还是靠着以往的那种凭感觉,靠经验的方式进行。在现代社会看来是一种十分落后的方式方法了。所以本设计的目的就是开发出一套可以准确的显示我们的环境温度,并且可以进行温度的设定报警的系统。比如我们家中有小孩子,在孩子很小的时候,不会表达自身的感受。而大人对小孩子的加衣服或者吹风都靠经验的话,显然是不科学的一种方式。本系统就将取代人们靠感觉,凭经验来判断环境温度这一种不科学的方式1.2 国内外研究现状经过前期大量的资料查阅和文献阅读,以及使用互联网进行资料收集后得知,目前国内外的温度采集显示还处在一个刚刚出现的阶段。大家都还是在探索的过程中。所以出现的方案和使用领域也是五花八门。随着智能手机的出现和大量使用,温度采集和显示这一个功能在很多智能手机上也开始出现了,借由第三方的APP和手机本身的传感器例如红外传感器,温度传感器等。可以在手机上进行实时的温度采集和显示。而使用的温度采集方式目前也有很多种,例如使用数字集成的稳定传奇,使用模拟的金属传感器,利用红外采集空气温度的方式。在不同的领域也有着不同的方案选择,比如有的领域就需要非接触的测量方式,有的就可以采用接触的测量方式。总的来看,很多温度采集显示系统还都是停留在温度的采集和简单的显示上,功能显得比较单一。1.3 本次设计的内容和任务本次设计的主要内容:总体方案的设计和确定,硬件部分的设计,软件部分的设计,仿真电路的设计。通过几个方面来完成本次需要达到的设计目的:完成一个基于51单片机的额温度显示和报警系统。系统的设计任务框图如图1-1所示:整个系统软件设计硬件设计仿真设计图1-1 系统设计任务框图本次设计的主要任务:使用STC89C51单片机作为系统的采集和控制中枢部分。利用DS18B20作为环境温度传感器,将环境温度转换为数字信号,然后单片机对数据进行读取,计数出实时的环境温度。然后将数据发送给显示模块LCD1602进行温度的实时显示。通过外置的3个独立按键。可以设定一个温度上限报警值和一个温度下限报警值。只要我们的系统采集的数据不在我们设定的范围内。单片机就会启动蜂鸣器和LED灯进行报警。第2章 系统总体设计方案在我们进行功能设计之前,我们需要首先对我们的整个系统进行完整的方案设计,只有在总体的方案设计完成之后,我们才可以按照我们的总体方案进行具体的功能设计。这样的方法是高效的也是科学的方法。2.1 系统理论分析在我们进行系统的硬件,软件和仿真设计之前,我们需要首先进行整个系统的理论分析,只有在理论分析可行之后。我们才可以开始具体的设计方案的执行过程。首先我们需要明确我们设计需要达到的目的是:使用STC89C51单片机作为系统的采集和控制中枢部分。利用DS18B20作为环境温度传感器,将环境温度转换为数字信号,然后单片机对数据进行读取,计数出实时的环境温度。然后将数据发送给显示模块LCD1602进行温度的实时显示。通过外置的3个独立按键。可以设定一个温度上限报警值和一个温度下限报警值。只要我们的系统采集的数据不在我们设定的范围内。单片机就会启动蜂鸣器和LED灯进行报警。这其中。DS18B20作为集成的温度传感器,在读取上采用的是总线操作模式。而显示器件和蜂鸣器以及LED和独立按键都是简单的I/O操作就可以完成。经过上面的理论分析,我将本次设计分为了以下几个方面来实现:1、单片机系统的使用。2、DS18B20的数据读取。3、LCD1602液晶显示模块的操作。4、普通I/O口的读取操作。5、系统电源设计。6、仿真系统设计。在以上几个方面存在着先后的顺序,我们应该是先进行了仿真设计,然后进行各个模块的程序设计,在仿真中进行模块程序的仿真,在通过仿真之后。我们再进行模块的硬件设计工作。2.2 设计的总体组成在上面的分析中可以知道。本次设计所采用的器件具体有哪些。已经各个模块需要实现的具体功能是什么。所以我们可以很轻松的得到本次设计的系统总体组成框图应该是如下图2-1所示:数据获取数据显示实时提示电源电路单片机完整系统图2-1 系统的总体组成框图在上面的系统总体组成框图中。完整的系统作为核心任务存在,各个子系统或者说模块为核心任务而存在。在服务整个系统功能的时候,各个子系统还需要相互的配合,完成各自任务的同时还需要照顾到整个系统的设计过程。2.3 系统的硬件模块设计中使用了大量的电子器件,例如单片机,温度传感器,蜂鸣器,LED,独立按键和液晶显示器等等。不同的元件在系统中都有着不同的作用,各个元件分担着自己所承担的独立模块任务,每个器件的选择和有机组合而形成本设计功能执行的物理元素,只有我们合理的安排和设计好每个元器件,我们才能获得系统有效和正确工作的前提。硬件的正确工作才能保证我们后期的软件调试可以正常有序的进行。进过大量的分析和设计,本次系统的硬件组成将如图2-2所示进行设计:单片机电源电路温度传感器液晶显示蜂鸣器和LED图2-2 系统的硬件组成框图在设计好每个模块之后,我们就可以得到需要的硬件系统了。所以硬件的组成是本次设计中很看重的一个部分。2.4 系统的软件模块通过和硬件相结合考虑,我们能知道本次设计中的软件应该有哪些部分:获得温度传感器数据的采集函数,软件启动的初始化函数,按键清除函数,数据计算函数,定时中断函数,数据显示函数,报警函数。很明显,本系统的软件组成框图应该如下所示:系统初始化定时采集函数外部按键计算显示提示和预警图2-3 系统的软件组成框图每一个完整的电子设计,都是由多个方面所组成的,每个方面都是成功的关键,没有主次之分,只要有一个方面不正常,那整个系统的功能就不是正确的。所以在设计的时候,要特别注意每个模块的正确性。无论是开始的软件设计还是后面的硬件设计。第3章 控制器件选择要完成本次设计的任务,我们有很多可以选择的器件。例如单片机,DSP,FPGA,PLC等等。但是我们在选择器件的时候要考虑到器件的成本,开发难度,可靠性,封装类型等等方面。进过大量的资料查询和实际测试,本设计最后采用了单片机作为核心的控制器件。单片机也可以称单片微控制器,它和片上系统不一样,单片机不但可以进行运算处理,还可以做逻辑控制,其包括了输入输出端,片上CPU有的还有专用的乘法器,独有的存储单元和DSP运算单元。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。目前单片机的发展已经十分成熟,单片的处理位数从4位到8位,16和32位都有。单片的运行速度也冲以前的几M到现在的高端单片机可以运行到上百M。3.1 单片机的组成和特点目前主流单片机主要由以下几个部分组成:运算器运算器由运算部件算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、算术累加器和结果寄存器等组成。算术逻辑单元ALU的作用是将传入算术逻辑单元的数据根据需求进行数据的运算,这个运算可以是常见的加减乘除算术操作,也可以是单片机里面所有的移位和循环操作,也可以是数据的比较例如大小比较。相等比较等。这个运算器和我们常规理解的运算器不是一个概念。运算器有两个功能:(1) 执行各种算术运算。(2) 执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。单片机当中运算器的全部操作都是由单片机的控制器CPU发出的控制信号来进行指挥的。控制信号可以是运算控制,也可以是判决控制。控制器控制器包括了:指令寄存器、程序计数器、指令译码器、操作控制器和时序发生器等部分,控制器是单片机当中发布命令的机构,负责整个单片机系统的所有操作控制,不管是运算还是决策,都是由控制进行的。其主要功能有:(1) 从内存中取出一条指令,并指出下一条指令在内存中的位置。(2) 对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。(3) 指挥并控制CPU、内存和输入输出设备之间数据流动的方向。单片机当中有三种总线:控制总线,数据总线和地址总线。这三个总线通过内部特有的线路和微处理器相互连接起来,其中,微处理器可以通过三个总线和外部接口相互连接起来,还可以实现微处理对各个算术器和存储器的信息交流。主要寄存器(1)累加器A单片机当中的累加器是一个高频使用的寄存器,其主要是负责临时的数据存储,包括运算前的存储和运算完成之后的结果都可以保存在这个寄存器当中。(2)数据寄存器DR数据寄存器器,从名字上就可以知道,此寄存器主要是数据暂时存储的寄存器,但是数据寄存器不但有数据的缓存功能,还可以是指令的暂时存储,在翻译出来的指令在送往处理的时候,可以放在这个寄存器中进行暂时存储。(3)指令寄存器IR和指令译码器ID指令包括操作码和操作数。单片机要执行程序给定的指令。就必须要知道这条指令对应的操作码,所以单片机中有了指令译码器和指令操作寄存器。其中指令翻译由指令译码器进行,在翻译完成之后就将数据交给指令寄存器进行存储,然后通过数据控制总线将操作指令送到相应的执行机构当中。这个操作是一条一条进行的。(4)程序计数器PC单片机运行的程序需要使用一个单独的计数器进行存储,这样才可以保证单片机的运行有序的进行。在单片机复位的时候就将这个存储器复位从0开始,逐步进行加一。在每一个指令操作结束之后,这个计数器就自动加1,然后到指令存储器中去取对应的下一步操作就可以了,所以程序计数器保证了单片机的有序运行。(5)地址寄存器AR地址再单片机中是很重要的一个概念,不但是每个存储器有地址,每个数据有地址,甚至每个外部接口都是有对应的地址的,在我们使用汇编进行程序设计的时候,我们就需要查手册了解每个有效资源的地址,所以在我们进行操作的时候,地址寄存器是很有必要的。通过这个寄存器就可以将需要的地址数据发送到对应的存储器中。上面提到的数据储存和计数器还有地址寄存器都是为了给单片机当中很重要的一个器件CPU提供服务的,CPU作为中央控制器,需要各个外设对其进行服务,因为CPU是一个独立的运算器,本身是不具有和外部资源交互的能力的。下图就是单片机的内部结构和单片机主要资源:图3-1 单片机的片上资源框图3.2 STC89C51单片机介绍STC89C51是一种使用兼容8051核的ISP(In System Programming)在系统可编程芯片,其可以工作的时钟频率在几MHz到几十MHz内,其内部的FLASH存储器是专用的程序存储器,大小根据不同的系列是有所不同的,器件完全兼容标准的MCS-51指令系统及C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,在使用专用的单片机程序下载程序通过TTL电平方式就可以将程序下载到单片机中,8051单片机的时钟周期有12T和6T现在新型的还有1T的。但是时钟周期并不影响单片机的算术和逻辑兼容性。只是处理器的单周期时间不一样而已。STC89C51单片机的实物如下图所示:图3-2 STC89C51的DIP40封装实物图3.2.1 STC89C51单片机特点(1)增强型1T 流水线/精简指令集结构8051 CPU(2)(5V单片机)/ 2.0V-3.8V (3V 单片机(3),相当于普通8051 的0420MHz.实际工作频率可达48MHz.(4)用户应用程序空间12K / 10K / 8K / 6K / 4K / 2K字节(5)片上集成512 字节RAM(6)通用I/O 口(27/23个),复位后为:准双向口/ 弱上拉(普通8051 传统I/O 口)单片机的通用IO口有成四种模式可以选择分别为:弱上拉,强上拉, 高阻,开漏这些标准输入输出口状态。每个通用I/O 口驱动能力在单独使用的时候都可达到20mA,但是对于51系列单片机来说整个芯片的最大输入输出电流不应该超过55mA(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片(8)EEPROM功能(9)看门狗(10)内部集成MAX810 专用复位电路(外部晶体20M 以下时,可省外部复位电路)(11)时钟源:普通的8051单片机的外部时钟源可以是使用外部晶振,也可以是外部的时钟芯片提供(也可以是信号发生器提供),在外部时钟信号通过单片的XTAL1引脚送入单片机之后,单片机内部的反向放大器可以对信号进行放大整定。从而提供给单片的内部时钟需求使用。(12)有2个16 位定时器/ 计数器(13)外部中断2 路,下降沿中断或低电平触发中断,Power Down 模式可由外部中断低电平触发中断方式唤醒(14)PWM( 4 路)/ P C A(可编程计数器阵列),也可用来再实现4个定时器或4个外部中断(上升沿中断/ 下降沿中断均可支持)(15)STC89Cc516AD具有ADC功能。10 位精度ADC,共8 路(16)通用异步串行口(UART)(17)SPI同步通信口,主模式/ 从模式(18)工作温度范围:0 -75/ -40 -+85(19)封装:PDIP-28,SOP-28,PDIP-20,SOP-20,PLCC-32,TSSOP-20(超小封装,定货)3.2.2 STC89C51单片机资源介绍本设计中使用的是STC89C51的DIP40封装,也就是常见的双列直插式封装,具体的引脚资源图如下图所示: 图3-3 STC89C51单片机引脚资源图在上图中各个引脚的功能如下:VCC:单片机的供电正电压接口。GND:单片机的供电地接口。P0口:P0口为双向漏级开路的8位双向I/O数据口,其中每个引脚可以承受8TTL的门电流。在P0口引脚写1时,对应的引脚就被被定义为高阻输入。在常规的使用过程中P0口应该配合外部的上拉或者下拉电阻进行使用,这样才能提供正确的TTL电平的逻辑电压。P1口:除了P0不提供内部的上拉电阻之外,51系列单片机的其余几个数据口都是提供了内部上拉电阻的。在设计的时候,就可以省去外部的上拉或者下来电阻了。同意,P1也是双向8位数据口。P1口缓冲器能接收输出4TTL门电流。P2口:和P1口一样。P2口也是内部提供上拉电阻的双向8位I/O口,P2口可以接收和输出4个TTL门电流,P2和P1一样,在程序写入1的时候,对应的引脚都是进入可检测状态,既可以作为输出电压,同时也可以被外部的电压拉低,例如我们常用的按键功能就是这一个功能的体现。同时在作为FLASH检测的时候,P2和P1稍有不同,一个是作为控制线,一个数作为数据的检测线。P3口:P3同样是一组内部提供上拉电阻的,双向8位数据输入输出口。其各个引脚同样可以承受输入和输出4个TTL门电流。其普通功能和P2 一样,在希尔高电平1之后都是可以作为输出和检测的。在实际使用中,基础功能都是一样的,同时P3不作为FLASH编程的控制或者数据引脚但是P3是编程的指示引脚,在进行FLASH编程的时候进行LED闪烁提示和校验。同时P3口还提供了一些特殊的第二功能。STC89C51单片机的P3口一些特殊功能,如下表所示:表3.1 P3口引脚的特殊功能引脚第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据接收P3.2外部中断0申请P3.3外部中断1申请P3.4T0定时/计数器0的外部输入P3.5T1定时/计数器1的外部输入P3.6外部RAM写选通P3.7外部RAM读选通REST:单片机的复位输入引脚。当振荡器复位单片机的同时,需要保持REST引脚至少两个机器周期的高电平时间。ALE:地址锁存允许控制端。当需要访问单片机外部存储器时,该引脚用于输出控制信号,从而控制外部的存储器。达到选择和控制的目的。同时,该引脚在未被禁止使用的情况下是在不断输出脉冲的,脉冲的频率根据外部振荡器的不同而不同。本身不具有频率调节的功能。这个频率是外部振荡器频率的六分之一频率。是稳定跟随的。PSEN:外部程序访问信号端,通俗的解释就是在我们使用外部的存储器的时候们在外部存储器进行数据访问的时候,该引脚就会输出对应的有效信号。在访问完毕之后就会停止信号的输出,值得注意的是,这个信号和常规的一对一信号不同。该引脚的信号是一次产生双倍的有用信号,也就是说,如果一次有效访问,在访问期间会输出两个脉冲信号。EA:外部允许端口。低电平使能。上电为若下拉,所以我们在不需要访问外部的存储器的时候需要将这个引脚外接为高电平。不然就会默认进入外部访问的功能,但是如果没有外部存储器,单片机就会进入悬空状态。X1:单片机内部放大器的输入端。X2:单片机内部放大器的输出端。X1和X2分别为反向放大器的输入引脚和输出引脚。该反向放大器可以配置为片内振荡。外部振荡,其中使用外部振荡的时候,石晶振荡和陶瓷振荡均可采用。同时如果采用的是外部时钟信号输入单片机,例如使用信号源驱动单片机,这个时候,单片机的X1脚就应该接信号,而X2就只需要悬空就行了,因为不需要输出驱动外部晶体了。3.2.3 STC89C51单片机定时器介绍STC89C51单片机定时器的工作由两个特殊功能寄存器控制。TMOD寄存器用于设置定时器的工作方式;TCON寄存器用于控制定时器的启动和中断请求。通过一定的组合就可以得到我们需要的工作方式了,下面是51系列单片机的4中定时器工作方式介绍:方式0是13位计数方式,由寄存器TL0的低5位和寄存器TH0的全部8位组成。寄存器TL0的低5位溢出时向寄存器TH0进位,寄存器TH0溢出时,置位寄存器TCON中的TF0标志位,中断向CPU发出申请中断请求。方式1是16位计数方式,由寄存器TL0作为低8位、寄存器TH0作为高8位,组成了16位加1计数器 。方式2为自动重装初值的8位计数方式。 工作方式2特别适合于用作较精确的脉冲信号发生器,同时要注意这里高低位的数据是一样的。方式3只适用于定时器寄存器T0,定时器T1处于方式3时相当于TR1=0,停止计数。 工作方式3将寄存器T0分成为两个独立的8位计数器寄存器TL0和寄存器TH0 。第4章 数据采集器的选择将自然界的物理数据,转换为数字处理器(本文所说的单片机)能够识别的信号。这个过程我们通常称为数据采集过程。在数据的采集过程中通常包含了模拟信息获取,数据的量化,数据编码等过程。当然不同的传感器所采用的方式是不一样的。本次设计需要获得自然界的温度数据。经过大量的资料查询。得知:要完成温度采集,大概有以下几种方式可以选择:1、使用DS18B20集成温度传感器。2、使用PT100温度传感器。3、使用DHT11或者21系列传感器。4、使用红外传感器。下面将对这几种温度采集方式进行一个详细的比较。从而给出选择DS18B20作为本次设计的温度传感器的原因和优点。4.1 不同传感器的比较上面列出的4种传感器方案,在获得环境温度这一点上都是可以应用的本设计中的,但是其中的PT100使用的是模拟的方式,STC89C51单片机不具有模拟采集功能,因此这种传感器不合适,而且PT100的外表体积也十分的大,在设计中不是十分方便。而DHT11和DHT21系列的传感器是温度湿度一体的传感器,采用的是双线控制和读取的方式。相比DS18B20的单总线模式。DHT11的操作模式显示的过于的复杂,因为DHT11集成了两种传感器模块,所以价格上也要更加的昂贵。是DS18B20市场价格的10倍左右。这对本设计来说。是不划算的一种方案选择。而使用红外进行温度测量,需要单片机有着很强的计算能力。因为输出的不是单一的数字量。还需要进行很多的转换才可以得到我们的环境温度。对51单片机来说。过大的运算量是不现实的。综上所述,在考虑成本,开发难度,运算量等之后。本文选择DS18B20集成温度传感器作为环境温度的采集器件。其价格低廉,操作简单,输出数字量,不需要大量的数据运算。体积小,便于系统的硬件设计。4.2 DS18B20温度传感器4.2.1 DS18B20传感器简介DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且 可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总 线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、 传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。DS18B20简介(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围: 3.0 5.5 V。(4)测温范围:-55 125 。固有测温分辨率为0.5 。(5)通过编程可实现912位的数字读数方式。(6)用户可自设定非易失性的报警上下限值。(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。下图是DS18B20的内部构成图4.2.2 DS18B20传感器工作方式介绍初始化(1) 先将数据线置高电平“1”。(2) 延时(该时间要求的不是很严格,但是尽可能的短一点)(3) 数据线拉到低电平“0”。(4) 延时750微秒(该时间的时间范围可以从480到960微秒)。(5) 数据线拉到高电平“1”。(6) 延时等待(如果初始化成功则在15到60微秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。(7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。(8) 将数据线再次拉高到高电平“1”后结束。其时序如图4-1所示:图4-1 初始化时序图写操作(1) 数据线先置低电平“0”。(2) 延时确定的时间为15微秒。(3) 按从低位到高位的顺序发送字节(一次只发送一位)。(4) 延时时间为45微秒。(5) 将数据线拉到高电平。(6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。(7) 最后将数据线拉高。其时序如图4-2所示:图4-2 写数据时序图读操作(1)将数据线拉高“1”。(2)延时2微秒。(3)将数据线拉低“0”。(4)延时3微秒。(5)将数据线拉高“1”。(6)延时5微秒。(7)读数据线的状态得到1个状态位,并进行数据处理。(8)延时60微秒。其时序如图4-3所示:图4-3 读数据时序图4.2.3 DS18B20传感器数据转换方式我们知道,DS18B20输出的是数字信号,也就是我们常说的010101数据。那要把输出的数据转换为我们人能看懂的十进制数据,我们首先要了解其输出寄存器的存储方式。如下图4-4所示是DS18B20的数据寄存器的存储方式。图4-4 温度寄存器存储方式我们知道存储方式了,就可以知道如何转换为我们能看懂的数据了,如下图4-5所示,就是我们用到的转换方式了。图4-5 数据转换示例我们利用单片机读取数据,然后根据图4-4的方式就可以得到我们人可以直观看懂的十进制数据了。我们要使用单片获得DS18B20的数据,需要经过初始化,写数据两个过程,在这两个过程中,我们主要是对DS18B20的内部寄存器进行相应的初始化或者是配置。这个具体的配置过程和配置数据,需要我们在使用的时候查阅官方的数据手册。然后根据我们实际的设计需求进行配置。在这里就不做过多的介绍和解释了。第5章 系统硬件设计在本次设计中,我们需要采集数据,处理数据,同时显示和预警。这一切的工作将由三大方面组成,第一是:物理器件、第二是:电路系统、第三:软件设计。只有这三个方面都选择正确,设计完整,我们设计的系统才可能正常的按照我们的预想设计进行工作。在前面一章我们介绍了物理器件的选择。在这一章中,我们将对系统的电路设计进行一个完整的介绍。在系统的电路设计中,我们可以将整个系统规划为以下几个部分:电源电源转换电路,单片机供电电路,单片机复位电路,单片机晶振电路,LCD1602液晶显示电路,声光提示电路,按键清除复位电路。下面将各个分电路进行逐个的介绍。5.1 STC89C51单片机系统电路5.1.1复位电路的设计STC89C51单片机的REST引脚为高电平复位使能端,在复位功能的设计中,我们主要考虑两个点:第一,在单片机上电的时候,单片机应该是可以自己复位的这样程序才会从地址0点开始进行运行,第二,在单片机的运行过程中,我们应该是可以通过手动的方式对单片机进行复位,因为单片机可能会在运行的过程中因为电源的不稳定或者是其他一些原因而出现错误,导致单片机无法在正常的状态下工作了。因此我们设计了两种方式对单片机进行复位操作,复位电路的设计如图5-1所示,其中 S1是手动复位按键。上电复位的原理是:在系统上电的瞬间,电容因为不能电压突变。所以电容的两端就相当于短路状态,这个时候RST引脚就为高电平,单片机处于一直在复位的状态。经过一段时间的电源对电容C3充电后,RST引脚的电压慢慢下降,电平开是变为低电平,这个时候单片机就开始正常的工作;按键复位的原理是:当S2被人手动按下之后,电容C3因为电压不能突变,所以会迅速的放电,这就会使RST引脚电平变为高电平,从而实现复位的目的。当S1松开之后,电源通过接地的10K的电阻R2对电容放电放电,REST引脚的电平重新回到低电平,复位过程结束,单片机又开始正常的工作状态。具体的设计电路如下所示:图5-1 单片机复位电路5.1.2 STC89C51单片机的晶振电路单片机的晶振电路,在STC89C51的内部有一个振荡器的高增益反相放大器,由两个引脚完成和外部电路的联系。引脚19X1和引脚18 X2分别是该反相放大器的输入端和输出端,用于和外部的晶体振荡器相互连接,Y1是频率为11.0592MHz的晶体振荡器,选择频率为11.0592MHZ是为了在计算单片机运行周期时更加的方便,Y1两端的瓷片无极电容 C4和C5 接在放大器的外部反馈回路中从而可以构成并联振荡电路。电容C4和C5的电容容量(值的大小)的大小会对振荡器的频率以及振荡器的稳定性有一点的影响。同时不同大大小还对晶振的起振的难度和温飘抑制有一定的影响。如果的是石英晶体,那按照官方的手册来说推荐的电容值范围是在30pF士l0pF之间。根据本次设计中选择的晶振,我们可以得到本次设计中单片机的机器运行周期时间的计算方式如公式5.1所示: 公式5.1本次设计的单片机复位电路如下图所示:图5-2 单片机晶振电路5.2 DS18B20传感器电路本次设计采用的是集成的三脚直插封装的DS18B20传感器,在设计上去除了不必要的电压变化和转换电路,而采用了对集成传感器进行直接的供电,然后采集的方式。具体的设计电路如下所示:图5-3 DS18B20感器电路上图中P1为DS18B20传感器的直插封装插座。使用了5V直流电源供电。然后将输出脚直接和单片机的P37相连接。通过单片机操作硬件3.7进行单总线访问,就可以对DS18B20进行初始化,写数据,读数据等操作了。5.3 系统电路的设计本次设计中所使用的STC89C51单片机的电压要求为:直流5V电压。液晶显示屏LCD1620的要求电压和DS18B20传感器都要求5.0V到5.5V直流输入,所以我们为了使得设计取向简单和可靠,我们都是用5V直流电源进行供电,在前端的电压供应中我们使用USB和充电宝或者任何可以提供USB接口的地方相连接。为了系统电源的稳定,在电压接入之后,我们还要采用专用的开光型电源稳压芯片LM7805.这个芯片的稳压为5V直流输出,满足我的需求。同时我们还要采用电容对本机系统和外部系统的电压进行隔离,所以使用了C1和C2两个电容。一个是稳压隔离,一个是滤波隔离。其中电源开关处使用的是带开关功能的USB接口,这可以让我们轻松的控制电压的接入和断开。具体的设计电路如下图所示:图5-4 系统的电源电路5.4 液晶显示电路的设计本次设计中采用了LCD1602液晶显示器作为显示器件,LCD1602液晶也经常被叫LCD1602字符型液晶,它可以用来显示数字、字母、符号等的点阵型液晶显示模块。常见的模块由若干个5X7点阵或者5X11点阵字符位来组成,每个点阵字符位都是一个显示位用来显示一个需要显示的字符,并且每个显示位之间是有设计间隔的。这在显示的时候可以起到人的视觉分割的作用。所以这种模块只适合显示独立的字符。不适合显示画面。LCD1602模块的1602表示该模块可以显示16X2个字符,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上大多的字符液晶都是基于HD44780液晶控制芯片开发的,即便是不同的控制芯片,在控制原理上也是是完全相同的,因此操作LCD1602液晶显示模块的方式也是没有太大的差别的。5.4.1 LCD1602的特点1.3.3V或5V工作电压,对比度可调2.内含复位电路3.提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能4.有80字节显示数据存储器DDRAM5.内建有192个5X7点阵的字型的字符发生器CGROM6.8个可由用户自定义的5X7的字符发生器CGRAM7.微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。5.4.2 LCD1602引脚介绍LCD1602采用标准的14脚接口,其中:第1脚:GND为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。下图为本次设计中所使用的LCD1602显示屏电路。其中R1为10K可调电阻与LCD的VEE参考电压输入相接,这样就可以由用户调节LCD的显示亮度了。图5-5 LCD1602的引脚图5.5 蜂鸣器和LED报警电路的设计本次设计所采用的报警指示为蜂鸣器和LED灯。其中蜂鸣器采用的是有源直流蜂鸣器。LED使用的是5mm草帽型高亮红色LED。使用这两个器件的原因是:提示效果可以达到要求,设计简单实用,驱动方式适合简单型单片机。成本低,更换容易。具体的设计电路如下图所示:图5-6 蜂鸣器和LED报警电路本次设计中没有采用单一的报警方式进行。主要有是考虑到单个器件损坏之后,系统的报警功能就将失去,所以采用了双报警的冗余设计方式。第6章 系统软件设计6.1 系统软件设计所使用的编程环境介绍本设计中使用的STC89C51单片机,这种单片机开发语言可以是C或者汇编,但是鉴于C比汇编而言更加的高效好通用。所以本次设计将会采用C语言作为软件编程语言。使用的开发环境是标准的Keil-Uv4编程环境。Keil-Uv4 是一款美国Keil Software 公司推出的单片机开发系统,这个系统目前在国内使用量极大,而且该系统支持的单片机型号多,常见的8位到32位单片机都可以在这个开发环境下进行开发,同时这个系统还可以进行在线的调试和语言的转换。我们可以容易的使用系统只带的功能查看寄存器数据。Keil-Uv4 软件开发环境提供了丰富的库函数,并且还可以自行扩充库函数。同时其采用的是Windows 界面风格,这对我们的开发使用来说是很方便的。另外一点,也是选择这个开发环境很重要的一点,在我们进行编译之后查看系统的汇编语言,我们可以发现,这款软件的编程效率极高,对高级语言的优化和处理是很精练和高效的。同时生成的汇编代码和我们常见的汇编代码风格十分相似,这对于我们后期的程序优化也是很有帮助的。Keil-Uv4集成开发环境能够完成在软件开发中需要面对的几大过程:代码编辑、程序编译、多函数连接、程序调试、软件仿真。开发人员还可以根据使用的单片机自行选择生成何种的执行文件,以及采用何种的编译方式,是C51方式还是A51方式。编辑器在对程序进行编译连接后可以生成单片机执行时需要的的二进制文件(HEX文件),然后我们可以通过专用的单片机烧写软件将生成的HEX 文件烧写到单片机内,从而单片机就可以执行我们所写的程序了。软件设计主要分为六个方面:第一是系统的预初始化;第二是DS18B20传感器的数据采集;第三是数据的计算;第四是数据的显示;第五是数据的预警提示;第六是按键的清除。这六个部分分别放在在主程序中来执行,其中初始化只用进行一次,后面五步则需要在死循环中一直执行。程序设计中采用了模块化的设计方式,这样设计的程序结构十分清楚,在后期的程序功能扩展和程序调试中也显得十分方便。6.2 主程序模块设计本次采用了模块化的编程思想。在主程序中,主要是负责函数的调度,但是整个系统的功能却是由主程序完成的。主程序就像是一个控制器,合理的调度各个分子系统,从而使子系统配合完成我们需要的功能。主程序流程如下图所示:图6-1 主程序流程图6.3 定时中断函数的设计中断函数是本次软件中的第一大子函数,因为中断函数还会调用计算函数,显示函数,预警函数,这三个子函数实现需要的功能。具体的定时中断函数如下图所示:6-2 中断函数流程图6.4 计算函数设计计算函数在中断函数中被调用,负责数据的处理和就算,根据采集的数据和前面理论部分说的计算公式完成数据的计算工作,为后面的显示和预警功能提供数据支持部分。计算函数的程序流程图如下:图6-3 计算函数流程图6.5 显示函数程序流程显示函数由定时中断函数调用,负责数据显示。具体的流程图如下图所示:图6-4 显示函数流程图6.6 蜂鸣器和LED预警流程图本次设计中的蜂鸣器和LED作为预警器件,负责比对设定的值和采集得到的温度值,然后进行必要的提示,具体的流程图如下所示:图6-5 蜂鸣器和LED预警流程图6.7 数据采集流程图数据采集子函数作为
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕业论文


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!