Advertisement
Guest User

Untitled

a guest
Jun 11th, 2019
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $Regfile="m8def.dat"
  2. $Crystal=1000000
  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.0 , Rs = Portc.1
  8.  
  9. Config Lcd = 16 * 2
  10.  
  11.  
  12. Config PORTd.0 = input
  13. Config PORTd.1 = output
  14. Config PORTd.2 = input
  15. CONFIG PORTB.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. On Capture1 B0
  31.  
  32.  
  33. PORTd.0 = 1
  34. portd.1 = 0
  35. PORTd.2 = 1
  36.  
  37.  
  38.  
  39.  
  40. do
  41.  
  42.  
  43.     IF Pind.0 = 0 then
  44.     portd.1 = 1
  45.     endif
  46.  
  47.     IF Pind.2 = 0 then
  48.     portd.1 = 0
  49.     endif
  50.  
  51. loop
  52. end
  53. Przerwanie_co_2ms:                                          'podprogram przerwania od przepełnienia timer0 wywolywanego co 2 ms
  54.  Counter0 = Counter0 + 6                                    'ustawienie początkowej wartości timera0 poprzez
  55. 'dodanie do niego wartości 6 (odliczone zostanie
  56. 'dokładnie kolejne 250 impulsów)
  57.  Incr Licznik                                               'zwiększenie licznika
  58.  If Licznik = 500 Then                                      'jeśli zmienna licznik równa się 500 (czyli
  59. 'odliczone zostało 500*2ms=1sek),
  60.  X = capture1 * 60
  61.  ObMIn = Str(X)
  62.  CLS
  63.  LCD   OBMIn
  64.  Capture1 = 0
  65.  endif
  66. Return
  67.  
  68. B0:
  69. Set Portb.0
  70. Return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement