基于单片机的湿度控制器设计内容摘要:

度测量值,且与电源电压值 Vsupply圾关。 若 Vsupply固定为 5V,则其值仅由相对湿度值决定,但由于单总线上的供电电压值为变量,故要求在进行湿度测量的同时还应测量电源电压 Vsupply 的值。 c) HIH3610 输出的湿度值还与环境温度有关,故应进行温度补偿,补偿公式为 RH=(sensor%RH)/( ) (32) 因此,为得到准确的湿度测量值,还应在测量湿度的同时测量环境湿度和单总线供电电压值。 DS2438 芯片介绍 DS2438 是 Dallas 公司推出的智能电池监视器。 该器件是为了解决便携式电子产品电池工作状态的实时监测而推出的。 A. DS2438 芯片的特点 : DS2438 芯片具有以下几个特点 单总线器件,仅需 1根口线实现电源及双向数据传输; 片内 13位精度温度传感器,最小分辨率 25℃; 片内 10位二通道电压 A/D 转换器,最小分辨率为 10mV; 片内 10位电流 A/D 转换器; 片内 40字节非易失性用户存储器; 片内逝去时间计数器,完成充放电时间计时; 单电源工作,低功耗特性; 工作温度范围为 40℃~ +80℃。 B. DS2438 引脚功能说明 : GND 接地 VSENS+ 电源电流监视输入( +) VSENS 电池电流监视输入( ) VAD 通用 A/D 输入端 VDD 供电电压( ~ 10V) NC 空引脚 DQ 数据输入 /输出、 1线操作、开漏 C. 工作原理 DS2438 由单总线接口、电压 A/D 转换器、电流 A/D 转换 器、温度传感器、时钟电路、 40 字节的 E2PROM 及与上述硬件相关的寄存器组成。 其中的电压 A/D 转换器的输入,可编程为由 VDD电源端输入或 VAD输入端输入,以满足 VDD 电源端及外部输入模拟量 VAD的测量要求。 D. 器件存储单元 DS2438 存储器类型包括易失性的 SRAM 和非易失性的 EEPROM。 DS2438 内部 的存储盐城工学院本科生毕业设计说明书 (2020) 9 器为一个总容量 64 字节的存储器。 存储器被分为 8页,每页 8 字节,页地址为 00~07H。 其中第 00 页是访问频率最高的页, 字节序号名称内容 读 /写特性,易失特性 DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0 0 状态 /配置寄存器 X,ADB,NV,TB,AD,EE,CA,IAD,读 /非易失。 温度低位寄存器 2 122232425000,读 /非易失。 湿度高位寄存器 S26252423222120,读 /非易失。 电压低位寄存器 2726252423222120,读 /非易失。 电压高位寄存器 0000002928,读 /非易失。 电流低位寄存器 0000002928,读 /非易失。 电流高位寄存器 SSSSSSS28,读 /非易失。 阈值寄存器 TH2TH1000000 读 /写易失。 第 1 页为电流累加器、逝去时间计数器和电流补偿单元;每 2 页包括非易失性时间和充电时间标记;第 3~ 7页是 40 字节的提供给用户使用的 EEPROM,可用于保存用户数据。 DS2438 所有的寄存器都映射到上述的存储器中,同时对 DS2438 的操作都是通 过 寄存器进行的。 a)状态寄存器 状态寄存器位于存储器 00 页的第 0 字节,该寄存器用于 DS2438 的功能 控制,其中各位的默认值为 1,含义如下: IAD 为电流 A/D 控制位。 IAD=1,启用电流 A/D和 ICA,且以 32Hz 速率测量电流; IAD=0,禁用 电流 A/D 和 ICA。 CA 为电流累加器配置位。 CA=1,启用 CCA/DCA 存储数据且可从第 7 页恢复数据;CA=0,禁用 CCA/DCA,第 7页可用于普通 E2PROM 存储。 EE 为隐蔽电流累加器位。 EE=1,将 CCA/DCA 计数器数据隐蔽到 E2PROM,电量每增加,当前计数器加 1; EE=0, CCA/DCA 计数器数据将不隐蔽到 E2PROM。 AD 为电压 A/D输入选择位。 AD=1,电压 A/D 选择由 VDD 端输入; AD=0,电压 A/D 选择由 VAD 端输入。 TB 为温度转换忙标志位。 TB=1,温度转换正在进行; TB=0,温度转换结束。 NVB 为非易失存储忙标志位。 NVB=1,在从可擦除区复制到 E2PROM 的存储过程中;NVB=0,非易失存储空闲状态。 一次 E2PROM 存储占用 2~ 10ms。 ADB 为 A/D 转换标志位, ADB=1,电压 A/D 转换正在进行; ADB=0,转换结束或 无测量。 一次 A/D 转换占用约 10ms, X为不定位。 b)温度寄存器 DS2438 可在 55~ +125℃范围内以 25℃ 的分辨率测量温度值,温度 值为 2的码形式通过 2 字节温度寄存器输出。 其中符号位 S 指示温度值为正或负; S=0,温度值为正; S=1,温度值为负。 c)电压寄存器 DS2438 的电压输入范围是 0~ 10V,且电压 ADC 的输入,可通过状态 /结构寄存器的 AD 位来选择由 VDD 输入或由 VAD 输入。 电压 A/D 转换的结果放在 2 字节电压寄存器中,单位为 mV。 基于单片机的湿度控制器的设计 10 d)电流寄存器 DS2438通过测量电流取样电阻 RSENS两端的电压来间接测量流过电池的电流。 采用 10 位 ADC,其分辨率为 ,电流测量值的结果放在 2 字节的电流寄存器中其中电流测量符号位 S,用于指示充电或放电。 e)单总线协议 DS2438是 Dallas公司基于单总线的器件。 该器件的操作 完全遵循单总线协议,其 ROM 命令有 3个。 读 ROM[33H]; 匹配 ROM[55H]; 跳过 ROM[F0H]。 主机在操作 DS2348 之前,必须先发送上述 4个 ROM 命令中的一个。 在 DS2438成功执行上述命令之后,主机可使用下面的内存命令操作 DS2438。 由于 DS2438 的内存分为 7页,故其内存操作命令和其它的单总线器件略有不同。 DS2438 的内存操作命令如下: 写高速暂存存储器 [4EHXXH]; 读高速暂存存储器 [BEHXXH]。 读制高速暂存存储器 [48HXX]; 恢复存储器 [B8HXXH]。 温度转 换命令 [44H]; 电压转换命令 [B4H]。 上述内存命令中的 XXH 为高速暂存存储器的页地址,有效的页码地址为 00~07H。 DS2438 对高速暂存存储器的操作中,除了基本的命令外,还必须将等操作的高暂存存储器的页地址送出去。 DS2438 允许 1次读 /写 1页内的全部 8个字节,且读写字节操作可使用复位命令在任何瞬间终止。 值得注意的是, DS2438 的温度转换命令及电压转换命令发出后,主机需等待10~ 20ms,以使 DS2438 完成温度及电压转换;同时,若采用寄生电源供电,应将总线拉高,以保证充足的能量供应。 电路工作 原理 温湿度检测电路如图 34 所示。 图中 ,单总线上的电压经二极管 VD1 整流、电容 C1 滤波后给湿度传感器 HIH3610 和单总线器件 DS2438 供电。 湿度传感器湿度输出电压经电阻 R2 送入 DS2438 的 VAD 端。 DS2438 的 VDD 端电源电压及 VAD 端湿度电压经 DS2438A/D 转换后 ,从 DS2438 单总线端 DQ输出。 盐城工学院本科生毕业设计说明书 (2020) 11 C20 . 0 1 u fR21 0 0 KO U T VDDGNDH IH 3 6 1 0C10 . 0 1 u fV D 2V D 1R14 . 7 K5VDQVDDGNDV A DD S 2 4 3 8P 1 . 0 图 34温湿度检测电路 HIH 3610 输出电压与湿度的关系为 : Vout=(V+)/ (33) 式中 :Vout 为 HIH3610 的输出电压。 V 为 HIH3610 的电源电压。 h 为相对湿度 (%)。 由式 (23)可知 ,输出电压不仅正比于湿度测量值 ,且与电源电压值有关。 若电源电压固定为 5V,则其值仅由相对湿度值决定。 另外 ,HIH3610 测量的湿度值还与环境温度有关 ,式 (24)是在 25℃时传感器输出温度与湿度的关系 ,当环境温度改变时应进行温度补偿 ,补偿公式为 : h′ =h/() (34) 式中 :T为环境摄氏温度值。 h′为湿度的修正值。 因 此 ,为了得到准确的湿度测量值 ,还应在测量湿度的同时测量环境温度和湿度传感器电源电压值 ,这一任务可由智能电池监视器件 DS2438 完成。 利用 D52438的温度传感器测量环境温度 ,此温度一方面用于温度值输出 ,另一方面用于湿度测量时温度值的补偿。 利用 DS2438 内部的双通道 A/D 转换器 ,通过编程存储空间中状态 /标志寄存器的模拟和数字取值的不同 ,实现 HIH3610 输出湿度电压及 HIH3610电源电压测量的切换 ,分别得到温度测量和湿度测量时的电源电压值 ,并通过DS2438 的 DQ 端将所测环境温度值、湿度值、电源电压值 传输到单总线上。 因此 ,使用 DS2438即可完成温湿度测量 ,并可由相应的软件算法实现湿度传感器电源电压校正及环境温度补偿。 键盘与显示电路 键盘的设计 为了完成预定湿度值的设置,系统中设置了 4 个按键, S1 为启动 /停止键,用来控制系统的启停, S2, S3 为加 1减 1键,设置湿度的上下值, S4 设置定时时间。 按键对单片机的接口电路图如图 35所示。 基于单片机的湿度控制器的设计 12 S1S2S3R510 K * 4R6R7 R8S4启动 /停止加 1减 1定时P 2 . 1P 2 . 05VP 2 . 2P 2 . 3 图 35按键对单片机的接口电路图 LED 显示电路设计 显示电路由 MAX7219 芯片完成, MAX7219 是一种高集成化的串行输入 /输出 的共阴 极 LED 显示驱动器。 每片可驱动 8 位 7 段加小数点的共阴极数码管。 SEGA~SEGG(图中为 A到 G)为 LED 七段显示器段驱动端 , SEGDP 为小数点驱动端;( SEGA~SEGG,DP 驱动显示器 7段及小数点的输出电流,一般为 40 mA 左右,可软件调整,关闭状态时,接入 GND。 ) DIG7~DIG0: 8 位数值驱动线。 输出位选信号,从每个 LED 公共阴极吸入电流,吸收显示器共阴极电流的位驱动线。 其最大值可达 500 mA,关闭状态时,输出+ VCC。 MAX7219 是一种高集成化的串行输入 /输出的共阴极 LED 显示驱动器。 每片可驱动 8 位 7 段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需 3根线。 MAX7219 内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了 MCU 有限的运行时间和程序资源。 MAX7219 芯片上包括BCD译码器、多位扫描电路、段驱动器、位驱动器和用于存放每个数据位的 8 8 静态 RAM 以及数个工作寄存器。 通过指令设置这些工作寄存器,可以使 MAX7219 进入不同的工作状态。 如 图 36为 MAX7219 的时序图( DIN CLK LOAD 原理) 图 36 MAX7219工作 时序图 盐城工学院本科生毕业设计说明书 (2020) 13 这个时序图简单 反映了 DIN, CLK 和 LOAD 的工作时序 ,就是告诉大家三个端口是怎么合作传送数据的。 其中, DIN 是串行数据输入端, CLK 和 LOAD 实际上是充当了组织者。 针对单片 MAX7219 介绍一下数据传送的过程: 首先,在 CLK的下降沿,无效,在 CLK 的上升沿,第一位二进制数据被移入内部移位寄存器,然后 CLK 再出现下降沿,无效,然后 CLK 再出现上升沿,第二位二进制数据被移入内部移位寄存器,就这样工作十六个周期,完成十六个二进制(前八个是地址,后八个是数据)的传送,这当中 LOAD 一直是低电平, 当完成十六个二进制的传送后。 把 LOAD 置成高电平,产生上升沿,把这 16 位串行数据锁存到数据或控制寄存器中。 完成装载。 然后再把 LOAD 还原为低。 重复开始的动作。 MAX7219与 LED 数码管连接如图 37所示。 abfcgdeD P Y1234567abcdefg8dpdpL3abfcgdeD P Y1234567abcdefg8dpdpL5。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。