
Originally Posted by
EarlyBird2
Publish the code you tested please.
Hi, thank you for the response, code that tests are:
Code:
@ errorlevel-306
INCLUDE "modedefs.bas"
Define OSC 20 ' 20MHz
Define ADC_BITS 10 ' Set number of bits in result
Define ADC_CLOCK 3 ' Set clock source (3=rc)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS
dht var byte[32]
humidite var byte
haut var byte
bas var byte
temp var byte
x var byte
dht11 var portb.0
start:
TRISB.0 = 0 '
high dht11
pause 2000 ' wait 2 sec
low dht11 : pause 18' send 20ms low
high dht11 : pauseus 30 ' send 40us hi
TRISB.0 = 0
PulsIn PORTB.0, 1, haut
if haut < 15 then goto start
for x = 31 to 0 step-1
PulsIn PORTB.0, 1, dht[x] ' 1
next x
For x = 31 to 0 step-1
if dht[x] > 9 then
dht[x]=1
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
SEROUT2 PORTC.5,16468,["Humidite = ",#humidite,"% ",10 ,13]
SEROUT2 PORTC.5,16468,["Temperature = ",#temp,"C ",10 ,13]
goto start
Bookmarks