Sunteți pe pagina 1din 2

; initializare

MOV P1, #00


MOV P2, #00
MOV p3, #00
; stingerea afisajelor
MOV P1, #0FFH
SET P2.0
CLR P2.0
SET P2.1
CLR P2.1
SET P2.2
CLR P2.2
SET P2.3
CLR P2.4
SET P2.5
CLR P2.5
SET P2.6
CLR P2.6
SET P2.7
CLR P2.7
VERIFICA_COMUTATOR:
JNB P3.0, APASAT_0
JNB P3.1, APASAT_1
JNB P3.2, APASAT_2
JNB P3.3, APASAT_3
JNB P3.4, APASAT_4
JNB P3.5, APASAT_5
JNB P3.6, APASAT_6
JNB P3.7, APASAT_7
JMP VERIFICA_COMUTATOR
APASAT_0:
CLR P2.0
SET P2.1
SET P2.2
SET P2.3
SET P2.4
SET P2.5
SET P2.6
SET P2.7
MOV P1, #0C0H
JMP VERIFICA_COMUTATOR
APASAT_1:
SET P2.0
CLR P2.1
SET P2.2
SET P2.3
SET P2.4
SET P2.5
SET P2.6
SET P2.7
MOV P1, #0F9H
JMP VERIFICA_COMUTATOR

; stinge toate segmentele de la afisaje prin portul P1

; dezactiveaza toate iesirile pe portul P2


; se verifica pe rand pozitia comutatoarelor
; face salt la label-ul APASAT_0 daca C0 e apasat

; daca se ajunge aici inseamna ca nu a fost apasat niciun


; comutator si se reia procedura
; se dezactiveaza modulul de afisare 0, celelalte fiind active

; se trimite pe portul P1 configuratia corespunzatoare cifrei 0


; se revine la citirea comutatoarelor
; se dezactiveaza modulul de afisare 1, celelalte fiind active

; se trimite pe portul P1 configuratia corespunzatoare cifrei 1

Analog se face si pentru restul comutatoarelor. Configuratia corespunzatoare cifrei ce trebuie afisata se determina in
functie de segmentele ce trebuie aprinse pe modulele de afisare.
Exemplu: pentru afisarea lui 1 trebuie aprinse segmentele b si c (sunt active pe 0 logic) => 1 1 1 1 1 0 0 1 = F9h
pgf edcb a

S-ar putea să vă placă și