毕业设计基于单片机技术的数字温湿度计设计.doc

上传人:laozhun 文档编号:3975071 上传时间:2023-03-30 格式:DOC 页数:35 大小:404.50KB
返回 下载 相关 举报
毕业设计基于单片机技术的数字温湿度计设计.doc_第1页
第1页 / 共35页
毕业设计基于单片机技术的数字温湿度计设计.doc_第2页
第2页 / 共35页
毕业设计基于单片机技术的数字温湿度计设计.doc_第3页
第3页 / 共35页
毕业设计基于单片机技术的数字温湿度计设计.doc_第4页
第4页 / 共35页
毕业设计基于单片机技术的数字温湿度计设计.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《毕业设计基于单片机技术的数字温湿度计设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于单片机技术的数字温湿度计设计.doc(35页珍藏版)》请在三一办公上搜索。

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

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

3、计的设计依据11.2 数字温湿度计的设计意义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驱动显示电路10第四章 软件设计及分析124.1 DHT91传输时序和指令集124.1.1 通讯复位时序124.1.2 启动传输时序134.1.3 数据传输和指令集134.1.4 湿度的测量时序144.1.5 输出转换为物理量144.1

4、.6 DHT91的DC特性。164.2 程序流程图174.3 程序的设计184.3.1 通讯复位子程序184.3.2 传输启动子程序184.3.3 一个字节子程序194.3.4 读一个字节子程序194.3.5 数据处理子程序204.3.6 显示子程序204.3.7 按键子程序224.3.8 中断刷新显示数码管子程序234.3.9 软件在硬件上的调试分析24结 论26致 谢27参考文献28附 录29引 言温度和湿度的测量和控制是目前众多行业的重要工作目标之一,可谓与我们的生活息息相关。无论是在工农业生产、气象部门,还是在环保、国防、科研等方面,常需对环境温度与湿度进行测量和控制。现在准确测量温湿

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

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

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

8、即发光二极管亮;(5)系统采用数码管显示,能显示设定温湿度值和测得的实际温湿度值。湿度精度(%RH) 温度精度(C25)2.2 方案论证分析2.2.1 方案论证方案一,采用单片机AT89C51与SHTxx温湿度传感器相连组成外围电路。方案二,采用DHT91数字温湿度传感器与单片机AT89C52相连外围电路。经过之前的知识,我比较之后选择采用第2个方案。由于采用DHT91数字温湿度传感器与单片机AT89C52相连外围电路比较简单。DHT91数字温湿度传感器作为检测元件,能够同时测试温度和湿度。这类传感器不仅易于焊接,而且只有四针管脚,减少了外围电路的设计。且AT89C52与AT89C51不同之处

9、是,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 主控制器芯片主控制器模块选用单片机AT89C52。AT89C52是美国ATMEL公司生产的低电平,

11、高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(PEROM)和256 bytes的随机存取数据存储器(RAM ),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,32个可编程I/O口线, 3个16位定时/计数器, 低功耗空闲和掉电模式。功能强大的AT89C52单片机适合于许多较为复杂控制应用场合。AT89C52共有6个中断向量:两个外中断(INT0和INT1),3个定时器中断(定时器0, 1, 2),串行口中断和四个双向I/0口。 P0口:P0口是一组

12、8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复位,应为输出驱动级的漏极开路,所以必须外接上拉电阻,否则不能正常工作。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTE逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL)。表2-1 P1.0和P1

13、.1的第二功能P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL)。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(ILL)。2.3.2 数字温湿度传感器测温湿模块选用数字温湿度传感器DHT91。现今

14、国内外用的最多的温湿度传感器是SHTxx系列。不过很多客户都反应SHTxx不方便手工焊接,很容易在焊接的时候,由于温度过高造成传感器直接损害,因此利用SHTxx传感器重新在国内封装得到了DHT 9x系列。SHTxx系列单芯片传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专利的工业COMS过程微加工技术(CMOSens),具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式聚合体测湿元件和一个能隙式测温元件,并与一个14位的A/D器以及串行接口电路在同一芯片上实现无缝链接,从而具有超快响应,抗干扰能力强,性价比高等优点。2.4 驱动显示电路驱动显示模块选用八位共阳极数码管和八个

15、小功率放大三极管S9012。由于单片机的端口输出电流太小,这里必须由外界电路来驱动数码管显示。S9012就是用来驱动这八位数码管显示的。LED数码管也称半导体数码管,是目前数字电路中最常用的显示器件。它是以发光二极管作段并按共阴极方式或共阳极方式连接后封装而成的。图2-2所示是两种LED数码管的外形与内部结构,、分别表示公共阳极和公共阴极,ag是7个段电极,DP为小数点。LED数码管型号较多,规格尺寸也各异,显示颜色有红、绿、橙等。LED数码管的主要特点如下:(1) 发光响应时间极短(小于01s),高频特性好,单色性好,亮度高。(2)能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼

