在本文中,单片机开发工程师分享了一个基于8051单片机开发的湿度计,这个方案比较简单,以供单片机初学者学习。
湿度传感器也称为湿度计,在本单片机方案中,其电路可以以5%的精度感测20%至95%的相对湿度(rh),湿度信息可以显示在16×2 lcd显示屏上。另外,在本单片机方案中,还提供了一个继电器,也就是说当湿度超过某个跳变点时,该继电器将被激活,执行某些操作。
一、dht11湿度传感器
dht11是一款低成本的湿度兼温度传感器,具有数字输出。电容法用于感测湿度,而热敏电阻用于测量温度。传感器可以以5%的分辨率感测20%至95%的相对湿度。温度测量最高可达50°c,分辨率为2°c。与单片机的通信是通过单线进行的。下图为基本的通信方案:
与dht11传感器的来回通信非常容易。dht11的引脚2连接到单片机的端口引脚。连接方案如下图所示,dht11的数据引脚(引脚2)需要一个外部10k上拉电阻。
其通信协议原理如下,单片机首先将宽度为18ms的低电平信号发送到dht11。收到此信号后,单片机拉起通信线,等待dht11的响应。它最多需要2到40us。然后dht11拉低通讯线,并保持低电平80uss。然后dht11拉高线路,并保持高电平80us。然后dht将线拉低50us,下一个高脉冲将成为数据的第一位。数据以8位突发发送。脉冲串的每个高脉冲表示一个数据信号。数据位之间的50us低信号只是间隔。数据位的逻辑通过测量其宽度来确定。26至28us宽的脉冲表示“低”,而70us宽的脉冲表示“高”。简单来说窄于50us的脉冲可被视为“低”,宽于50us的脉冲可被视为“高”。数据脉冲串的前8位代表相对湿度的整数值,后8位代表相对湿度的十进制值,后8位代表温度数据的整数值,后8位代表十进制值对于dht11,十进制值始终为零,我们仅在此方案中测量相对湿度。因此,我们只需要关注数据的前8位,这是相对湿度数据的组成部分。下图显示了湿度传感器的电路图。后8位代表相对湿度的十进制值,后8位代表温度数据的整数值,后8位代表温度数据的十进制值,对于dht11,十进制值始终为零,我们正在测量仅在此方案中的相对湿度。因此,我们只需要关注数据的前8位,这是相对湿度数据的组成部分。下图显示了湿度传感器的电路图。后8位代表相对湿度的十进制值,后8位代表温度数据的整数值,后8位代表温度数据的十进制值,对于dht11,十进制值始终为零,我们正在测量仅在此方案中的相对湿度。因此,我们只需要关注数据的前8位,这是相对湿度数据的组成部分。下图显示了湿度传感器的电路图。因此,我们只需要关注数据的前8位,这是相对湿度数据的组成部分。下图显示了湿度传感器的电路图。因此,我们只需要关注数据的前8位,这是相对湿度数据的组成部分。下图为湿度传感器的电路图:
湿度传感器dht11连接到8051单片机的p3.1。r8拉起dht11和8051之间的通信线。该继电器由单片机的p2.0驱动。晶体管q1切换继电器。r0是上拉电阻,r7限制q1的基极电流。d5只是一个续流二极管。lcd显示器的数据线连接到单片机的端口0。控制线rs,r/e和e分别连接到单片机的p2.7,p2.6和p2.5引脚。r4设置显示的对比度。r5限制流过背光led的电流。c9是一个旁路电容器。c8、c10和x1与时钟电路相关联。c11、r6和s2构成复位电路。
二、源代码
rs equ p2.7
rw equ p2.6
e equ p2.5
org 000h
mov dptr,#lut
setb p3.5
clr p2.0
mov tmod,#00100001b
mov tl1,#00d
acall dint
acall text1
main: mov r1,#8d
setb p3.5
clr p3.5
acall delay1
setb p3.5
here:jb p3.5,here
here1:jnb p3.5,here1
here2:jb p3.5,here2
loop:jnb p3.5,loop
rl a
mov r0,a
setb tr1
here4:jb p3.5,here4
clr tr1
mov a,tl1
subb a,#50d
mov a,r0
jb psw.7, next
setb acc.0
sjmp esc
next:clr acc.0
esc: mov tl1,#00d
clr psw.7
djnz r1,loop
acall dint
acall text1
acall line2
acall text2
acall hmdty
acall check
acall delay2
ljmp main
delay1: mov th0,#0b9h
mov tl0,#0b0h
setb tr0
here5: jnb tf0,here5
clr tr0
clr tf0
ret
delay2:mov r1,#112d
back:acall delay1
djnz r1,back
ret
check:mov a,r0
mov b,#65d
subb a,b
jb psw.7,next1
acall text3
setb p2.0
sjmp esc1
next1:acall text4
clr p2.0
esc1:clr psw.7
ret
cmd: mov p0,a
clr rs
clr rw
setb e
clr e
acall delay
ret
display:mov p0,a
setb rs
clr rw
setb e
clr e
acall delay
ret
hmdty:mov a,r0
mov b,#10d
div ab
mov r2,b
mov b,#10d
div ab
acall ascii
acall display
mov a,b
acall ascii
acall display
mov a,r2
acall ascii
acall display
mov a,#“%”
acall display
ret
text1: mov a,#“h”
acall display
mov a,#“y”
acall display
mov a,#“g”
acall display
mov a,#“r”
acall display
mov a,#“o”
acall display
mov a,#“m”
acall display
mov a,#“e”
acall display
mov a,#“t”
acall display
mov a,#“e”
acall display
mov a,#“r”
acall display
ret
text2: mov a,#“r”
acall display
mov a,#“h”
acall display
mov a,#“ ”
acall display
mov a,#“=”
acall display
mov a,#“ ”
acall display
ret
text3: mov a,#“ ”
acall display
mov a,#“ ”
acall display
mov a,#“o”
acall display
mov a,#“n”
acall display
ret
text4:mov a,#“ ”
acall display
mov a,#“o”
acall display
mov a,#“f”
acall display
mov a,#“f”
acall display
ret
dint:mov a,#0ch
acall cmd
mov a,#01h
acall cmd
mov a,#06h
acall cmd
mov a,#83h
acall cmd
mov a,#3ch
acall cmd
ret
line2:mov a,#0c0h
acall cmd
ret
delay: clr e
clr rs
setb rw
mov p0,#0ffh
setb e
mov a,p0
jb acc.7,delay
clr e
clr rw
ret
ascii: movc a,@a+dptr
ret
lut: db 48d
db 49d
db 50d
db 51d
db 52d
db 53d
db 54d
db 55d
db 56d
db 57d
end
波兰:人脸识别网站PimEyes到底有多强大?
DacomK6HPro蓝牙耳机评测 表现尤为亮眼
RA6快速设计指南 [6] 复位要求和复位电路 (上)
5G+智能制造有望成为5G杀手级应用之一
基于MSP430的石油井下压力测试系统的设计
基于8051单片机开发的湿度计设计
智能数显压力变送器手动清零的方法
纳微半导体公布2023年第三季度财务业绩
LPWA的应用与发展 满足低功耗广域网智能应用的解决方案
美国无线通信和CTIA敦促FCC就3.5 GHz和3.7-4.2 GHz频段频谱分配做出行动
Socionext新出了一款车载毫米波雷达
CPU Socket连接器供应商得润电子与世强签理代理协议
什么是智能电子配线架?智能电子配线架如何体现它的作用及品质?
单片机实现自控飞艇舵控系统
新能源系统仿真测试解决方案
思必驰建设“语言计算国家新一代人工智能开放创新平台”
智慧养殖远程管理在线监测系统解决方案,就是稳定可靠
传感器技术在物联网领域中的应用是怎样的
华为携两款芯片进军AI芯片领域
基于PIC单片机的CAN总线扩展技术