毕业设计(论文)-基于AT89C52单片机的测量温湿度设计.doc_第1页
毕业设计(论文)-基于AT89C52单片机的测量温湿度设计.doc_第2页
毕业设计(论文)-基于AT89C52单片机的测量温湿度设计.doc_第3页
毕业设计(论文)-基于AT89C52单片机的测量温湿度设计.doc_第4页
毕业设计(论文)-基于AT89C52单片机的测量温湿度设计.doc_第5页
免费预览已结束,剩余20页可下载查看

下载本文档

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

文档简介

目 录1绪论11.1课题背景11.2温湿度研究现状11.2.1温度传感器11.2.2湿度传感器21.3课程设计目的32方案比较选择32.1温度传感器的选择32.2湿度传感器的选择42.3单片机的选择43系统的设计53.1数据采集53.1.1ds18b20温度采集53.1.2sht10温湿度采集73.2数据分析83.2.1at89c52内部结构83.3数据处理114软件编程仿真114.1主程序114.2测温度子程序流程图124.3测湿度子程序流程图134.4液晶显示子程序流程图144.5仿真结果145 课程设计心得15参考文献16附录a ds18b20程序17附录b sht10程序201绪论1.1课题背景湿度,表示大气干燥程度的物理量。在一定的温度下在一定体积的空气里含有的水汽越少,则空气越干燥;水汽越多,则空气越潮湿。空气的干湿程度叫做“湿度”。在此意义下,常用绝对湿度、相对湿度、比较湿度、混合比、饱和差以及露点等物理量来表示。湿度表示气体中的水蒸汽含量,有绝对湿度和相对湿度两种表示方法。绝对湿度是一定体积的空气中含有的水蒸气的质量,一般其单位是克/立方米,绝对湿度的最大限度是饱和状态下的最高湿度;相对湿度是绝对湿度与最高湿度之间的比,它的值显示水蒸气的饱和度有多高。温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最基本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度、湿度的检测与控制。并且随着人们生活水平的提高,人们对自己的生存环境越来越关注,而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度、湿度的检测及控制就非常有必要了。温湿度测量仪器不断发展,种类多种多样。传统的模拟式湿度传感器需要设计信号调理电路、并需要经过复杂的校准、标定过程,测量精度难以得到保证,且在线性度、重复性、互换性、一致性等方面往往不能满足要求,为此传感器生产厂家需要拥有高昂标准及标定设备;现在的市场上大量存在的是新型智能型湿度传感器具备了数字校准温湿度功能,而且测量精度有了很大的提高。1.2温湿度研究现状1.2.1温度传感器现代温度传感器正在朝着数字化、高精度的方向发展。而集成温度传感器是目前应用范围最广、使用最普及的一种全集成化传感器。其种类很多,大致可分为以下5类:(1)模拟集成温度传感器;(2)模拟集成温度控制器;(3)智能温度传感器;(4)通用智能温度控制器;(5)微机散热保护专用的智能温度控制器。集成温度传感器的主要应用领域有以下3个方面:(1)温度测量:可以构成数字温度计、温度变送器、温度巡回检测仪、智能化温度检测系统及网络化测温系统。(2)温度控制:适用于智能化温度测控系统、工业过程控制、现场可编程温度控制系统、环境温度监测及报警系统、中央空调、风扇温控电路、微处理器及微机系统的过热保护装置、现代办公设备、电信设备、服务器中的温度测控系统、电池充电器的过热保护电路、音频功率放大器的过热保护电路及家用电器。(3)特殊应用:例如,热电偶冷端温度补偿、测量温差、测量平均温度、测量温度场、电子密码锁(仅对内含64位rom的单线总线智能温度传感器而言)及液晶显示器表面温度监测等。模拟集成温度传感器是在20世纪80年代问世的,它是将温度传感器集成在一个芯片上、可完成温度测量及模拟信号输出功能的专用ic。模拟集成温度传感器的主要特点是功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器。智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ate)的结晶。智能温度传感器内部都包含温度传感器、a/d转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(cpu)、随机存取存储器(ram)和只读存储器(rom)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(mcu);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。新型智能温度传感器的测试功能也在不断增强。例如,ds1629型单线智能温度传感器增加了实时日历时钟(rtc),使其功能更加完善。ds1624还增加了存储功能,利用芯片内部256字节的e2prom存储器,可存储用户的短信息。另外,智能温度传感器正从单通道向多通道的方向发展,这就为研制和开发多路温度测控系统创造了良好条件。智能温度传感器的总线技术也实现了标准化、规范化,所采用的总线主要有单线总线、i2c总线、smbus总线和spi总线。1.2.2湿度传感器温度是个独立的被测量,而湿度受温度、大气压强的影响,湿度的标准是个难题。但近年来,国内外在湿度传感器研发领域取得的长足进步突破了这个难题。湿敏元件是最简单的湿度传感器。湿敏元件主要分为电阻式、电容式两大类。湿敏电阻的特点是在基片上覆盖一层用感湿材料制成的膜,当空气中的水蒸气吸附在感湿膜上时,元件的电阻率和电阻值都发生变化,利用这一特性即可测量湿度。湿敏电阻的优点是灵敏度高,主要缺点是线性度和产品的互换性差。湿敏电容一般是用高分子薄膜电容制成的,常用的高分子材料有聚苯乙烯、聚酰亚胺、酷酸醋酸纤维等。当环境湿度发生改变时,湿敏电容的介电常数发生变化,使其电容量也发生变化,其电容变化量与相对湿度成正比。湿敏电容的主要优点是灵敏度高、产品互换性好、响应速度快、湿度的滞后量小、便于制造、容易实现小型化和集成化,其精度一般比湿敏电阻要低一些。湿敏元件的线性度及抗污染性差,在检测环境湿度时,湿敏元件要长期暴露在待测环境中,很容易被污染而影响其测量精度及长期稳定性。湿度传感器可分成以下三种类型:(1)线性电压输出式集成湿度传感器。其主要特点是采用恒压供电,内置放大电路,能输出与相对湿度呈比例关系的伏特级电压信号,响应速度快,重复性好,抗污染能力强。(2)线性频率输出集成湿度传感器。它采用模块式结构,属于频率输出式集成湿度传感器,在55%rh时的输出频率为8750hz(型值),当上对湿度从10%变化到95%时,输出频率就从9560hz减小到8030hz。这种传感器具有线性度好、抗干扰能力强、便于配数字电路或单片机、价格低等优点。(3)频率/温度输出式集成湿度传感器。它除具有hf3223的功能以外,还增加了温度信号输出端,利用负温度系数(ntc)热敏电阻作为温度传感器。当环境温度变化时,其电阻值也相应改变并且从ntc端引出,配上二次仪表即可测量出温度值。目前,湿度测量大体上三种方法:一是有两只特性一致的测温电阻组成的干湿球温度计;二是由湿度传感器组成的湿度测量仪;三是通风干湿球温度计。经试验表明带有湿度传感器的测湿仪只适用于稳定的湿度场测量,且测量的精度较低;铂电阻组成的干湿球温度计当湿度达到90rh时误差较小,最大误差在2以内,但在低湿情况下误差较大。所以在湿度测量中,大部分采用通风干湿表作为湿度标准。由于铂电阻的非线性会影响到测温精度,如果选用线性的热敏电阻作为通风干湿球的温度传感器件,相对湿度的测量准确度可优于1rh。1.3课程设计目的系统整体设计方案,综合比较几种温湿度测量方法,确立于温湿度传感器和at89c52单片机技术结合的方法,给出了总体设计框图,并且详细描述了各部分组成电路的,设计原理和方法,包括温度和湿度传感器输入电路、液晶显示电路以及其他扩展电路,完成系统硬件电路设计,实现温湿度的测量。2方案比较选择2.1温度传感器的选择方案一:采用热电阻温度传感器。热电阻是利用导体的电阻随温度变化的特性制成的测温元件。现应用较多的有铂、铜、镍等热电阻。其主要的特点为精度高、测量范围大、便于远距离测量。铂的物理、化学性能极稳定,耐氧化能力强,易提纯,复制性好,工业性好,电阻率较高,因此,铂电阻用于工业检测中高精密测温和温度标准。缺点是价格贵,温度系数小,受到磁场影响大,在还原介质中易被玷污变脆。铜电阻的温度系数比铂电阻大,价格低,也易于提纯和加工;但其电阻率小,在腐蚀性介质中使用稳定性差。在工业中用于-50-180测温。方案二:采用ds18b20,温度测量范围从-55- +125,-10- +85时测量精度为0.5,测量分辨率为0.0625,电源电压范围从3.3-5v 。它支持“一线总线”的数字方式传输,可组建传感器网络。而且,无需进行线性校正,使用非常方便,接口简单,成本低廉。与传统的热敏电阻温度传感器不同,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式,可以分别在93.75ms和750ms内将温度值转化9位和12位的数字量。它具有体积小、接口方便、传输距离远等特点,内含寄生电源。 系统有如下特点: (1)使用电压为3v-5v,不需要备份电源,可通过信号线供电;(2)送串行数据,不需要外部元件;(3)零功耗等待;(4)仅适用一条口线;(5)系统的抗干扰性好,适合于恶劣环境的现场温度测量,如环境控制、设备过程控制、测温类消费电子产品等。综合比较方案一与方案二,成本相差不多,方案二具有更高的抗干扰能力和精度,电路结构简单,选择方案二作为本设计的温度传感器。2.2湿度传感器的选择测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏原件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的。方案一:采用hf3223/htf3223湿度传感器。hf3223/htf3223采用模块式结构,属于频率输出式集成湿度传感器,相对湿度在0%-99%rh范围内,精度为5%,测量指标和精度高,不需校准的完全互换性,高可靠性和长期稳定性,快速响应时间,专利设计的固态聚合物结构,适用于线性电压输出和频率输出两种电路,适宜于制造流水线上的自动插件和自动装配过程,htf3223在hf3223的基础上多了一个温度传感器。hf3223湿度传感模块将湿度信息转化为频率信号,传输给单片机进行分析、处理和控制显示。方案二:采用sht10单片数字温湿度集成传感器。sht10温湿度传感器采用cmos过程微加工专利技术,确保产品具有极高的可靠性和出色的长期稳定性。该传感器由1个电容式聚合体测湿元件和1个能隙式测温元件组成,并与1个14位a/d转换器以及1个2-wire数字接口在单芯片中无缝结合,使得该产品具有功耗低、反应快、抗干扰能力强等优点。sht10的主要特点如下:(1)相对湿度和温度的测量兼有露点输出;(2)全部校准,数字输出;(3)接口简单(2-wire),响应速度快;(4)超低功耗,自动休眠;(5)出色的长期稳定性;(6)测湿精度4.5%rh,测温精度0.5(25)。结合方案一和方案二,测量精度相差不多,方案二相对来说更加稳定,而且相应速度快,同时可测量温度,便于与之前温度测量进行校准,而且便于proteus仿真。2.3单片机的选择在多数电子设计当中,基于性价比的考虑,8位单片机仍是首选。目前,8位单片机在国内外仍占有重要地位。在8位单片机中又以mcs51系列单片机及其兼容机所占的份额最大。mcs51的硬件结构决定了其指令系统不会发生变化,设计人员可以很容易的对不同公司的单片机产品进行选型,他们只需将重点放在芯片内部资源的比较上。方案一:采用at89c51芯片作为硬件核心,采用flashrom,内部具有4kbrom存储空间,能于3v的超低压工作,而且与mcs-51系列单片机完全兼容,但是运用于电路设计中时由于不具备isp在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用at89c52是一个低电压,高性能cmos8位单片机,片内含8kbytes的可反复擦写的flash只读程序存储器和256bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器和flash存储单元,方案一是多年前的的产品,因自身设计缺陷,已经很少被人使用。选择方案二,而且便于proteus仿真。而对于显示模块,液晶显示屏具有体积小、功耗低、显示内容丰富等特点,用户可以根据自己的需求,显示自己所需要的、甚至是自己动手设计的图案。当需要显示的数据比较复杂的时候,它的优点就突现出来了,并且当硬件设计完成时,可以通过软件的修改来不断扩展系统显示能力。外围驱动电路设计比较简单,显示能力的扩展将不会涉及到硬件电路的修改,可扩展性很强。字符型液晶显示屏已经成为了单片机应用设计中最常用的信息显示器件之一。3系统的设计本方案以at89c52单片机系统为核心来对温度、湿度进行实时采集。各检测单元能独立完成各自功能,并根据主控机的指令对温湿度进行实时采集。主控机负责控制指令的发送,并控制各个检测单元进行温度采集,收集测量数据,同时对测量结果进行整理和显示。其中包括单片机、温度检测、湿度检测及显示、系统软件等部分的设计。本设计由信号采集、信号分析和信号处理三个部分组成的。(1)信号采集:由温度传感器、模块湿度传感器模块和1302模块组成;(2)信号分析:由单片机atc89c52组成;(3)信号处理:由液晶显示模块组成。图 3.1 系统总方框图3.1数据采集3.1.1ds18b20温度采集ds18b20内部结构主要由四部分组成:64位光刻rom、温度传感器、非挥发的温度触发器th和tl、配置寄存器。ds18b20依靠一个单线端口通讯。在单线端口条件下,必须先建立rom操作协议,才能进行存储器和控制操作。图3.2 ds18b20方框图因此,控制操作必须首先提供下面4个rom操作指令之一: 读rom;匹配rom;搜索rom;跳过rom这些指令操作作用在一个器件的64位光刻rom序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有多少什么样的设备。若指令成功地使ds18b20完成温度测量,数据存储在ds18b20的存储器。一个控制功能指挥指示ds18b20的演出测温。测量结果将被放置在ds18b20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。在片上还载有配置字节以理想的解决温度数字转换。写th,tl指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有数据的读写都是从最低位开始。(1)ds18b20主要特性ds18b20支持“一线总线”接口,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等,支持3v-5.5v的电压范围,使系统设计更灵活、方便。(2)ds18b20工作原理图3.3 ds18b20原理图ds18b20的测温原理如图3.3所示,低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数当计数器1的预置值减到0时,温度寄存器的值将加1计数器1 的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。3.1.2sht10温湿度采集采用cmos过程微加工专利技术制成的sht10,确保产品具有极高的可靠性和出色的长期稳定性。该传感器由1个电容式聚合体测湿元件和1个能隙式测温元件组成,并与1个14位a/d转换器以及1个2-wire数字接口在单芯片中无缝结合,使得该产品具有功耗低、反应快、抗干扰能力强等优点。(1)sht10的主要特点如下:相对湿度和温度的测量兼有露点输出;全部校准,数字输出;接口简单(2-wire),响应速度快;超低功耗,自动休眠;出色的长期稳定性;超小体积(表面贴装);测湿精度45%rh,测温精度0.5(25)。(2)引脚说明及接口电路典型应用电路图3.4sht10经典电路电源引脚(vdd、gnd)sht10的供电电压为2.4v-5.5v。传感器上电后,要等待11ms,从“休眠”状态恢复。在此期间不发送任何指令。电源引脚(vdd和gnd)之间可增加1个100nf的电容器,用于去耦滤波。串行接口sht10的两线串行接口(bidirectional2-wire)在传感器信号读取和电源功耗方面都做了优化处理,其总线类似i2c总线但并不兼容i2c总线。串行时钟输入(sck)。sck引脚是mcu与shtio之问通信的同步时钟,由于接口包含了全静态逻辑,因此没有最小时钟频率。串行数据(data)。data引脚是1个三态门,用于mcu与sht10之间的数据传输。data的状态在串行时钟sck的下降沿之后发生改变,在sck的上升沿有效。在数据传输期间,当sck为高电平时,data数据线上必须保持稳定状态。为避免数据发生冲突,mcu应该驱动data使其处于低电平状态,而外部接1个上拉电阻将信号拉至高电平。(4)原理与说明crc-8校验。整个数据的传输过程都由8位校验保证,确保任何错误的数据都能够被检测到并删除。为保持自身发热温升小于0.1,sht10的激活时间不超过10%。如12位精度测量,每秒最多测量2次。转换为物理量输出相对湿度输出转换公式为:(3.1) 其中,rhlinear为25时相对湿度的线性值,sorh为传感器输出的相对湿度的数值,c1,c2,c3为系数。当测量温度与25相差较大时,则需要考虑传感器的温度系数: (3.2)其中,rhtrue为温度不等于25时相对湿度的实际值,c为当前温度,t1、t2是系数。 温度输出转换公式为: (3.3)其中,为实际温度,so为传感器输出的温度数值,1,2为系数。由于湿度与温度经由同一块芯片测量而得,因此sht10可以同时实现高质量的露点测量。3.2数据分析3.2.1at89c52内部结构at89c52是一个低电压,高性能cmos8位单片机,片内含8k bytes的可反复擦写的flash只读程序存储器和256 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器和flash存储单元,at89c52单片机在电子行业中有着广泛的应用。(1)主要功能特性8k可反复擦写(大于1000次)flash rom;32个双向i/o口;256x8bit内部ram;3个16位可编程定时/计数器中断;时钟频率0-24mhz;2个串行中断,可编程uart串行通道;2个外部中断源,共8个中断源;2个读写中断口线,3级加密位;低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;兼容mcs51指令系统; (2)引脚功能及管脚电压at89c52为8位通用微处理器采用工业标准的c51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主ic 内部寄存器、数据ram及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号ir的接收解码及与主板cpu通信等。其管脚图如右图3.12: po口:是一组8 位漏极开路型双向i/o口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个ttl逻辑门电路,对端口p0写1时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在flash编程时,p0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。p1口:是一个带内部上拉电阻的8位双向i/o口,p1的输出缓冲级可驱动(吸收或输出电流)4 个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。与at89c51不同之处是,p1.0和p1.1还可分别作为定时/计数器2的外部计数输入(p1.0/t2)和输入(p1.1/t2ex),flash编程和程序校验期间,p1接收低8位地址。p2口:是一个带有内部上拉电阻的8位双向i/o口,p2的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口p2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行movx dptr指令)时,p2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行movx ri指令)时,p2口输出p2锁存器的内容。flash编程或校验时,p2亦接收高位地址和一些控制信号。p3口:是一组带有内部上拉电阻的8位双向i/o 口。p3口输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对p3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的p3口将用上拉电阻输出电流(iil)。p3口除了作为一般的i/o口线外,更重要的用途是它的第二功能p3口还接收一些用于flash闪速存储器编程和程序校验的控制信号。rst:复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位。xtal1:振荡器反相放大器的及内部时钟发生器的输入端。xtal2:振荡器反相放大器的输出端9。3.2.2单片机最小系统(1)中断at89c52共有6个中断向量:两个外中断(int0 和int1),3个定时器中断(定时器0、1、2)和串行口中断。这些中断源可通过分别设置专用寄存器ie的置位或清0来控制每一个中断的允许或禁止。ie 也有一个总禁止位ea,它能控制所有中断的允许或禁止。注意表5中的ie.6为保留位,在at89c51中ie.5也是保留位。程序员不应将“1”写入这些位,它们是将来at89系列产品作为扩展用的。定时器2的中断是由t2con中的tf2和exf2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是tf2或exf2产生中断,而由软件清除中断标志位。定时器0和定时器1的标志位tf0和tf1在定时器溢出那个机器周期的s5p2状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器2的标志位tf2在定时器溢出的那个机器周期的s2p2状态置位,并在同一个机器周期内查询到该标志。(2)时钟振荡器at89c52中有一个用于构成内部振荡器的高增益反相放大器,引脚xtal1和xtal2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,外接石英晶体(或陶瓷谐振器)及电容c1、c2接在放大器的反馈回路中构成并联振荡电路。对外接电容c1、c2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pf10pf,而如使用陶瓷谐振器建议选择40pf10pf。用户也可以采用外部时钟。采用外部时钟的电路。这种情况下,外部时钟脉冲接到xtal1端,即内部时钟发生器的输入端,xtal2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。3.3数据处理lcd12864是一种图形点阵液晶显示器,它主要采用动态驱动原理由行驱动控制器和列驱动器两部分组成了128(列)*64(行)的全点阵液晶显示。(1)主要特性:作电压位+5v10%,可自带驱动lcd所需的负电压;全屏幕点阵,点阵数位128(列)*64(行),可显示8*4个汉字,也可完成图形,字符的显示;与cpu接口采用5条位控制总线和8位并行数据总线输入输出;内部有显示数据锁存器;简单的操作指令显示开关设置,显示起始行设置,地址指针设置和数据读/写等指令。(2)lcd12864与单片机串行接口实现显示。4软件编程仿真4.1主程序图4.1 主程序流程图系统监控程序是系统的主程序,它是系统程序的框架,控制着单片机系统按预定操作方式运转。监控程序的主要作用是能及时的响应来自系统内部的各种服务请求,有效地管理系统自身软硬件及人机对话设备与系统中其它设备交换信息,并在系统一旦出现故障时,及时作出相应处理。该系统控制核心是对单片机at89c52,其工作过程是:系统通电后,单片机at89c52进入监控状态,同时完成对各扩展端口的初始化工作。在没有外部控制信息输入的情况下,系统自动采集温湿度传感器数据,最后产生的数据在lcd显示器上显示。4.2测温度子程序流程图图4.2 温度测量流程图准备测温时首先要将ds18b20的dq设置为高电平,接着初始化ds18b20,初始化成功后,ds18b20接收单片机的命令,然后再次初始化ds18b20在成功后启动测温,然后将温度保存起来,返回。在测得温度后,ds18b20会将温度数据转换为十进制数的温度表示,然后逐位查表(在c语言中是一个数组)调用液晶12864显示在液晶上。4.3测湿度子程序流程图图4.3 sht10测温湿度流程图准备测温时首先要对sht10发送复位连接命令,然后等待11ms,接着初始化sht10,初始化成功后,sht10接收单片机的命令,然后再次初始化ds18b20在成功后启动测温,启动温度传输命令,然后将温度保存起来,再启动湿度传输命令,然后将湿度保存起来,返回。在测得温湿度后,进行温湿度补偿处理,然后sht10会将温湿度数据转换为十进制数的温湿度表示,然后逐位查表(在c语言中是一个数组)调用液晶12864显示在液晶上。4.4液晶显示子程序流程图图4.5 lcd12864显示流程图液晶显示模块在进行写命令、写数据以及读状态等操作时,都要严格依照给定的时序,只有严格的按照特定时序发送控制信号、使能信号和数据等才能正确地完成显示。使用过程中首先对液晶显示模块进行初始化,设置其显示方式等,然后给出要写入数据的寄存器地址(即要显示的首地址),指定字符显示位置,最后发送要显示的数据到相应的数据寄存器。调用读、写操作的子程序,进入相应函数之后,首先判别忙标志,如果忙碌,控制器正忙于内部操作,则等待直到控制器处于空闲状态时,再设置控制位进行相应的读(状态)、写(命令/数据)操作。4.5仿真结果整体仿真图,利用ds18b20测出温度,利用sht10测出湿度以及露点,并且显示出来。图4.5 整体仿真图5 课程设计心得(1) 收获:这次的课程设计,让我体会到设计电路、调测电路过程中的苦与甜。设计是我们将来必需的技能,这次实习恰恰给我们提供了一个应用自己所学知识的机会,从到图书馆和网站查找相应的资料到对电路的设计思考,对每个模块的设计,不断的试验,这些都对我所学的理论知识进行了实践性的检验。在实习的过程中发现了以前学的单片机的知识掌握的不牢。同时在设计的过程中,遇到了一些以前没有见到过的问题。设计汇编程序过程是一个考验人耐心的过程,不能有丝毫的急躁,马虎,对程序的调试要一步一步来,不能急躁,因为是在电脑上调试,比较慢,又要求我们有一个比较正确的调试方法。这又要我们要灵活处理,在不影响试验的前提下可以加快进度。合理的分配时间。最重要的是要熟练地掌握课本上的知识,这样才能对试验中出现的问题进行分析解决。在整个课程设计完后,总的感觉是:有收获。以前上课都是上一些最基本的东西而现在却可以将以前学的东西作出有实际价值的东西。在这个过程中,我的确学得到很多在书本上学不到的东西。但也遇到了不少的挫折,有时遇到了一个错误怎么找也找不到原因所在。但现在回过头来看,还是挺有成就感的。我的动手能力又有了进一步的提高,我感到十分的高兴。通过紧张有序的设计实践,我觉得自己的动手能力有了很大的提高;自信心也增强了.在课程设计中自己动脑子解决遇到的问题,书本上的知识有了用武之地,这又巩固和深化了自己的知识结构。(2)建议:由于种种原因,我们实习之前准备严重不足,包括心理上和自身能力上,在这之前同学们对实习内容了解的并不多,而且由于实验设备有限,在以前的实验中不能做到每个人都真正动手练习,体验实践得出的真知,而且对课程设计中必须用到软件的应用更是不熟练,所以自然地就造成了许多不必要的时间上的浪费,我建议以后老师们能够在课堂外利用空闲的时间稍微讲解一下有关此方面的知识,让同学们提前有所准备,对实验内容有所了解,而且平时我们应该多给实验室的老师申请多去实验室进行练习,自有自己多动手,得到的,感悟出的理解透的理论实践知识才是我们自己的。这样的话相信大家做类似课程设计的时候会感到更加轻松吧。参考文献1 何希才.传感器及其应用.国防工业大学,20012 sht1x/sht7x application note sample code z.sensirion,2005.3 孙宁,胡兆刚. 基于ds18b20的温度采集系统.空中交通管理,20104 李全利.单片机原理及接口技术.高等教育出版社,2009.5 史良.lcd12864显示模块与微处理器的接口设计. 中国科学院上海冶金研究所,2000. 6 谭浩强.c程序设计(第三版).清华大学出版社,2005.7 张义和,王敏男等.例说51单片机(c语言版).人民邮电出版社,2008.8 周润景.基于proteus的电路及单片机系统设计与仿真.北京航空航天大学出版社,2006. 附录a ds18b20程序#ifndef _sensor#define _sensor#define uchar unsigned char#define uint unsigned int/*ds18b20管脚配置*/sbit dq = p2 1; /* 函数名称:sensor_delay(uint16 count)/延时函数* 功 能:ds18b20软件延时专用*/void sensor_delay(uchar count)/延时函数 while(count-);/* 函数名称:sensor_read_byte()* 功 能:从ds18b20读一个字节*/uchar sensor_read_byte(void) uchar i = 0; uchar temp = 0; for(i=8;i0;i-) dq = 0; / 给脉冲信号 temp = 1; dq = 1; / 给脉冲信号 if(dq) temp |= 0x80; sensor_delay(20); return (temp);/* 函数名称:sensor_write_byte()* 功 能:向ds18b20写一个字节*/void sensor_write_byte(uchar temp) uchar i = 0; for(i=8;i0;i-) dq = 0; dq = temp&0x01; sensor_delay(20); dq = 1; temp=1; /* 函数名称:ds18b20_init()* 功 能:ds18b20初始化*/uchar sensor_initial(void) uchar i = 0; dq = 1; / dq复位 sensor_delay(1); / 稍做延时 dq = 0; / 单片机将dq拉低 sensor_delay(100); / 精确延时,大于480us dq = 1; / 拉高总线 sensor_delay(6); / 稍做延时后 i = dq; / 若x=0则初始化成功,若x=1则初始化失败 sensor_delay(130); return (i);/* 函数名称:sensor_fresh( temperature )* 功 能:读取并显示温度*/void sensor_fresh(uchar * temperature ) sensor_initial(); sensor_write_byte( 0xcc ); / 跳过读序号列号的操作 sensor_write_byte( 0x44 ); / 启动温度转换 sensor_initial(); sensor_write_byte( 0xcc ); / 跳过读序号列号的操作 sensor_write_byte( 0xbe ); / 读取温度寄存器 temperature 0 = sensor_read_byte(); /低位 temperature 1 = sensor_read_byte(); /高位/*/#endif附录b sht10程序#define uchar unsigned char#define uint unsigned int#define noack 0 #define ack 1 #define status_reg_w 0x06 #define status_reg_r 0x07 #de

温馨提示

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

评论

0/150

提交评论