$regfile = "M8535.dat"
$crystal = 12000000
$baud = 2400
$hwstack = 32
$swstack = 10
$framesize = 40
Dim Z1(3) As Byte
Dim Ctr As Byte
Dim Dataword As Word
Dim Command As Byte
Dim Dis As String * 20
Dim Calc As Single
Dim Calc2 As Single
Dim Rhlinear As Single
Dim Rhlintemp As Single
Dim Tempc As Single
Dim Tempf As Single
Const C1 = -2.0468
Const C2 = 0.0367
Const C3 = -0.0000015955
Const T1c = .01
Const T2 = .00008
Config Lcdpin = Pin , Db4 = Porta.0 ,
Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.5 , Rs = Porta.4
Config Lcd = 16 * 2
Sck Alias Portd.6
Dataout Alias Portd.7
Datain Alias Pind.7
Declare Sub Getit()
Ddrd =
&B11111111 'Semua
Port B di set output
Config Pind.6 =
Output
'sck
Config Pind.7 =
Output
'datain
Set Dataout
For Ctr = 1 To 12
Set Sck
Waitus 2
Reset Sck
Waitus 2
Next Ctr
Cls
Waitms 20
Cursor Off
Waitms 20
Cls
Do
Z1(1) = 3
Tempf = T1f * Dataword
Tempf = Tempf - 40
Tempc = T1c * Dataword
Tempc = Tempc - 40
Dis = Fusing(tempc , "###.##")
Print "Temperature = " ; Dis
Locate 1 , 1 : Lcd "Temp=" ; Dis ; "
C"
Wait 1
Command = &B00000101
Z1(1) = 5
Call Getit
Calc = C2 * Dataword
Calc2 = Dataword * Dataword
Calc2 = C3 * Calc2
Calc = Calc + C1
Rhlinear = Calc + Calc2
Dis = Fusing(rhlinear , "##.##")
Print "Humidity = " ; Dis
Calc = T2 * Dataword
Calc = Calc + T1c
Calc2 = Tempc - 25
Calc = Calc2 * Calc
Rhlintemp = Calc + Rhlinear
Dis = Fusing(rhlintemp , "##.##")
Locate 2 , 0 : Lcd "Humd=" ; Dis ; "
%"
Wait 1
Loop
Sub Getit()
Local Datavalue As
Word
Local Databyte As
Byte
Set Sck
Reset Dataout
Reset Sck
Set Sck
Set Dataout
Reset Sck
Shiftout Dataout ,
Sck , Command , 1
Ddrd =
&B11111101
Config Pind.7 =
Input
Set Sck
Reset Sck
Waitus 10
Bitwait Pind.7 ,
Reset
Shiftin Datain ,
Sck , Databyte , 1
Datavalue =
Databyte
Z1(2) = Databyte
Ddrd =
&B11111111
Config Pind.7 =
Output
Reset Dataout
Set Sck
Reset Sck
Ddrd =
&B11111101
Config Pind.7 =
Input
Shiftin Datain ,
Sck , Databyte , 1
Z1(3) = Databyte
Shift Datavalue ,
Left , 8
Datavalue =
Datavalue Or Databyte
Dataword =
Datavalue
Ddrd =
&B11111111
Config Pind.7 =
Output
Reset Dataout
Set Sck
Reset Sck
Ddrd =
&B11111101
Config Pind.7 =
Input
Shiftin Datain ,
Sck , Databyte , 1
Ddrd =
&B11111111
Config Pind.7 =
Output
Set Dataout
Set Sck
Reset Sck
End Sub
End
No comments:
Post a Comment