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ć.