基于8051单片机开发的湿度计设计

发布时间:2023-10-30  

  在本文中,单片机开发工程师分享了一个基于8051单片机开发的湿度计,这个方案比较简单,以供单片机初学者学习。


  湿度传感器也称为湿度计,在本单片机方案中,其电路可以以5%的精度感测20%至95%的相对湿度(RH),湿度信息可以显示在16×2 LCD显示屏上。另外,在本单片机方案中,还提供了一个继电器,也就是说当湿度超过某个跳变点时,该继电器将被激活,执行某些操作。


  一、DHT11湿度传感器

  DHT11是一款低成本的湿度兼温度传感器,具有数字输出。电容法用于感测湿度,而热敏电阻用于测量温度。传感器可以以5%的分辨率感测20%至95%的相对湿度。温度测量最高可达50°C,分辨率为2°C。与单片机的通信是通过单线进行的。下图为基本的通信方案:

  基于8051单片机开发的湿度计设计

  与DHT11传感器的来回通信非常容易。DHT11的引脚2连接到单片机的端口引脚。连接方案如下图所示,DHT11的数据引脚(引脚2)需要一个外部10K上拉电阻。

  基于8051单片机开发的湿度计设计

  其通信协议原理如下,单片机首先将宽度为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位,这是相对湿度数据的组成部分。下图为湿度传感器的电路图:

  基于8051单片机开发的湿度计设计

  湿度传感器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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>