Guest User

Untitled

a guest
Jun 25th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. $regfile = "m8def.dat"
  2. $crystal = 8000000
  3. $hwstack = 40
  4. $swstack = 16
  5. $framesize = 32
  6.  
  7.  
  8.  
  9.  
  10.  
  11. Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portb.1 , E = Portc.1 , Rs = Portc.0
  12. Config Lcd = 16 * 2
  13. Config Adc = Single , Prescaler = Auto , Reference = Internal
  14.  
  15.  
  16. Dim Sekundy As Integer
  17. Dim Minuty As Integer
  18. Dim Godziny As Integer
  19. Dim Sek As Integer
  20.  
  21.  
  22. Dim V1 As Single
  23. Sekundy = 0
  24. Minuty = 0
  25. Godziny = 0
  26.  
  27. Config Timer0 = Timer , Prescale = 8 'deklaracja timera jako czasomierza
  28. 'z prescalerem 64
  29. On Timer0 Przerwanie_co_2ms 'deklaracja jaka etykieta obsługuje
  30. 'przepełnienie od timer0
  31. Dim Licznik As Integer 'zmienna licznikowa
  32. Enable Interrupts 'odblokowanie globalnych przerwań
  33. Enable Timer0 'odblokowanie przerwania od przepełnienia timer0
  34. Timer0 = 6 'wpisanie wartości początkowej 6 do timera,
  35. 'czyli timer będzie zliczał 250 (256-6) impulsów
  36. Licznik = 0 'wyzerowanie zmiennej licznikowej
  37.  
  38. Do
  39.  
  40. Cls
  41. If Sekundy <= 9 And Minuty < 10 And Godziny < 10 Then
  42. Lcd "0" + Godziny + ":0" + Minuty + ":0" + Sekundy
  43. End If
  44. If Sekundy > 9 And Minuty < 10 And Godziny < 10 Then
  45. Lcd "0" + Godziny + ":0" + Minuty + ":" + Sekundy
  46. End If
  47. If Sekundy > 9 And Minuty > 9 And Godziny < 10 Then
  48. Lcd "0" + Godziny + ":" + Minuty + ":" + Sekundy
  49. End If
  50. If Sekundy > 9 And Minuty > 9 And Godziny > 9 Then
  51. Lcd Godziny + ":" + Minuty + ":" + Sekundy
  52. End If
  53. Cursor Off Noblink
  54. Waitms 200
  55.  
  56. Loop
  57. End 'koniec programu
  58. Przerwanie_co_2ms: 'podprogram przerwania od przepełnienia timer0 wywolywanego co 2 ms
  59. Counter0 = Counter0 + 6 'ustawienie początkowej wartości timera0 poprzez
  60. 'dodanie do niego wartości 6 (odliczone zostanie
  61. 'dokładnie kolejne 250 impulsów)
  62. Incr Licznik 'zwiększenie licznika
  63. If Licznik = 500 Then 'jeśli zmienna licznik równa się 500 (czyli
  64. 'odliczone zostało 500*2ms=1sek),
  65. Incr Sekundy
  66. Licznik = 0 'wyzeruj zmienną licznik
  67. End If
  68. If Sekundy = 60 Then
  69. Incr Minuty
  70. Sekundy = 0
  71. End If
  72. If Minuty = 60 Then
  73. Incr Godziny
  74. Minuty = 0
  75. End If
  76.  
  77. Return 'powrót z przerwania
Advertisement
Add Comment
Please, Sign In to add comment