Colocviu Lab
Colocviu Lab
Având în vedere că circuitul Z80-PIO este plasat la adresa de bază A8h în spațiul de adrese I/O și că pinul
B/A este conectat la A1, respectiv pinul C/D la A0, tabelul de adrese pentru PIO va fi următorul:
Pentru a seta porturile, trebuie să configurăm modurile de operare ale porturilor și să trimitem valorile
corespunzătoare pentru afișarea cifrei 4.
Cuvinte de comandă:
Specificăm că toate liniile PA6 - PA0 sunt ieșiri. Cuvântul de mod pentru port A va fi 0
(toate ieșirile).
Cuvântul de mod pentru Port B:
Specificăm că linia PB3 este ieșire pentru catod comun. Cuvântul de mod pentru port B
va fi 0 (toate ieșirile).
Pentru afișarea cifrei 4 pe display-ul cu 7 segmente conectat în conexiune catod comun, trebuie să
aprindem segmentele b, c, f, g.
a PA0 0
b PA1 1
c PA2 1
d PA3 0
e PA4 0
f PA5 1
g PA6 1
Valoarea ce trebuie trimisă pe Portul A pentru afișarea cifrei 4 va fi: 0111100 în binar, sau 3Ch în
hexazecimal.
Pentru a obține o frecvență de 40 kHz dintr-o frecvență de 5 MHz, trebuie să calculăm constanta de timp
(TC).
2. Configurarea Z80-CTC
Z80-CTC are patru canale, dar vom folosi doar canalul 0 conform cerinței.
Un cuvânt de comandă pentru Z80-CTC este format dintr-un byte cu următoarea structură:
OUT (31h), A ; Trimitem constanta de timp la adresa 31h (Canal 0 - Time Constant)
1. Inițializare:
2. Buclă principală:
Dacă butonul este apăsat (P1.7 = 0), stinge LED-ul (P1.2 = 1).
Dacă butonul nu este apăsat (P1.7 = 1), aprinde LED-ul (P1.2 = 0).
; Program pentru 8051 - Aprinderea unui LED când butonul nu este apăsat
START: MOV P1, #80H ; Setează P1.2 ca ieșire (1) și P1.7 ca intrare (0)
MAIN: JB P1.7, LED_ON ; Dacă P1.7 (buton) este 1 (neapăsat), sare la LED_ON