BARGRAFY

Gotowe kody obsługi układów elektronicznych udostępnione przez użytkowników forum.
ODPOWIEDZ
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

BARGRAFY

Post autor: niveasoft » 22 kwie 2019, 14:51

Witam. Ktoś prosił mnie o kody do bargrafów z mojej strony rysujących baterie. Więc proszę.
W miarę możliwości umieszczę tu też inne bargrafy.
Te dwa poniżej to gotowe funkcje. Wywołuje się je z wartością "Procent" czyli od 0 do 100 i same rysują.
  1. $regfile = "m32def.dat"
  2. $crystal = 8000000
  3. $hwstack = 80
  4. $swstack = 128
  5. $framesize = 128
  6.  
  7. $sim
  8.  
  9. Config Submode = New
  10.  
  11. Config Lcd = 20x4
  12. Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
  13. Cursor Off
  14. Cls
  15.  
  16. Sub Set_small_batt
  17.  
  18.    Deflcdchar 0 , 31 , 32 , 32 , 32 , 32 , 32 , 32 , 31        ' 0
  19.    Deflcdchar 1 , 31 , 32 , 16 , 16 , 16 , 16 , 32 , 31        ' 1
  20.    Deflcdchar 2 , 31 , 32 , 24 , 24 , 24 , 24 , 32 , 31        ' 2
  21.    Deflcdchar 3 , 31 , 32 , 28 , 28 , 28 , 28 , 32 , 31        ' 3
  22.    Deflcdchar 4 , 31 , 32 , 30 , 30 , 30 , 30 , 32 , 31        ' 4
  23.    Deflcdchar 5 , 31 , 32 , 31 , 31 , 31 , 31 , 32 , 31        ' 5
  24.    Deflcdchar 6 , 3 , 2 , 2 , 2 , 2 , 2 , 2 , 3                ' minus
  25.    Deflcdchar 7 , 24 , 8 , 12 , 12 , 12 , 12 , 8 , 24          ' plus
  26.  
  27. End Sub
  28.  
  29.  
  30. Sub Draw_batt(byval Procent As Byte)
  31.   Local N As Byte
  32.  
  33.    Locate 1 , 13
  34.     If Procent < 100 Then Lcd Spc(1)
  35.      If Procent < 10 Then Lcd Spc(1)
  36.       Lcd Procent
  37.  
  38.   Home : Lcd Chr(6)
  39.  
  40.   Shift Procent , Right , 1
  41.  
  42.   For N = 1 To 10
  43.  
  44.     If Procent > 5 Then Lcd Chr(5) Else Lcd Chr(procent)
  45.  
  46.     If Procent > 5 Then Procent = Procent - 5 Else Procent = 0
  47.  
  48.   Next
  49.  
  50.   Lcd Chr(7)
  51.  
  52. End Sub
  53.  
  54.  
  55. Call Set_small_batt()
  56. Call Draw_batt(100)
  57.  
  58. End
  59.  
  1. $regfile = "m32def.dat"
  2. $crystal = 8000000
  3. $hwstack = 80
  4. $swstack = 128
  5. $framesize = 128
  6.  
  7. $sim
  8.  
  9. Config Submode = New
  10.  
  11. Config Lcd = 20x4
  12. Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
  13. Cursor Off
  14. Cls
  15.  
  16.  
  17. Sub Set_big_batt
  18.  
  19.    Deflcdchar 0 , 31 , 32 , 28 , 28 , 28 , 28 , 28 , 28        ' gora pol
  20.    Deflcdchar 1 , 31 , 32 , 31 , 31 , 31 , 31 , 31 , 31        ' gora full
  21.    Deflcdchar 2 , 28 , 28 , 28 , 28 , 28 , 28 , 32 , 31        ' dol pol
  22.    Deflcdchar 3 , 31 , 31 , 31 , 31 , 31 , 31 , 32 , 31        ' dol full
  23.    Deflcdchar 4 , 24 , 8 , 8 , 14 , 2 , 2 , 2 , 2              ' gora plusa
  24.    Deflcdchar 5 , 2 , 2 , 2 , 2 , 14 , 8 , 8 , 24              ' dol plusa
  25.    Deflcdchar 6 , 31 , 32 , 32 , 32 , 32 , 32 , 32 , 32        ' pusty gora
  26.    Deflcdchar 7 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 31        ' pusty dol
  27.  
  28. End Sub
  29.  
  30. Sub Big_batt(byval Procent As Byte)
  31.  
  32.    Local Copy As Byte , N As Byte
  33.  
  34.    Locate 1 , 13
  35.     If Procent < 100 Then Lcd Spc(1)
  36.      If Procent < 10 Then Lcd Spc(1)
  37.       Lcd Procent
  38.  
  39.        Shift Procent , Right , 1
  40.        Copy = Procent
  41.  
  42.       Home
  43.  
  44.       For N = 1 To 10
  45.  
  46.        If Procent >= 5 Then
  47.         Lcd Chr(1)
  48.        Else
  49.         If Procent >= 3 Then Lcd Chr(0) Else Lcd Chr(6)
  50.        End If
  51.  
  52.        If Procent > 5 Then Procent = Procent - 5 Else Procent = 0
  53.  
  54.       Next
  55.  
  56.       Lcd Chr(4)
  57.  
  58.       Lowerline
  59.  
  60.       For N = 1 To 10
  61.  
  62.        If Copy >= 5 Then
  63.         Lcd Chr(3)
  64.        Else
  65.         If Copy >= 3 Then Lcd Chr(2) Else Lcd Chr(7)
  66.        End If
  67.  
  68.        If Copy > 5 Then Copy = Copy - 5 Else Copy = 0
  69.  
  70.       Next
  71.  
  72.       Lcd Chr(5)
  73.  
  74. End Sub
  75.  
  76.  
  77. Call Set_big_batt()
  78. Call Big_batt(100)
  79.  
  80. End
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
ODPOWIEDZ