16、容。 (3) 寿命长,使用寿命在10万小时以上,甚至可达100万小时。成本低。 (4)体积小,重量轻,抗冲击性能好。 因此它被广泛用作数字仪器仪表、数控装置、计算机的数显器件。小电压大电流的小功率放大三极管S9012的放大倍数共分六级:D级:64-91 E级:78-112 F级:96-135 G级:112-166 H级:144-220 I级:190-3002.5 温湿度测量的方法及分析 DHT91是一个两线串行接口的数字温湿度传感器,一个接口是时钟线,一个接口是数据线(支持双向传输)。它是四针单排封装,一个接电源,一个接地线,另两个直接和单片机的P0_5和P0_6相连。不过数据线和时钟线上需要

17、接两个10K的上拉电阻,因为AT89C52的P0口内部没有上拉电阻。单片机通过P0_5和P0_6向DHT91发送命令,DHT91接收到命令后做出相应的应答。由于DHT91内部包含一个14位A/D转换器,所以单片机接收到就是数字信号,只需要做相应的处理就能得到所需要的数据。这里减少了很多外部的电路的连接,用起来比较方便。第三章 硬件电路的设计 3.1主控制电路和测温湿控制电路本次硬件设计的核心就是AT89C52,其他部件都是围绕它设计的。数字温湿度传感器DHT91的DATA口和SCK口分别与AT89C52的P0_5口和P0_6口相连。因为P0口内部没有上拉电阻,所以这里在DATA和SCK传输线上

18、分别加了一个10K的上拉电阻。预置数电路就是三个按键分别与AT89C52的P0_1,P0_2和P0_3口相连,为了降低AT89C52的功耗在按键和单片机的端口间加了个10K的限流电阻。当有按键按下时单片机收到有效的信号,S1键用来切换显示的模式(分别显示实际所测得的温湿度,预置的温度值和预置的湿度值),S2键用来设置初始温度或者湿度的十位,S3键用来设置初始温度或者湿度的个位。报警电路就是把个发光二极管和AT89C52的P0_4口相连,当P0_4口为低电平时放光二极管被点亮。发光二极管的压降一般为1.52.0 V,其工作电流一般取1020 mA为宜。使用LED作指示电路时,应该串接限流电阻,该

19、电阻的阻值大小应根据不同的使用电压和LED所需工作电流来选择。这个电流能使放光二极管正常放光。如果电流小于10mA放光二极管的亮度会减弱,如果电流大于20mA发光二极管亮度会更强,但是会有损发光二级管的寿命有时候甚至会直接烧毁发光二极管。单片机复位有两种:一种是上电复位,一种是按键复位。下图用的就是按键复位,当按键按下时单片机的RST口从低电平变为高电平,从而进入复位状态。当按键松开后,VCC给电容C3充电,从而把RST口拉至电平,单片机进入工作状态。只要把下图的RESET按键和R2电阻去掉就成了上电复位了。AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2

20、分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路,对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF士10pF,而如果使用陶瓷谐振器,建议选择40pF士l0pF。这里用到的是12M的石英晶体振荡器和两个30pF的电容。3.2驱动显示电路数码管的显示有两种方法:一种是静态显示,一种是动态扫描显示。静态显示就是数码管的段选端一对一与单片机的I/

21、O相连,位选端则根据数码管的极型来接地(GND)或者是高电平(VCC)。静态显示实现起来比较简单,但是浪费了单片机的I/O口资源。动态扫描显示就是几个数码管的段选端可以同时接到单片机的I/O口,位选端一对一的接到单片机的其它I/O口,当位选信号选中某个数码管时,那个数码管就被点亮,而其它数码管不亮。动态扫描显示节省了单片机的I/O资源。采用动态显示方案,设计中使用八个共阴极数码管作为显示载体,通过八路并口传输,共使用了十六个I/O口。显示时采用循环移位法,即八位数码管依次循环点亮,利用人眼睛的视觉暂留效果达到连续显示,主程序每运行一遍便调用一次显示子程序,将数据显示出来。显示部分为八位共阳极数

22、码管(四位一组),数码管的段端A,B,C,D,E,F,G和DP与TA89C52的P1口相连,顺序可以根据硬件接线方便而定。数码管的字段通过八个PNP型的小功率放大三极管S9012与TA89C52的P2口相连。因为AT89C52的端口输出电流太小(只有几mA)不能点亮这八位数码管,所以这里用了八个S9012来驱动它们。具体原理图见附录一。 第四章 软件设计及分析4.1 DHT91传输时序和指令集4.1.1 通讯复位时序图4-1通讯复位时序串行时钟输入 (SCK)用于微处理器与DTH91之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK 频率。串行数据 (DATA) 三态门用于数据的

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

24、高电平时DATA 翻转为高电平。在下一次指令前,发送一个“传输启动”时序。启动传输时序如上图4-2所示。4.1.3 数据传输和指令集后续命令包含三个地址位(目前只支持“000”),和五个命令位。DTH 91 会以下述方式表示已正确地接收到指令:在第8个SCK 时钟的下降沿之后,将DATA 下拉为低电平(ACK 位)。在第9个SCK 时钟的下降之后,释放DATA(恢复高电平)。发布一组测量命令(00000101 表示相对湿度RH,00000011 表示温度T)后,控制器要等待测量结束。这个过程需要大约20/80/320ms ,分别对应8/12/14bit 测量。确切时间随内部晶振速度的变化而变化

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

26、ack 高电平,来中止通讯。在测量和通讯结束后,DTH91自动转入休眠模式。4.1.4 湿度的测量时序图4-3测量湿度的时序4.1.5 输出转换为物理量由能隙材料PTAT (正比于绝对温度) 研发的温度传感器具有极好的线性。为了补偿湿度传感器的非线性以获取准确数据,建议使用如下公式1修正输出数值: RHlinear = c1 + c2 .SORH + c3 .SORH (4-1)c1,c2和c3值如下表4-1所示。表4-1 湿度转换系数湿度传感器相对湿度的温度补偿实际测量温度与25 (77)相差较大时,应考虑湿度传感器的温度修正系数:RHtrue = (TC -25).(t1 + t2 .SO

27、RH) + RHlineart1和t2的值如下表4-2所示。表4-2 温度补偿系数RHtrue:测量的湿度值。4.1.6 DHT91的DC特性。DHT91的DC特性如下表4-3所示。表4-3 DHT91的DC特性4.2 程序流程图初始化通讯复位启动传输定时器初始化写湿度指令成功error=0失败 error=1读湿度值成功error=0失败 error=1写温度指令成功error=0失败 error=1读温度值成功error=0失败 error=1Error=1?Y数据处理显示处理通讯复位启动传输N图4-4主程序流程图回到中断点刷新数码管设置初始值定时器时间到中断其它程序图4-5报警程序流程图

28、4.3 程序的设计4.3.1 通讯复位子程序void s_connectionreset(void)unsigned char i;DATA=1;SCK=0;for(i=0;i0;i/=2)if(i&value)DATA=1;elseDATA=0;SCK=1;_nop_();_nop_();_nop_();SCK=0;DATA=1;SCK=1;error=DATA;SCK=0;return error;可以通过写一个字节子程序对传感器进行写指令操作。若想读出湿度值就向传感器写入00000101如想读出温度值就向传感器写入00000011。4.3.4 读一个字节子程序char s_read_by

29、te(unsigned char ack)unsigned char i,val=0;DATA=1;for(i=0x80;i0;i/=2)SCK=1;if(DATA) val=(val|i);SCK=0;DATA=!ack;SCK=1;_nop_();_nop_();_nop_();SCK=0;DATA=1; return val; 通过读一个字节子程序从传感器读出温度值或湿度值,把相应的数据送到单片机的寄存器中。4.3.5 数据处理子程序 void calc_sth11(float *p_humidity,float *p_temperature)const float C1=-4.0;co

30、nst float C2=0.0405; const float C3=-0.0000028; const float T1=0.01; const float T2=0.00008; float rh=*p_humidity; float t=*p_temperature; float rh_lin; float rh_true; float t_c; t_c=t*0.01-40; rh_lin=C3*rh*rh+C2*rh+C1; rh_true=(t_c-25)*(T1+T2*rh)+rh_lin; if(rh_true0.1) rh_true=0.1; *p_temperature=t

31、_c; *p_humidity=rh_true;把从传感器读出的二进制数转换成相应的十进制数。4.3.6 显示子程序void display(float humi,float temp)int humi1,temp1;humi1=(humi*10); temp1=(temp*10);if(temp1humiset)|(temptempset)P0_4=0;elseP0_4=Z;elseif(cnt=1)if(temph9)dispbuf0=10;elsedispbuf0=11;dispbuf1=temph%10;dispbuf2=templ%10;dispbuf3=11;dispbuf4=11

32、;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(P0_0=0)for(i=5;i0;i-)for(j=248;j0;j-);if(P0_0=0)cnt+;if(cnt2)cnt=0;wh

33、ile(P0_0=0);if(cnt=1)if(P0_1=0)for(i=5;i0;i-)for(j=248;j0;j-);if(P0_1=0)temph+;if(temph=15)temph=0;while(P0_1=0);if(P0_2=0)for(i=5;i0;i-)for(j=248;j0;j-);if(P0_2=0)templ+;if(templ=10)templ=0; while(P0_2=0);elseif(cnt=2)if(P0_1=0)for(i=5;i0;i-)for(j=248;j0;j-);if(P0_1=0)humih+; if(humih=10)humih=0;wh

34、ile(P0_1=0);if(P0_2=0)for(i=5;i0;i-)for(j=248;j0;j-);if(P0_2=0)humil+;if(humil=10) humil=0;while(P0_2=0);if(temph2时cnt=0。当cnt=1时每按一次S2键,temph加1,当temph14时temph=0,当temph为10,11,12,13,14时分别对应的是-,-1,-2,-3,-4,每按一次S3键,templ加1,当templ9时templ=0。当cnt=2时S2,S3键调的是humih和humil。4.3.8 中断刷新显示数码管子程序void t0(void) inter

35、rupt 1 mstcnt+;if(mstcnt=8)mstcnt=0;if(dispbitcnt=2)|(dispbitcnt=6)P1=dispcodedispbufdispbitcnt&0xfb;elseP1=dispcodedispbufdispbitcnt;P2=dispbitcodedispbitcnt;dispbitcnt+;if(dispbitcnt=8)dispbitcnt=0;每2mS刷新数码管一次,人眼的视觉暂留时间大概是0.1S,所以可以让人感觉到每个数码管都在显示。第三和七个数码管分别为温度和湿度的个位,所以让这两个数码管的小数点位一直显示。4.3.9 软件在硬件上的

36、调试分析软件在Keil里编译通过以后还得在硬件电路上调试,让数码管显示正确的温湿度值,按键能够设定初始值,led发光二极管能够指示报警,这些功能都实现,本设计才能算基本完成。硬件电路是我本着连线简单的原则焊接的,数码管的段选信号端(A,B,C,D,E,F,G,DP)并不是与单片机的P1口(从0-7)正好相互对应的。所以这里我们需要对数码管所要显示的0,1,2,3,4,5,6,7,8,9,-和“不显示”从新编码。在开始调试的时候我就忽略了这一点,我用的是资料书中常用到那种,所以数码管显示的是乱码。我以为是硬件电路出了错误,我用万用表把每根线从新测了一遍,发现硬件电路一切正常啊。这时我才忽然想到,

37、是编码这边出现了错误。我根据硬件的连线从新对0,1,2,3,4,5,6,7,8,9,-和“不显示”进行了编码。显示的数值还是不正确,但是数码管中显示的数和我想要显示的数有几分相似。在编码时我又忽略的一点,我们总是习惯性的从左往右写数,我就在纸上从左往右一次写了P1_0, P1_1,P1_2, P1_3, P1_4, P1_5, P1_6和 P1_7 。所以编出的结果与实际所要的结果高位与低位正好错了位置。这次毕业设计让我认识到了一般的设计流程以及设计中所要注意到的一些细节。在设计开始,应该先要认识到这次设计所要完成的功能。接着大致分析一下所要用到的元器件。总体思路清晰以后就要画原理图。根据原理

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

39、握了ALTIUM designer的基本应用。在制作PCB版图方面,我的PCB版图在布线方面还不够完美,但是我会不断努力争取做的更好。经过软件在硬件电路上的调试后,基本功能都能实现。温度和湿度都是显示到小数点后一位。如果手放到数字温湿度传感器DTH 91上,数码管上显示的温度和湿度会立即发生变化,测出其温度和湿度。本电路还是存在一些不足及需要改进的地方,如可以加计算机串口传输,掉电存储等模块。致 谢本毕业设计是在柳老师的精心指导下完成,首先我要对柳斌老师表示最真诚的谢意。在论文设计这几个月来的学习过程中柳老师在设计上给予我耐心的指导,同时我也学会了如何把专业知识应用于实际当中,为今后走上工作岗

40、位打下了坚实的基础。在我即将结束大学学习之际,我真心感谢三年来所有教过我的老师们,谢谢你们给予我的指导和关怀;同时我也感谢三年来在一起学习、生活的同窗好友们,谢谢你们给予我的照顾和关心。毕业设计结束后,我将踏上工作岗位,三年时间学习到的知识与经验将成为我走向岗位的垫脚石。相信我定会更加努力拼搏,创造出我的世界。最后,恳请所有读到本毕业设计的老师多提宝贵意见,不吝赐教。再次表示衷心的感谢!参考文献1 靳桅,潘育山,邬芝权.单片机原理及应用.西南交通大学出版社,2002.2 李光飞,楼然苗,胡佳文等.单片机课程设计实例指导.北京:北京航空航天大学出版社,2004.3 凌玉华.单片机原理及应用系统设计.长沙:中南大学出版社,2006.4 刘华东.单片机原理与应用.北京:电子工业出版社,2003.5 高鹏,安涛,寇怀成等.电路设计与制版-Protel99入门与提高.北京:人民邮电出版社,2004.6 王守刚.电路原理图与电路板设计教程.北京:北京希望电子出版社,2000.7

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号