Here is my code and it works.
Good luck!
dht var byte[32]
humidite var byte
haut var byte
bas var byte
temp var byte
x var byte
dht11 var portb.0
main:
TRISB.0 = 0 ' portb.0 = output
dht11 = 1 ' sortie à 1
pause 2000 ' wait 2 sec
dht11 = 0 : pause 25 ' send 20ms low
dht11 = 1 : pauseus 40 ' send 40us hi
PulsIn PORTB.0, 1, haut 'reponse du dht-11
if haut < 15 then goto main
for x = 31 to 0 step-1 'capture des 8 bits entier humidite
PulsIn PORTB.0, 1, dht[x] ' 1
next x
For x = 31 to 0 step-1 'conversion en 1 ou 0: 14 ou 5
if dht[x] > 9 then
dht[x]=1 'partie décimale de la temp toujours à 0
else
dht[x]=0
endif
next x
humidite=dht[31]*128+dht[30]*64+dht[29]*32+dht[28]*16+dht[27]*8+dht[26]*4+dht[25]*2+dht[24]*1
temp=dht[15]*128+ dht[14]*64+dht[13]*32+dht[12]*16+dht[11]*8+dht[10]*4+dht[9]*2+dht[8]*1
LCDOUT $FE,$80,"Humidite = ",#humidite,"% "
LCDOUT $FE,$C0,"Temperature = ",#temp,"C "
goto main
Bookmarks