Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $Regfile="m8def.dat"
- $Crystal=4000000
- $hwstack=40
- $swstack=16
- $framesize=32
- Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
- Config Lcd = 16 * 2
- Config Pind.0 = input
- Config PINd.1 = output
- Config Pind.2 = input
- CONFIG PINB.0 = input
- On Timer0 Przerwanie_co_2ms 'deklaracja jaka etykieta obsługuje
- 'przepełnienie od timer0 'zmienna licznikowa
- Dim Licznik As Integer
- DIM ObMin as string *20
- DIM X AS INTEGER
- Enable Interrupts 'odblokowanie globalnych przerwań
- Enable Timer0 'odblokowanie przerwania od przepełnienia timer0
- Timer0 = 6 'wpisanie wartości początkowej 6 do timera,
- 'czyli timer będzie zliczał 250 (256-6) impulsów
- Licznik = 0
- Config Timer1 = Counter , Edge = Falling , Capture Edge = Rising , Noise_Cancel = 1
- On Capture1 C1
- PORTd.0 = 1
- portd.1 = 0
- PORTd.2 = 1
- do
- IF Pind.0 = 0 then
- portd.1 = 1
- endif
- IF Pind.2 = 0 then
- portd.1 = 0
- endif
- loop
- end
- Przerwanie_co_2ms: 'podprogram przerwania od przepełnienia timer0 wywolywanego co 2 ms
- Counter0 = Counter0 + 6 'ustawienie początkowej wartości timera0 poprzez
- 'dodanie do niego wartości 6 (odliczone zostanie
- 'dokładnie kolejne 250 impulsów)
- Incr Licznik 'zwiększenie licznika
- If Licznik = 500 Then 'jeśli zmienna licznik równa się 500 (czyli
- 'odliczone zostało 500*2ms=1sek),
- X = capture1 * 60
- ObMIn = Str(X)
- CLS
- LCD OBMIn
- Capture1 = 0
- endif
- Return
- C1:
- Set Portb.0
- Wait 1
- Return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement