您好,欢迎访问三七文档
电气学院创新设计(论文)任务书设计题目温湿度测量仪设计技术参数1温度测量精度正负1度;2湿度测量精度为正负3相对湿度;3选用集成温湿度传感器实现(DHT11)。设计要求1主板选用STM8;2显示采用Max7219;35秒显示一次温湿度;4设置温湿度报警线,用蜂鸣器报警。工作量适中工作计划1:熟悉STM8_IAR开发软件和熟悉STM8芯片2:理解DHT11芯片和Max7219工作原理3:编辑程序、编译、调试4:验收程序和完成任务书参考资料1、单片机接口模块应用与开发实例详解/薛小铃,刘志群,贾俊荣编著。电气学院创新设计说明书共25页第页1目录第1章摘要…………………………………………………………………………………3第2章引言………………………………………………………………………………3第3章设计思路……………………………………………………………………………4第4章基本原理……………………………………………………………………………54.1STM引脚图……………………………………………………………………………54.2Max7219工作原理…………………………………………………………………64.3DHT11工作原理…………………………………………………………………8第5章程序……………………………………………………………………………11第6章心得体会…………………………………………………………………………24附录参考文献……………………………………………………………………………………24电气学院创新设计评审意表…………………………………………………………………………25电气学院创新设计说明书共25页第页2第1章摘要温度和湿度是标定环境不可缺少的参数,在农业、工业和化工生产等许多场合,对温、湿度的要求非常严格,因此对环境温、湿度参数的实时检测提出了更高的要求,温湿度测试系统在工业生产和日常生活中的应用也越来越广泛。本文介绍的温湿度测量仪利用单片机STM8作为控制中心,配合电容式湿度传感器DHT11集数据,并用Max7219驱动数码管显示温湿度来设计一个温室的温湿度控制系统,对给定的温湿度进行控制并实时显示,在本系统中采用温度优先显示,循环处理。第2章引言在常规的环境参数中,湿度是最难准确测量的一个参数。用干湿球湿度计或毛发湿度计来测量湿度的方法,早已无法满足现代科技发展的需要。这是因为测量湿度要比测量度复杂得多,温度可独立测量,而湿度却受其他因素(大气压、温度)的影响。利用STM8单片机强大的功能,同时结合智能传感器DTH11测量温湿度有快速和使用简便等特点,设计了一个温湿度采集系统来对温湿度进行实时监控。通过对实际环境的温湿度测量,证明了该系统硬件电路布局设计简单合理,体积小,功能齐全,精度高,成本低,性价比相当高,是一款可以普及化的高精度温湿度参数检测仪。电气学院创新设计说明书共25页第页3第3章设计思路程序设计思路流程图:循环是否图1程序流程图判断温湿度是否超标蜂鸣器响程序开始Max7219显示温湿度DHT11初始化Max7219初始化DHT11采集温湿度电气学院创新设计说明书共25页第页4第4章基本原理4.1STM8引脚图图1STM8引脚图STM8S105S4T6主板配置了一个按钮、发光管、蜂鸣器、电位器等实验单元,按钮闭合状态为“0”、发光管地点平亮、蜂鸣器高电平蜂鸣、电位器可做A/D转换实验。电气学院创新设计说明书共25页第页54.2Max7219工作原理MAX7219是一种串入、并出的共阴极LED数码管显示驱动器,每片可驱动8位LED数码管显示,与单片机的接口只需3根线,内带BCD译码器,及显示测试、移位、锁存器等,输出电流达40mA,外围只需一只亮度调整电阻。图3MAX7219引脚图1、引脚功能说明DIN:串行数据输入端,CLK的上升沿时数据被载入内部16位移位寄存器中CLK:串行时钟输入端,最高工作频率可达10MHzLOAD:片选端,低电平接收DIN端的数据,高电平时数据被所存DIG0~7:LED的位控制端A~DP:LED的端控制端DOUT:串行数据输出端,用于芯片的级联ISET:硬件亮度调整端,在该引脚与VCC之间跨接一个电阻,LED的亮度即可通过该电阻来调节,流过LED的段驱动平均电流为流过此电阻电流的100倍,此电阻值范围为:10~80K之间。2、内部寄存器说明A、译码方式选择寄存器地址:09H赋值:FFH表示使用MAX7219内部的BCD译码器00H表示不使用MAX7219内部的BCD译码器B、亮度调节寄存器地址:0AH赋值:00H~0FH可改变MAX7219所驱动的LED的亮度,其变化范围在电气学院创新设计说明书共25页第页61/32~31/32之间C、扫描位数设定寄存器地址:0BH赋值:00H所有位不显示01H~07H依次对应于1~8位及前面位全部显示(即需显示的位应为“1”)D、待机模式开关寄存器地址:0CH赋值:00HLED全灭01HLED正常显示E、显示器测试寄存器地址:0FH赋值:00HLED为正常显示状态01HLED测试状态,即LED全亮F、8位LED显示数据寄存器地址:01H~08H对这些寄存器赋值(即需显示的内容),就会在对应的1~8位LED数码管上显示出来3、使用注意事项由于电源中杂波或附近的电磁等干扰信号,使MAX7219在上电后不显示或乱显示;为了消除这种现象应在MAX7219的VCC端与地之间接一只104pf的瓷片电容,在LOAD端于地之间接一只10K的电阻。最号还在电源与MAX7219的VCC端之间串一只去高频的电感。而在电源方面,最好使用变压器供电,而不要用开关电源供电。加在DIN引脚上的串行数据必须在LOAD脚为低电平时,以每2字节一次,在SCK脚信号的每个上升沿移入1位数据,且高位在前低位在后,然后在LOAD信号的上升沿MAX7219所存数据。4、LED数码管引脚图如下电气学院创新设计说明书共25页第页74.3DHT11工作原理DHT11是串行接口(单线双向),DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。1.通讯过程如图4所示图4DHT11通讯过程如图总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信电气学院创新设计说明书共25页第页8号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。图5DHT11通讯过程时序总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示方法如图6所示电气学院创新设计说明书共25页第页9图6数字0信号时序图数字1信号表示方法.如图7所示图7数字1信号时序图电气学院创新设计说明书共25页第页10第5章主程序#includestm8s.h#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong/***********Max7219宏定义*************/#defineMSB0x80/*最高位*/#defineLSB0x01/*最低位*/#defineDECODE_MODE0x09/*译码模式*/#defineINTENSITY0x0A/*亮度*/#defineSCAN_LIMIT0x0B/*扫描界限*/#defineSHUT_DOWN0x0C/*掉电模式*/#defineDISPLAY_TEST0x0F/*显示测试*/#defineGPIO_PORTGPIOD/***********DHT11宏定义*************/#defineDHT11_IO_INGPIO_Init(GPIOE,GPIO_PIN_6,GPIO_MODE_IN_PU_NO_IT)#defineDHT11_IO_OUTGPIO_Init(GPIOE,GPIO_PIN_6,GPIO_MODE_OUT_PP_LOW_FAST)#defineGPIO_PIN_UPGPIO_WriteHigh(GPIOE,GPIO_PIN_6)#defineGPIO_PIN_DOWNGPIO_WriteLow(GPIOE,GPIO_PIN_6)#defineDHT11_DQ_INGPIO_ReadInputPin(GPIOE,GPIO_PIN_6)#defineFlag_UpdateTIM3_GetFlagStatus(TIM3_FLAG_UPDATE)/*********************函数声明*****************************/电气学院创新设计说明书共25页第页11voidCLK_Configuration(void);/*CLK配置*/voidGPIO_Configuration(void);/*IO口配置*/voidKEY_Init(void);/*按键初始化*/voidTIM2_Configuration();/*定时器2配置*/voidAlarm_Beep();/*蜂鸣器*//*********************Max7219函数声明*****************************/voidInit_Max7219();/*7219初始化*/voidclear_7219();/*清楚显示*/voidWrite_Max7219(unsignedcharaddress,unsignedchardat);/*向7219写入字*/voidDisplay_Temp(void);/*温度显示*/voidDisplay_Humi(void);/*湿度显示*//*********************DHT11函数声明*****************************/intstart_DHT11(void);/*DHT11唤起*/ucharDHT11_Get_Data(void);/*读数据*//*********************延时函数声明******************************/voidDelay_ms(ulongms);/*毫秒延时*/voidDelay_us(ulongus);/*微秒延时*//*********************变量定义********************************/ucharLEDcode[10]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b};intTurn;电气学院创新设计说明书
本文标题:温湿度设计任务书
链接地址:https://www.777doc.com/doc-3294061 .html