PODSTAWY TECHNIK MIKROPROCESOROWYCH
Laboratorium 3 06.03.2012 TP wt 13:15-14:45
Temat: Porty równoległe. Obsługa klawiatury matrycowej zestawu ZD537.
Zadania do wykonania
Zadanie 1.
Program odczytu z klawiatury metodą skaningową(numery kolumny i wiersza klawisza wyświetlić na LED)
Zadanie 2.
Podprogram zwracający (w Akumulatorze i na LED) numer/od naciśnietego klawisza.
Zadanie 3.
Program realizujący funkcję kalkulatora( np. dodawania dwu liczb wpisanych z klawiatury).
REALIZACJA ZADAŃ
Ad.1
$NOMOD51
$INCLUDE (REG517.INC)
CSEG AT 0000h
PETLA:
MOV R3,#4 ; licznik wierszy, przesyłanie do R3 liczby 4
MOV R1,#07Fh ; ustawienie wiersza początkowego
JZ PETLA1
PETLA1:
MOV P5,R1
MOV A,P7 ; wysłanie stanu z portu P7 do akumulatora
XRL A,#0FFh
JZ PETLA2
MOV A,P7 ; wysłanie stanu z portu P7 do akumulatora
ANL A,R1 ; maska zerująca 4 najstarsze bity akumulatora
MOV P1,A ; wysłanie zawartości akumulatora na port P1
PETLA2:
MOV A,R1
RR A
MOV R1,A
DJNZ R3,PETLA1
SJMP PETLA ; pętla powrotu na początek programu
JMP $
END
Ad.2
$NOMOD51
$INCLUDE(REG517.INC)
CSEG AT 0
MOV R2,#0 ; numer sprawdzanego klawisza
MOV R3,#4 ; licznik petli, przesyłanie do R3 liczby 4
MOV P5,#0EFH ; wysterowanie portu P5
MOV A,P7 ; wysłanie stanu z portu P7 do akumulatora
ety1:
RRC A ; przesuniecie bitowe w prawo
JNC WYJSCIE ; skok na koniec, gdy flaga C=0
INC R2
DJNZ R3,PETLA1 ; R3=R3-1, jeśli R3!=0 to skok do ety1
MOV R3,#4
MOV P5,#0DFH
MOV A,P7
SETB C ; ustawienie C=1
CPL C ; zmiana stanu C (wyzerowanie)
ety2:
RRC A
JNC WYJSCIE
INC R2
DJNZ R3,ety2
MOV R3,#4
MOV P5,#0BFH
MOV A,P7
SETB C
CPL C
ety3:
RRC A
JNC WYJSCIE
INC R2
DJNZ R3,ety3
MOV R3,#4
MOV P5,#07FH
MOV A,P7
SETB C
CPL C
ety4:
RRC A
JNC WYJSCIE
INC R2
DJNZ R3, ety4
WYJSCIE:
MOV A,R2 ; przepisanie numeru klawisza do akumulatora
CPL A
MOV P1,A ; wyświetlenie na diodach LED numeru w kodzie NKB
JMP $
END
Ze względu na identyczne działanie pozostałych pętli pominięte zostały komentarze.
Uwagi końcowe
Podczas zajęć laboratoryjnych udało się wykonać pierwszy podpunkt z przewidzianych trzech. Wykonany został poprawnie, co sprawdzić można było na zestawie ćwiczeniowym. Podpunkt drugi został rozpoczęty, jednak stopień zaawansowania prac nie pozwolił na przetestowanie jego działania. Ćwiczenie to zostało dokończone w domu, jednak ze względu na brak zestawu ćwiczeniowego nie mogło zostać w pełni przetestowane.
Podpunkt trzeci nie został wykonany ze względu na brak pojęcia jak takowy należałoby zaimplementować.