KOLEGIUM KARKONOSKIE WYDZIAŁ TECHNICZNY
Laboratorium Techniki Cyfrowej
i Mikroprocesorowej 3. Dynamiczne sterowanie wskaźników LED za pomocą linii portu PI.
Utworzyć program realizujący funkcje licznika 1 z 8. Stan licznika monitorowany diodami LED podłączonymi do linii P1.0 - PI.7.
Zmiana stanu licznika powinna następować po czasie np. 1 sekundy.
Przed napisaniem programu realizującego podany licznik przeanalizować poniższy program.
Dynamiczne sterowanie wybrana linia portu PI.
Diody skojarzone z parzystymi liniami portu PI, tzn P1.0, P1.2, P1.4 i P1.6, są zapalane i gaszone co /T= 0.1 s (przy rezonatorze kwarcowym 12 MHz).
/ / SterowanieJPl:
łlOlO 1010B OPÓŹNIENIE P1,#0000 0000B
opóźnienie
STEROWANIE PI
MOV L(
OV
LCALL
SJMP
;P1<= 1010 1010B
; wywołanie podprogramu opóźnienia T sekund,
;P1<= 0000 0000B
;wywołanie podprogramu opóźnienia T sekund ;powtórzenie programu
OPÓŹNIENIE:;podprogram opóźnienia zrealizowany jako pętla w pętli; pętlę wewnętrzną tworzy ;rejestr R7 (256 powtórzeń instrukcji DJNZ R7,Skok_2), pętlę zewnętrzną tworzy ;rejestr R6 (194 powtórzenia instrukcji MOV R7,#0, pętli wewnętrznej i instrukcji ;DJNZ R6,Skok_l),
;czas trwania poszczególnych instrukcji wynosi:
MOVR6,#194 MOV R7,#0 DJNZ R7,Skok_2 DJNZ R6,Skok_l RET
MOV |
R6,#194 |
Skok 1: | |
MOV |
R7,#0 |
Skok_2: | |
DJNZ |
R7,Skok_2 |
DJNZ |
R6,Skok_l |
RET |
1 cykl maszynowe,
1 cykl maszynowy,
2 cykle maszynowe,
2 cykle maszynowe,
2 cykle maszynowe,
:R6<= 194
pętla
□
zewnętrzna
pętla
wewnętrzna
zakończenie podprogramu
;czas wywołania (instrukcja LCALL), trwania i powrotu z podprogramu (instrukcja RET): ; 2 + 1 +194*(1 + 256*2 + 2) + 2 = 99.915 cykli maszynowych = 99.915 ms = 0.1 s ; po zakończeniu podprogramu zerowa zawartość rejestrów R6 i R7