Program do szeregowego sterownika urzadzen BAS


'Program do szeregowego sterownika urzadzen

Config Sda = P3.5
Config Scl = P3.4
$baud = 9600

Declare Sub Zalacz
Declare Sub Wr_stan
Declare Sub Zap_eeprom(adres As Byte , Value As Byte)
Declare Sub Od_eeprom(adres As Byte , Value As Byte)

Dim Stan(8) As Byte
Dim Adres As Byte
Dim Value As Byte
Dim V As Byte
Dim Z As Byte
Dim I As Byte


V = 0
Z = 0
Reset P1.2
Reset P1.3
Reset P1.4
Reset P1.5
Reset P1.6
Reset P1.7
Reset P3.2
Reset P3.3
Adres = 50
Call Od_eeprom(adres , Value) 'Instrukcje odczytu konfiguracji
If Value <> 10 Then ' z pamieci eeprom
Value = 10
Call Zap_eeprom(adres , Value)
For I = 1 To 8
Stan(i) = "z"
Value = Stan(i)
Call Zap_eeprom(i , Value)
Next I
Else
For I = 1 To 8
Call Od_eeprom(i , Value)
Stan(i) = Value
Z = Stan(i)
Call Zalacz
Next I
End If

Do ' Instrukcja czytania danych z portu
Input V
Z = V + 48
Call Zalacz
If Z = "s" Then
Call Wr_stan
End If
Loop
End

Sub Wr_stan: ' Procedura wysylania stanu sterownika
For I = 1 To 8
Waitms 100
Print Chr(stan(i))
Next I
End Sub

Sub Zalacz ' Procedura obslugi urzadzen
Select Case Z
Case "1" :
Set P1.7
Stan(1) = "1"
Value = Stan(1)
Call Zap_eeprom(1 , Value )
Print "p"
Case "0" :
Reset P1.7
Stan(1) = "0"
Value = Stan(1)
Call Zap_eeprom(1 , Value )
Print "p"
Case "3" :
Set P1.6
Stan(2) = "3"
Value = Stan(2)
Call Zap_eeprom(2 , Value )
Print "p"
Case "2" :
Reset P1.6
Stan(2) = "2"
Value = Stan(2)
Call Zap_eeprom(2 , Value )
Print "p"
Case "5" :
Set P1.5
Stan(3) = "5"
Value = Stan(3)
Call Zap_eeprom(3 , Value )
Print "p"
Case "4" :
Reset P1.5
Stan(3) = "4"
Value = Stan(3)
Call Zap_eeprom(3 , Value )
Print "p"
Case "7" :
Set P1.4
Stan(4) = "7"
Value = Stan(4)
Call Zap_eeprom(4 , Value )
Print "p"
Case "6" :
Reset P1.4
Stan(4) = "6"
Value = Stan(4)
Call Zap_eeprom(4 , Value )
Print "p"
Case "9":
Set P1.3
Stan(5) = "9"
Value = Stan(5)
Call Zap_eeprom(5 , Value )
Print "p"
Case "8" :
Reset P1.3
Stan(5) = "8"
Value = Stan(5)
Call Zap_eeprom(5 , Value )
Print "p"
Case "b" :
Set P1.2
Stan(6) = "b"
Value = Stan(6)
Call Zap_eeprom(6 , Value )
Print "p"
Case "a" :
Reset P1.2
Stan(6) = "a"
Value = Stan(6)
Call Zap_eeprom(6 , Value )
Print "p"
Case "d" :
Set P3.2
Stan(7) = "d"
Value = Stan(7)
Call Zap_eeprom(7 , Value )
Print "p"
Case "c" :
Reset P3.2
Stan(7) = "c"
Value = Stan(7)
Call Zap_eeprom(7 , Value )
Print "p"
Case "f" :
Set P3.3
Stan(8) = "f"
Value = Stan(8)
Call Zap_eeprom(8 , Value )
Print "p"
Case "e" :
Reset P3.3
Stan(8) = "e"
Value = Stan(8)
Call Zap_eeprom(8 , Value )
Print "p"
End Select
End Sub

Sub Zap_eeprom(adres As Byte , Value As Byte) ' zapis danych do pamieci eeprom
I2cstart
I2cwbyte 160
I2cwbyte Adres
I2cwbyte Value
I2cstop
Waitms 10
End Sub

Sub Od_eeprom(adres As Byte , Value As Byte) ' odczyt pamieci eeprom
I2cstart
I2cwbyte 160
I2cwbyte Adres
I2cstart
I2cwbyte 161
I2crbyte Value , 9
I2cstop
End Sub

Wyszukiwarka

Podobne podstrony:
2003 06 Szeregowy sterownik urządzeń
Urządzenie do zdalnego sterowania modeli typu
programator do Amigi
Sterownik urządzeń elektrycznych za pomocą portu LPT
program do sp
Darmowy program do projektowania szaf wnekowych
2 Sprzętowa i programowa synteza układów sterowania logicznegoid 804
Programowanie pilotów zdalnego sterowania(1)
program do zabawy w czytanie
programiki do elektroniki SPIS
Program do obliczania pól figur geometrycznych Polek 1 2 pl
Program do projektowania ulozenia kostki brukowej

więcej podobnych podstron