Advertisement
Guest User

Untitled

a guest
Jun 1st, 2019
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $Regfile="m8def.dat"
  2. $Crystal=4000000
  3. $hwstack=40
  4. $swstack=16
  5. $framesize=32
  6.  
  7. Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
  8.  
  9. Config Lcd = 16 * 2
  10.  
  11.  
  12. Config Pind.0 = input
  13. Config PINd.1 = output
  14. Config Pind.2 = input
  15. CONFIG PINB.0 = input
  16.  
  17.  
  18. On Timer0 Przerwanie_co_2ms                                 'deklaracja jaka etykieta obsługuje
  19. 'przepełnienie od timer0                                     'zmienna licznikowa
  20. Dim Licznik As Integer
  21. DIM ObMin as string  *20
  22. DIM X AS INTEGER
  23. Enable Interrupts                                           'odblokowanie globalnych przerwań
  24. Enable Timer0                                               'odblokowanie przerwania od przepełnienia timer0
  25. Timer0 = 6                                                  'wpisanie wartości początkowej 6 do timera,
  26. 'czyli timer będzie zliczał 250 (256-6) impulsów
  27. Licznik = 0
  28.  
  29. Config Timer1 = Counter , Edge = Falling , Capture Edge = Rising ,  Noise_Cancel = 1
  30.  
  31.  
  32. On Capture1 C1
  33.  
  34.  
  35. PORTd.0 = 1
  36. portd.1 = 0
  37. PORTd.2 = 1
  38.  
  39.  
  40.  
  41.  
  42. do
  43.  
  44.     IF Pind.0 = 0 then
  45.     portd.1 = 1
  46.     endif
  47.  
  48.     IF Pind.2 = 0 then
  49.     portd.1 = 0
  50.     endif
  51.  
  52. loop
  53. end
  54. Przerwanie_co_2ms:                                          'podprogram przerwania od przepełnienia timer0 wywolywanego co 2 ms
  55.  Counter0 = Counter0 + 6                                    'ustawienie początkowej wartości timera0 poprzez
  56. 'dodanie do niego wartości 6 (odliczone zostanie
  57. 'dokładnie kolejne 250 impulsów)
  58.  Incr Licznik                                               'zwiększenie licznika
  59.  If Licznik = 500 Then                                      'jeśli zmienna licznik równa się 500 (czyli
  60. 'odliczone zostało 500*2ms=1sek),
  61.  X = capture1 * 60
  62.  ObMIn = Str(X)
  63.  CLS
  64.  LCD   OBMIn
  65.  Capture1 = 0
  66.  endif
  67. Return
  68.  
  69. C1:
  70. Set Portb.0
  71. Wait 1
  72. Return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement