Code:
$regfile "m16def.dat"
$crystal = 12000000
Config Graphlcd = 240 * 64 , Dataport = Portb , Controlport = Portd , Ce = 1 , Cd = 0 , Wr = 3 , Rd = 2 , Reset = 4 , Fs = 4 , Mode = 6
Config Timer1 = Timer , Prescale = 256
Deflcdchar 0 , 32 , 4 , 14 , 21 , 4 , 4 , 4 , 32
Deflcdchar 1 , 32 , 4 , 4 , 4 , 21 , 14 , 4 , 32
Deflcdchar 3 , 32 , 4 , 8 , 31 , 31 , 2 , 4 , 32
On Timer1 U_lade
Const Timervorgabe = 18661
Enable Timer1
Enable Interrupts
Dim Hauptmenue As Byte
Dim Ladestrom(4) As Word
Dim Entladestrom(4) As Word
Dim Erhaltungsladung(4) As Byte
Dim Ladeschacht As Byte
Dim Ladespannung(4) As Single
Dim X As Byte , Y As Byte , B As Byte
Dim Menue_y As Byte
Dim Sekunde As Word
For X = 1 To 4
Ladestrom(x) = 500
Entladestrom(x) = 100
Erhaltungsladung(x) = 10
Next X
Hauptmenue:
Hauptmenue = 1
Menue_y = 1
Cls
Cursor Blink
Locate 1 , 1
Lcd "************ Akku Lader Pro ************"
Locate 2 , 1
Lcd "1 - Laden"
Locate 3 , 1
Lcd "2 - Entladen"
Locate 4 , 1
Lcd "3 - Erhaltungsladung"
Locate 5 , 1
Lcd "4 - Akku Formatieren"
Locate 6 , 1
Lcd "5 - Automatik"
Locate 7 , 1
Lcd "6 - Einstellungen"
Locate 8 , 1
Lcd "****************************************"
Do
Locate Y , 1
If Pinc.0 = 0 Then
Menue_y = Menue_y + 1
If Menue_y > 6 Then Menue_y = 6
Gosub Warte
End If
If Pinc.1 = 0 Then
Menue_y = Menue_y - 1
If Menue_y < 1 Then Menue_y = 1
Gosub Warte
End If
Y = Menue_y + 1
If Pinc.2 = 0 Then
Select Case Menue_y
Case 1 : Goto Laden
Case 2 : Goto Entladen
Case 3 : Goto Erhaltungsladung
Case 4 : Goto Formatieren
Case 5 : Goto Automatik
Case 6 : Goto Einstellungen
End Select
End If
Waitms 100
Loop
Laden:
Cls
Cursor Off
Locate 1 , 1
Lcd "Schacht1 Schacht2 Schacht3 Schacht4 "
Locate 3 , 1
Lcd "I=" ; Ladestrom(1) ; "mA"
Locate 3 , 11
Lcd "I=" ; Ladestrom(2) ; "mA"
Locate 3 , 21
Lcd "I=" ; Ladestrom(3) ; "mA"
Locate 3 , 31
Lcd "I=" ; Ladestrom(4) ; "mA"
Locate 4 , 1
Lcd "U=" ; Ladespannung(1) ; "V"
Locate 4 , 11
Lcd "U=" ; Ladespannung(2) ; "V"
Locate 4 , 21
Lcd "U=" ; Ladespannung(3) ; "V"
Locate 4 , 31
Lcd "U=" ; Ladespannung(4) ; "V"
Wait 5
Goto Hauptmenue
Entladen:
Cls
Locate 1 , 1
Lcd "************ Akkus Entladen ************"
Wait 3
Goto Hauptmenue
Erhaltungsladung:
Cls
Locate 1 , 1
Lcd "*********** Erhaltungsladung ***********"
Wait 3
Goto Hauptmenue
Formatieren:
Cls
Locate 1 , 1
Lcd "********** Akkus Formatieren ***********"
Wait 3
Goto Hauptmenue
Automatik:
Cls
Locate 1 , 1
Lcd "********** Automatik-Programm **********"
Wait 3
Goto Hauptmenue
Einstellungen:
Cls
X = 1
Locate 1 , 1
Lcd "************ Einstellungen ************"
Locate 3 , 1
Lcd "I-Laden 1 :" ; Ladestrom(1) ; "mA"
Locate 3 , 20
Lcd "I-Laden 2 :" ; Ladestrom(2) ; "mA"
Locate 4 , 1
Lcd "I-Laden 3 :" ; Ladestrom(3) ; "mA"
Locate 4 , 20
Lcd "I-Laden 4 :" ; Ladestrom(4) ; "mA"
Locate 5 , 1
Lcd "I-Entl. 1 :" ; Entladestrom(1) ; "mA"
Locate 5 , 20
Lcd "I-Entl. 2 :" ; Entladestrom(2) ; "mA"
Locate 6 , 1
Lcd "I-Entl. 3 :" ; Entladestrom(3) ; "mA"
Locate 6 , 20
Lcd "I-Entl. 4 :" ; Entladestrom(4) ; "mA"
Locate 7 , 1
Lcd "I-Erha. 1 :" ; Erhaltungsladung(1) ; "mA"
Locate 7 , 20
Lcd "I-Erha. 2 :" ; Erhaltungsladung(2) ; "mA"
Locate 8 , 1
Lcd "I-Erha. 3 :" ; Erhaltungsladung(3) ; "mA"
Locate 8 , 20
Lcd "I-Erha. 4 :" ; Erhaltungsladung(4) ; "mA"
Wait 5
Goto Hauptmenue
U_lade:
Timer1 = Timervorgabe
Incr Sekunde
Return
Warte:
If Pinc.0 = 0 Then Goto Warte
If Pinc.1 = 0 Then Goto Warte
Return
End 'end program
Lesezeichen