数字温湿度计毕业设计_第1页
数字温湿度计毕业设计_第2页
数字温湿度计毕业设计_第3页
数字温湿度计毕业设计_第4页
数字温湿度计毕业设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

1、浙江工业职业技术学院毕业论文(2012 届)学生姓名学号分院专业扌旨导教师 完成日期 2012年3月s基于单片 机技术的数字 温湿度计 设计摘 要 本论文介绍了一种以单片机为主要控制器件,以dht91为温湿度传感器的数字温湿度计。主要包括硬件电路的设计和软件程序的设计。硬件电路主要包括主控制器,测温湿度电路和显示电路三部分组成。主控制器采用单片机at89c52 ,温湿度传感器采用,显示电路采用位共阳极led数码管,驱动电路用八个 pnp型的三极管(s9012)。软件程序主要包括主程序,测温湿度子程序,显示子程序和按键子程序等。另外,还介绍了软件的调试分析。本设计中采用了温湿度传感器 dht91

2、作为检测元件,该传感器包括一个 电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上, 与14位的a/d转换器以及串行接口电路实现无缝连接。因此,它具有品质卓 越、超快响应、抗干扰能力强、极高的性价比等优点。每个传感器芯片都在极为 精确的湿度腔室中进行标定,在标定的过程中使用。传感器在检测信号的处理过 程中要调用这些校准系数。两线制的串行接口与内部的电压调整,使外围系统集 成变得快速而简单。微小的体积、极低的功耗。它具有很好的发展前景。关键词温湿度测量 at89c52 dht91目录第一章数字温湿度计的设计依据和意义 11.1数字温湿度计的设计依据11.2数字温湿度计的设计意

3、义1第二章总体设计要求及方案论证分析 22.1 总体设计要求22.2方案论证分析 22.2.1方案论证22.2.2方案设计32.3元器件的选择42.3.1 主控制器芯片42.3.2 数字温湿度传感器62.4 驱动显示电路62.5温湿度测量的方法及分析7第三章 硬件电路的设计 93.1主控制电路和测温湿控制电路 93.2驱动显示电路第四章软件设计及分析4.1 dht91传输时序和指令集 4.1.1 通讯复位时序4.1.2 启动传输时序4.1.3 数据传输和指令集 4.1.4 湿度的测量时序4.1.5 输出转换为物理量 4.1.6 dht91 的 dc 特性。4.2 程序流程图1 .7.4.3 程

4、序的设计4.3.1 通讯复位子程序4.3.2 传输启动子程序4.3.3 一个字节子程序4.3.4 读一个字节子程序4.3.5 数据处理子程序2.0.4.3.6 显示子程序2.0.4.3.7 按键子程序2.2.4.3.8 中断刷新显示数码管子程序2.3.4.3.9 软件在硬件上的调试分析2.4.结论2.6.致谢2.7.参考文献2.8.附录2.9 引 言温度和湿度的测量和控制是目前众多行业的重要工作目标之一,可谓与我们的生活息息相关。无论是在工农业生产、气象部门,还是 在环保、国防、科研等方面,常需对环境温度与湿度进行测量和控制。现在准确测量温湿度在生物制药、食品加工、造纸等行业更是至关重要的。测

5、量温湿度的关键是温湿度传感器。过去测量温度与湿度是分开 的,随着技术的进步及人们生活的需要出现了温湿度传感器。温度传感器的发展经历了 3个阶段:传统的分立式温度传感器、模拟集成温 度传感器、智能集成温度传感器。目前,国际上新型温度传感器正从 模拟式向数字式、从集成化向智能化、网络化的方向发展。湿度传感 器也是经历了这样一个阶段逐渐走向数字智能化。总之,本次设计运用 dht91传感器,结合其优点,将制作一个便携式常用数字温湿度计,必定对生产方面有一定作用。第一章数字温湿度计的设计依据和意义1.1数字温湿度计的设计依据温度与湿度与人们的生活息息相关。在工农业生产、气象、环保、 国防、科研等部门,经

