Sekundnik dla czestotliwosci 2

; Sekundnik dla czestotliwosci 2.098 MHz

 

; Wykorzystane rejestry

; R7 - zlicza wystapienia TF0

; R6 - jednosci

; R5 - dziesiatki

; R4 - zlicza wystapienia TF1

 

;$MOD52 ; predefiniowane symbole - niepotrzebne na emulatorze

 

; Zmienna cykl sterujaca iloscia obslugiwanych przerwan od timera przed inkrementacja sekundnika

cykl:   equ     #15     ; sterowanie licznikiem czekania

                        ; 32 dla 2Mhz, 15 dla 1Mhz (dla emulatora)

cykl2:  equ     #15     ; sterowanie licznikiem czekania

                        ; 1 dla 2Mhz, 15 dla 1Mhz (dla emulatora)

                       

org     0000h   ; Poczatek pamieci

        sjmp start ; skok do poczatku programu

 

; Procedura oblsugi przerwania od T0

org 000bh       ; Adres obslugi przerwania od T0

        sjmp przerwanie_T0 ; skok do obslugi przerwania

 

org 001bh       ; Adres obslugi przerwania od T1

        sjmp przerwanie_T1 ; skok do obslugi przerwania

 

; Program obslugi przerwania licznika T0

przerwanie_T0:

        clr TF0 ; Wyzerowanie falgi przerwania od T0

        djnz R7, koniec_przerwania_od_T0        ; Jezeli nie minela 1s wyjdz z obslugi przerwania

        mov R7, #cykl   ; Nowy cykl odliczania

        ; Sprawdzamy czy licznik jednosci wynosi 10

        inc R6  ; Inkrementacja jednosci

        cjne R6, #10, koniec_przerwania_od_T0

        mov R6, #0      ; Zerujemy jednosci

        ; Sprawdzamy czy licznik dziesiatek wynosi 6

        inc R5  ; Inkrementacja dziesiatek

        cjne R5, #6, koniec_przerwania_od_T0

        mov R5, #0      ; Zerujemy dziesiatki

koniec_przerwania_od_T0:

        reti    ; Powrót z programu obslugi przerwania

 

; Program obslugi przerwania licznika T1

przerwanie_T1:

        clr TF1 ; Wyzerowanie falgi przerwania od T1

        dec R4  ; Zmniejsz licznik cyklu

        reti   

 

; Opoznienie wyswietlania na wyswietlaczach 7-segmentowych - 1ms

opoznienie:

        cjne R4, #0, opoznienie ; Skaczemy poki cykl sie nie wyzeruje

        mov R4, #cykl2  ; Licznik cyklu 1ms    

        mov TH1, #0aah  ; Ustawienie starszej czesci licznika T1

        mov TL1, #0abh  ; Ustawienie mlodszej czesci licznika T1

        ret

 

; Wlasciwy program     

start:

; Inicjalizacja pracy z T0 i T1

        ; Zezwolenia na przerwania

        setb EA ; Globalne zezwolenie na przerwania

        setb ET0        ; Zezwolenie na przerwania od T0

        setb ET1        ; Zezwolenie na przerwania od T1

        ; Ustawienie T0 i T1

        mov TMOD, #00010001b    ; T0 i T1 - mod 1 (16bit), bez INT0, inkrementowane w każdym cyklu maszynowym

        mov TH0, #0     ; Wyzerowanie starszej czesci licznika T0

        mov TL0, #0     ; Wyzerowanie mlodszej czesci licznika T0

        mov TH1, #0aah  ; Ustawienie starszej czesci licznika T1

        mov TL1, #0abh  ; Ustawienie mlodszej czesci licznika T1

        ; Ustawienie rejestrow

        mov R7, #cykl   ; Licznik pierwszego cyklu 1s

        mov R4, #cykl2  ; Licznik pierwszego cyklu 1ms

        mov R6, #0      ; Wyzerowanie jednosci

        mov R5, #0      ; Wyzerowanie dziesiatek

 

        setb TR0        ; Wlaczenie licznika T0

        setb TR1        ; Wlaczenie licznika T1

; Petla nieskonczona

        praca:

                ; Jednosci

                mov a, R6       ; Czytamy rejestr jednosci

                anl a, #00001111b       ; Maskujemy wyswietlana liczbe

                mov P2, a               ; Wysylamy na port P2

                lcall opoznienie

                ; Dziesiatki

                mov a, R5       ; Czytamy rejestr dziesiatek

                anl a, #00001111b       ; Maskujemy wyswietlana liczbe

                orl a, #00010000b       ; Zmiana wyswietlacza

                mov P2, a               ; Wysylamy na port P2

                lcall opoznienie

                sjmp praca

end


Wyszukiwarka

Podobne podstrony:
Częstotliwości dla kolei woj Łódzkie
bojar pomocne od ponki, Co opisuje liniowa poprawka częstotliwości dla obwodu szeregowego uzależnion
Tabela częstości i sum czasów trwania stanów wody dla wodowskazu, Ochrona Środowiska UR Kraków, Rok
Atom- Badanie charakterystyki licznika scyntylacyjn dla prom, POLITECHNIKA CZĘSTOCHOWSKA
Dieta dla zapracowanych4, ZDROWIE A CZĘSTO ZYCIE, Diety
Tabela częstotliwości dla pogotowie ratunkowe woj Łódzkie
Obliczenie częstotliwości rezonansowej dla rezonansu równoległego
Dieta dla 40-latek, ZDROWIE A CZĘSTO ZYCIE, Diety
Liniowa poprawka częstotliwości dla obwodu rezonansowego przedstawia
czestotliwosc 10 sekundowa
dla studentów, Przód, Politechnika Częstochowska
CB tabeli częstotliwości dla łączności radiowej morskich
DLACZEGO DZIECI CZĘSTO SIĘ NUDZĄ, scenariusze, tematy dla rodziców
Wyniki 1g(WEiP-2009), Rozkład częstości dla A, obserwacje 1-82
Badanie charakterystyki licznika scyntylacyjnego dla promieni a. Wyznaczanie zasięgu cząstek a w pow
Elektronika dla informatyków - ćwiczenia, Ćwiczenia charakterystyki częstotliwosciowe, Zadanie 1
Częstotliwości dla nasłuchowców
często na forum pojawiają się różne skomplikowane operacje związane z wymyśleniem dla kogoś

więcej podobnych podstron