6、常需要对环境温度与湿度进行测量及控制。准 确测量温湿度在生物制药、食品加工、造纸等行业更是至关重要的。1.2数字温湿度计的设计意义传统的温度计是用水银柱来显示的,虽然结构简单、价格便宜,但是它的精确度不高,不易读数。传统的湿度计采用干湿球显示法, 不仅复杂而且测量精度不高。而采用单片机对温湿度进行控制,不仅 具有控制方便,简单和灵活等优点,而且可以大幅度提高温度控制的 技术指标。用led来显示温湿度的数字看起来更加直观。dht91传感器具有超快响应,抗干扰能力强,性价比高等优点。dht91传感器可以直接读出被测的温湿度值。同时单片机可以把测 量出的数据通过串口传到计算机上, 来完成工业中的自动

7、控制,给工 业生产带来了极大的便利。用单片机控制的温湿度计不仅硬件电路简 单,而且测量精度比较高。用数码管显示测量值看起来比较美观。无论在日常生活中还是在工业、 农业方面都不可避免的对周围环 境进行温湿度的测量。因此,研究温湿度的控制和测量具有重要意义。第二章总体设计要求及方案论证分析2.1总体设计要求设计一个以单片机为核心的温湿度测量系统,可实现的功能为:(1) 测量温度值精度为±0.4°c,测量湿度值精确±3%;(2) 系统允许的误差范围为"tc和1%以内;(3) 系统可由用户预设温度值和湿度值,测温范围一40°c +128°c,

8、测湿范围 0 100%;(4) 超出预设值时系统会自动报警,即发光二极管亮;(5) 系统采用数码管显示,能显示设定温湿度值和测得的实际 温湿度值。湿度精度(只巴温度精度(°c25)2.2方案论证分析2.2.1方案论证方案一,采用单片机at89c51与shtxx温湿度传感器相连组成外围 电路。方案二,采用dht91数字温湿度传感器与单片机at89c52相连外围 电路。经过之前的知识,我比较之后选择采用第2个方案。由于采用dht91数字温湿度传感器与单片机 at89c52相连外围电路比较简单。dht91数字温湿度传感器作为检测元件,能够同时测试温度和 湿度。这类传感器不仅易于焊接,而且只

9、有四针管脚,减少了外围电 路的设计。且 at89c52与at89c51不同之处是,p1.0和p1.1还可 分别作为定时/计数器2的外部计数输入(p1.0/t2)和输入(p 1.1/t2ex),这样可以方便报警系统的设计。 所以,本次设计以dht91 数字温湿度传感器为例,介绍基于单片机的数字温湿度计的设计。2.2.2方案设计按照系统设计功能的要求,确定系统由 5个模块组成:主控制器,数 字温湿度传感器,报警电路,按键电路及驱动显示电路。温湿度传感器图2-1总体电路框图主控制器的功能由单片机来完成,主要负责处理由数字温湿度传 感器送来数据,并把处理好的数据送向显示模块。 数字温湿传感器主 要用来

10、采集周围环境参数,并把所采集来的参数送向主控制器。 按键电路主要用来完成单片机的复位操作和温湿度初始值的设定。这里需要四个按键,一个用来完成单片机的复位操作,一个用来切换显示的 数据(是设定值还是实际测得的值),另外两个分别用来设定初始温 度和初始湿度的个位和十位。报警电路就是用一个发光二极管来实现 的,用来判断周围环境的温度或者湿度是否超出设定值了,任何一个超出设定值发光二极管就会被点亮。 驱动显示电路主要用来驱动八位 数码管发光的。由于单片机的输出电流太小(只有几毫安)不能驱使 数码管发光,所以这里必须增加一个驱动显示模块。2.3元器件的选择2.3.1主控制器芯片主控制器模块选用单片机 a

11、t89c52oat89c52是美国atmel公 司生产的低电平,高性能cmos 8位单片机,片内含8k bytes的可反 复擦写的只读程序存储器(perom)和256 bytes的随机存取数据存储 器(ram ),器件采用atmel公司的高密度、非易失性存储技术生产, 与标准mcs51指令系统及8052产品引脚兼容,片内置通用8位中 央处理器(cpu)和flash存储单元,32个可编程i/o 口线,3个16位定 时/计数器,低功耗空闲和掉电模式。功能强大的 at89c52单片机适 合于许多较为复杂控制应用场合。at89c52共有6个中断向量:两个外中断(into和int1) , 3个 定时器中

12、断(定时器0, 1,2),串行口中断和四个双向i/o 口。p0 口: p0 口是一组8位漏极开路型双向i/o 口,也即地址/数据 总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个ttl 逻辑门电路,对端口 p0写“出寸”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复位,应为输出驱动级的漏极开路,所以必须外 接上拉电阻,否则不能正常工作。p1 口:p1是一个带内部上拉电阻的8位双向i/o 口,p1的输出缓 冲级可驱动(吸收或输出电流)4个tte逻辑门电路。对端口写“4”通 过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用

13、时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一 个电流(ill) o表2-1 p1.0和p1.1的第二功能引脚号功能特性p10t2(定时/计数器2外部计数脉冲输入),时忡输出p1.1t2ex (定时/计数2捕获/賀装我触发和方向控制)p2 口:p2是一个带有内部上拉电阻的 8位双向i/o 口,p2的输出 缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口 p2写“1, ”通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作 输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时 会输出一个电流(ill)。p3 口:p3 口是一组带有内部上拉电阻的 8位双向i/o 口

14、。p3 口输 出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对p3 口写 入“的”,它们被内部上拉电阻拉高并可作为输入端口。此时,被外led数码管型号较多,规格尺寸也各异,显示颜色有红、绿、橙等。led数码管的主要特点如下:(1) 发光响应时间极短(小于0. 1s)高频特性好,单色性好,亮度 高。(2) 能在低电压、小电流条件下驱动发光,能与cmos、itl电路兼容。(3) 寿命长,使用寿命在10万小时以上,甚至可达100万小时。成本 低。(4) 体积小,重量轻,抗冲击性能好。因此它被广泛用作数字仪器仪表、数控装置、计算机的数显器件。小电压大电流的小功率放大三极管 s9012的放大倍数

15、共分六级:d 级:64-91e 级:7&x2f 级:96-135g 级:112-166h 级:144-220i 级:190-3002.5温湿度测量的方法及分析dht91是一个两线串行接口的数字温湿度传感器,一个接口是时钟线,一个接口是数据线(支持双向传输)。它是四针单排封装, 一个接电源,一个接地线,另两个直接和单片机的p0_5和p0_6相连。 不过数据线和时钟线上需要接两个 10k的上拉电阻,因为at89c52 的p0 口内部没有上拉电阻。单片机通过 p0_5和p0_6向dht91发 送命令,dht91接收到命令后做出相应的应答。由于 dht91内部包 含一个14位a/d转换器,所以

16、单片机接收到就是数字信号,只需要 做相应的处理就能得到所需要的数据。这里减少了很多外部的电路的 连接,用起来比较方便。第三章硬件电路的设计3.1主控制电路和测温湿控制电路本次硬件设计的核心就是 at89c52,其他部件都是围绕它设计 的。数字温湿度传感器 dht91的data 口和sck 口分别与at89c52 的p0_5 口和p0_6 口相连。因为p0 口内部没有上拉电阻,所以这里 在data和sck传输线上分别加了一个10k的上拉电阻。预置数电 路就是三个按键分别与 at89c52的p0_1,p0_2和p0_3 口相连,为了 降低at89c52的功耗在按键和单片机的端口间加了个10k的限流

17、电阻。当有按键按下时单片机收到有效的信号,s1键用来切换显示的模式(分别显示实际所测得的温湿度,预置的温度值和预置的湿度 值),s2键用来设置初始温度或者湿度的十位,s3键用来设置初始温 度或者湿度的个位。报警电路就是把个发光二极管和at89c52的p0_4 口相连,当p0_4 口为低电平时放光二极管被点亮。发光二极管 的压降一般为1.52.0 v,其工作电流一般取1020 ma为宜。使用 led作指示电路时,应该串接限流电阻,该电阻的阻值大小应根据 不同的使用电压和led所需工作电流来选择。这个电流能使放光二 极管正常放光。如果电流小于10ma放光二极管的亮度会减弱,如果 电流大于20ma发

18、光二极管亮度会更强,但是会有损发光二级管的寿 命有时候甚至会直接烧毁发光二极管。单片机复位有两种:一种是上电复位,一种是按键复位。下图用 的就是按键复位,当按键按下时单片机的rst 口从低电平变为高电平,从而进入复位状态。当按键松开后, vcc给电容c3充电,从而 把rst 口拉至电平,单片机进入工作状态。只要把下图的 reset按键和r2电阻去掉就成了上电复位了。at89c52中有一个用于构成内部振荡器的高增益反相放大器,引脚xtal1和xtal2分别是该放大器的输入端和输出端。这个放大 器与作为反馈元件的片外石英晶体或陶瓷谐振器构成自激振荡器。夕卜接石英晶体(或陶瓷谐振器)及电容 c1.

19、c2接在放大器的反馈回路 中构成并联振荡电路,对外接电容c1> c2虽然没有十分严格的要求, 但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定 性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30pf± 10pf,而如果使用陶瓷谐振器,建议选择40pf± lopfo这里用到的是12m的石英晶体振荡器和两个30pf的电容。3.2驱动显示电路数码管的显示有两种方法:一种是静态显示,一种是动态扫描显 示。静态显示就是数码管的段选端一对一与单片机的i/o相连,位选端则根据数码管的极型来接地(gnd)或者是高电平(vcc)。静态 显示实现起来比较简单

20、,但是浪费了单片机的i/o 口资源。动态扫描显示就是几个数码管的段选端可以同时接到单片机的i/o 口,位选端一对一的接到单片机的其它i/o 口,当位选信号选中某个数码管时, 那个数码管就被点亮,而其它数码管不亮。动态扫描显示节省了单片 机的i/o资源。 采用动态显示方案,设计中使用八个共阴极数码管作为显示载体,通过八路并口传输,共使用了十六个 i/o 口。显示时采用循环移 位法,即八位数码管依次循环点亮,利用人眼睛的视觉暂留效果达到 连续显示,主程序每运行一遍便调用一次显示子程序,将数据显示出 来。显示部分为八位共阳极数码管(四位一组),数码管的段端a,b,c,d,e,f,g和dp与ta89c

21、52的p1 口相连,顺序可以根据硬件接 线方便而定。数码管的字段通过八个 pnp型的小功率放大三极管s9012与ta89c52的p2 口相连。因为at89c52的端口输出电流太小(只有几ma)不能点亮这八位数码管,所以这里用了八个 s9012来驱动它们。具体原理图见附录一。图4/通讯复位时序第四章 软件设计及分析4.1 dht91传输时序和指令集4.1.1通讯复位时序data串行时钟输入(sck)用于微处理器与dth91之间的通讯同步。 由于接口包含了完全静态逻辑,因而不存在最小sck频率。串行数据(data)三态门用于数据的读取。data在sck时钟下降沿到来 之后改变状态,并仅在sck时钟

22、上升沿有效。数据传输期间,在sck 时钟高电平时,data必须保持稳定。为避免信号冲突,微处理器应 驱动data在低电平。需要一个外部的上拉电阻(例如:10k q)将信号提拉至高电平。如果与dth91通讯中断,下列信号时序可以复位串口:当data 保持高电平时,触发sck时钟9次或更多。这些时序只复位串口, 状态寄存器内容仍然保留。图4-2启动传输时序4.1.2启动传输时序datasck用一组“启动传输”时序,来表示数据传输的初始化。它包括:当 sck时钟高电平时data翻转为低电平,紧接着sck变为低电平, 随后是在sck时钟高电平时 data翻转为高电平。在下一次指令 前,发送一个“传输启

23、动”时序。启动传输时序如上图42所示。4.1.3数据传输和指令集后续命令包含三个地址位(目前只支持“ 000), ”和五个命令位。dth 91会以下述方式表示已正确地接收到指令:在第 8个sck时 钟的下降沿之后,将data下拉为低电平(ack位)。在第9个sck 时钟的下降之后,释放 data (恢复高电平)。发布一组测量命令( 00000101表示相对湿度 rh, '000000t1表示温度t)后,控制器要等待测量结束。这个过程需要大约20/80/320ms ,分别对应8/12/14bit测量。确切时间随内部晶振速度的变化而变化,最多可能 有30%的变化。dth91通过下拉data

24、至低电平并进入空闲模式, 表示测量的结束。控制器在再次触发sck时钟前,必须等待这个数 据备妥”信号来读出数据。检测数据可以先被存储,这样控制器可以 继续执行其它任务在需要时再读出数据。 接着传输2个字节的测量数 据和1个字节的crc奇偶校验。uc需要通过下拉data为低电平, 以确认每个字节。所有的数据从 msb开始,右值有效(例如:对于 12bit数据,从第5个sck时钟起算作msb;而对于8bit数据,首 字节则无意义)。用crc数据的确认位,表明通讯结束。如果不使用 crc-8校 验,控制器可以在测量值 lsb后,通过保持确认位ack高电平,来 中止通讯。在测量和通讯结束后,dth91

25、自动转入休眠模式。4.1.4湿度的测量时序图4-3测量湿度的时序4.1.5输出转换为物理量由能隙材料ptat (正比于绝对温度)研发的温度传感器具有极 好的线性。为了补偿湿度传感器的非线性以获取准确数据,建议使用如下公式1修正输出数值:2rhiinear = c1 + c2 .sorh + c3 sorh(4-1)",c2和c3值如下表4-1所示。表4/湿度转换系数iorh irnprnrnf 12 bit00405-2.8* 10-6 i| 8bit |0.64872诃 |湿度传感器相对湿度的温度补偿实际测量温度与25°c (-77°f)相差较大时,应考虑湿度传

26、感器的温度修正系数:rhtrue = (t c-25).(t1 + t2 .sorh) + rhiineart1和t2的值如下表42所示。表42温度补偿系数sorh |tit2|12 bit ii 0.010.00008 i8 bit | 0010.00128 |rhtrue:测量的湿度值。4.1.6 dht91 的 dc 特性。dht91的dc特性如下表43所示。表43 dht91的dc特性4-2程序流程图启动传输定时器初始化sck=o;_nop_();sck=1;_nop_();data=o;_nop_();sck=o;_nop_();_nop_();_nop_();sck=1;_nop_

27、();data=1;_nop_();sck=o;传输启动子程序是用来表示数据传输的初始化。每次对传感器进行写命令或者读命令前先进行以上程序方可。4.3.3一个字节子程序char s_write_byte(unsigned char value)unsigned char i,error=0;for(i=0x80;i>0;i/=2)if(i&value)data=1;elsedata=o;sck=1;_nop_();_nop_();_nop_();sck=o;data=1;sck=1;error=data;sck=o;return error;可以通过写一个字节子程序对传感器进行写

28、指令操作。若想读岀湿度值就向传感器写入'0000010读出温度值就向传感器写入'00000011 '4.3.4读一个字节子程序char s read_byte(unsigned char ack) unsigned char i,val=o;data=1;for(i=0x80;i>0;i/=2)sck=1;if (data)val=(val|i);sck=o;data=!ack;sck=1;_nop_();_nop_();_nop_();sck=o;data=1;return val;把相应的通过读一个字节子程序从传感器读出温度值或湿度值,数据送到单片机的寄存器中

29、。4.3.5数据处理子程序void calc_sth 11 (float *p_humidity,float *p_temperature)const float 6=40;const float c2=0.0405;const float c3=-0.000002&const float t1 =0.01;const float t2=0.00008;float rh=*p_humidity;float t=*p_temperature;float rhji n; float rh_true;float t_c; t_c=t*0.01-40;rh_lin=c3*rh*rh+c2*rh

30、+c1;rh_true=(t_c-25)*(t1+t2*rh)+rh_lin;if(rh_true<0.1) rh_true=0.1;*p_temperature=t_c;*p_humidity=rh_true;把从传感器读出的二进制数转换成相应的十进制数。4.3.6显示子程序void display(float humi,float temp)int humil,tempi; humi1=(humi*10); tempi =(temp*10);if(temp1<0)dispbuf0=10;tempi =abs(temp1);elsedispbuf0=11; if(cnt=o)di

31、spbuf1=temp1/100; dispbuf2=temp1/10% 10;dispbuf3=temp1%10; dispbuf4=11;dispbuf5=humi1/100;dispbuf6=humi1/10% 10;dispbuf7=humi1%10; if(humi>humiset)|(te mp>tempset)p0_4=0;elsep0_4=,z,;elif(cnt=1)if(temph>9)dispbuf0=10;elsedispbuf0=11;dispbuf1=temph%10;dispbuf2=templ%10;dispbuf3=11;dispbuf4=1

32、1;dispbuf5=11;dispbuf6=11;dispbuf7=11;elsedispbuf0=11;dispbuf1=11;dispbuf2=11;dispbuf3=11;dispbuf4=11; dispbuf5=humih%10;dispbuf6=humil%10; dispbuf7=11;当cnt=0时数码管显示实际的温湿度值,当 cnt=1时数码管显示设定温度值,当cnt=2时数码管显示设定湿度值。4.3.7按键子程序void key()if(po_o=o) for(i=5;i>0;i-) for(j=248;j>0;j-); if(po_o=o)cnt+; if(

33、cnt>2) cnt=0; while(p0_0=0);if(cnt=1) jf(po_1=o) for(i=5;i>0;i-) for(j=248;j>0;j-); if(po_l=o)temph+; if(temph=15) temph=0; while(p0_ 仁=0); if(p0_2=0) for(i=5;i>0;i-) for(j=248;j>0;j-); if(p0_2=0) templ+; if(templ=10) templ=0; while(p0_2=0);elseif(cnt=2)if(po_ 仁=0)for(i=5;i>0;i-) f

34、or(j 二248;j>0;j); if(p0_1=0)humih+;if(humih=10)humih=o;while(po_ 仁=0);if(p0_2=0)for(i=5;i>0;i-)for(j=248;j>0;j-);if(p0_2=0)humil+;if(humil=10)humil=0;while(p0_2=0);if(temph<10)tempset=temph*10+templ; elsetempset=(10-temph)-templ;humiset=humih*10+humil;s1键对应p0_0,s2键对应p0_1 ,s3键对应p0_2o每按一次s

35、1键,变量ent加1,当cnt>2时cnt=0o当cnt=1时每按一次s2键,temph加 当 temph>14 时 temph=0,当 temph 为 10, 11, 12, 13, 14 时分别对应的是-1, -2, -3, -4,每按一次s3键,tempi力口 1,当templ>9时 templ=0o 当 cnt=2 时 s2,s3 键调的是 humih 和 humil4.3.中断刷新显示数码管子程序void to(void) interrupt 1mstcnt+;if(mstcnt=8)mstcnt=0;if(dispbitcnt=2)|(dispbitcnt=6)p

36、1= dispcodedispbufdispbitcnt&oxfb;elsep1 =dispcodedispbufdispbitc nt; p2=dispbitcodedispbitcnt;dispbitcnt+; if(dispbitcnt=8)dispbitcnt=0;每2ms刷新数码管一次,人眼的视觉暂留时间大概是 0.1s,所以可以让人感觉到每个数码管都在显示。第三和七个数码管分别为温 度和湿度的个位,所以让这两个数码管的小数点位一直显示。4.3.9软件在硬件上的调试分析软件在keil里编译通过以后还得在硬件电路上调试,让数码管 显示正确的温湿度值,按键能够设定初始值,led发

37、光二极管能够指 示报警,这些功能都实现,本设计才能算基本完成。硬件电路是我本 着连线简单的原则焊接的,数码管的段选信号端(a,b,c,d,e,f,g,dp) 并不是与单片机的p1 口(从0-7)正好相互对应的。所以这里我们需 要对数码管所要显示的0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 和“不显示” 从新编码。在开始调试的时候我就忽略了这一点,我用的是资料书中 常用到那种,所以数码管显示的是乱码。我以为是硬件电路出了错误, 我用万用表把每根线从新测了一遍, 发现硬件电路一切正常啊。这时我才忽然想到,是编码这边出现了错误。我根据硬件的连线从新对0,1, 2,3, 4, 5, 6

38、, 7,9, 和“不显示”进行了编码。显示的数值还是不正确,但是数码管中显示的数和我想要显示的数有几分相似。在编码时我又忽略的一点,我们总是习惯性的从左往右写数,我就在 纸上从左往右一次写了 p1_0, p1_1,p1_2, p1_3, p1_4, p1_5, p1_6和p1_7 o所以编出的结果与实际所要的结果高位与低位正好错了位so这次毕业设计让我认识到了一般的设计流程以及设计中所要注意到的一些细节。在设计开始,应该先要认识到这次设计所要完成的 功能。接着大致分析一下所要用到的元器件。总体思路清晰以后就要画原理图。根据原理图焊接电路板,焊接的时候应该怎样布线简单怎 样焊接,尽量达到布线少,

39、布线短,跳线少,美观大方。硬件电路没 有任何问题后就可以根据我们所设计好的电路进行软件编程了。结论本次单片机的数字温湿度的设计,包括硬件和软件设计两部分。我先是在软件上完全做好的基础上再实行硬件电路的设计。在软件设计过程中我是先编出数字钟控制程序后,我才开始根据dht91的时序图进行软件的编写程序。在软件设计过程中我也遇到 了问题,经过柳老师的指点和同学之间的讨论,终于解决并学到了编 程技巧及一些编程思想。由于材料有限,本设计中的有些电容和电阻 的数值并不是原理图中设计的大小,但是不影响结果。在画原理图和 制作pcb版图的过程中我熟练掌握了 altium designer的基本应用。 在制作p

40、cb版图方面,我的pcb版图在布线方面还不够完美,但是 我会不断努力争取做的更好。经过软件在硬件电路上的调试后,基本功能都能实现。温度和湿 度都是显示到小数点后一位。如果手放到数字温湿度传感器 dth 91 上,数码管上显示的温度和湿度会立即发生变化, 测出其温度和湿度。本电路还是存在一些不足及需要改进的地方,如可以加计算机串 口传输,掉电存储等模块。致谢本毕业设计是在柳老师的精心指导下完成,首先我要对柳斌老师表示最真诚的谢意。在论文设计这几个月来的学习过程中柳老师在设 计上给予我耐心的指导,同时我也学会了如何把专业知识应用于实际 当中,为今后走上工作岗位打下了坚实的基础。在我即将结束大学学习之际,我真心感谢三年来所有教过我的老 师们,谢谢你们给予我的指导和关怀;同时我也感谢三年来在一起学 习、生活的同窗好友们,谢谢你们给予我的照顾和关心。毕业设计结束后,我将踏上工作岗位,三年时间学习到的知识与 经验将成为我走向岗位的垫脚石。相信我定会更加努力拼搏,创造出 我的世界。最后,恳请所有读到本毕业设计的老

温馨提示

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

评论

0/150

提交评论