PODSTAWY TECHNIK MIKROPROCESOROWYCH, Studia Pwr INF, Semestr IV, PTM


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,ety1 ; 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 ; przesuniecie bitowe w prawo

JNC WYJSCIE ; skok na koniec, gdy flaga C=0

INC R2 ; skok na koniec, gdy flaga C=0

DJNZ R3,ety2 ; R3=R3-1, jeśli R3!=0 to skok do ety2

MOV R3,#4

MOV P5,#0BFH

MOV A,P7

SETB C

CPL C

ety3:

RRC A ; przesuniecie bitowe w prawo

JNC WYJSCIE ; skok na koniec, gdy flaga C=0

INC R2 ; skok na koniec, gdy flaga C=0

DJNZ R3,ety3 ; R3=R3-1, jeśli R3!=0 to skok do ety3

MOV R3,#4

MOV P5,#07FH

MOV A,P7

SETB C

CPL C

ety4:

RRC A ; przesuniecie bitowe w prawo

JNC WYJSCIE ; skok na koniec, gdy flaga C=0

INC R2 ; skok na koniec, gdy flaga C=0

DJNZ R3, ety4 ; R3=R3-1, jeśli R3!=0 to skok do 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

Ad.3

Start:

MOV SCON,11010000B

MOV TMOD,00100000B

MOV TH1,#243D

MOV TL1,#243D

SETB TR1 ; włącz taktowanie

SETB REN ; włącz odbiornik

ELO:

JNB RI,$ ; czekaj na 1 znak z klawiatury

MOV A,SBUF ; przepisz znak do akumulatora

CLR RI ;kasuj flagę odbioru

MOV SBUF,A ; wyślij znak na ekran

JNB TI,$ ; czekaj aż skończy wysyłać

CLRTI ; kasuj flagę nadania

SUBB A,#'0' ; zamień z ASCII na DEC

MOV B,#10D ; pomnóż wprowadzoną przez 10

MUL AB

MOV R1,A ; zapamiętaj w R1 liczbę (dziesiątki)

JNB RI,$ ; czekaj na 2 znak z klawiatury

MOV A,SBUF ; przepisz znak do akumulatora

CLR RI ; kasuj flagę odbioru

MOV SBUF,A ; wyślij znak na ekran

JNB TI,$ ; czekaj aż skończy wysyłać

CLRTI ; kasuj flagę nadania

SUBB A,#'0' ; zamień z ASCII na DEC

ADD A,R1 ; sumuj dziesiątki i jedności pierwszej liczby

MOV R1,A ; zapamiętaj pierwszą liczbę W R1

MOV SBUF,#'+' ; wyświetl +

JNB TI,$ ; czekaj aż skończy wysyłać

CLRTI ; kasuj flagę nadania

JNB RI,$ ; czekaj na 3 znak z klawiatury

MOV A,SBUF ; przepisz znak do akumulatora

CLR RI ; kasuj flagę odbioru

MOV SBUF,A ; wyślij znak na ekran

JNB TI,$ ; czekaj aż skończy wysyłać

CLRTI ; kasuj flagę nadania

SUBB A,#'0' ; zamień z ASCII na DEC

MOV B,#10D ; pomnóż wprowadzoną przez 10

MUL AB

MOV R2,A ; zapamiętaj w R2 liczbę (dziesiątki)

JNB RI,$ ; czekaj na 2 znak z klawiatury

MOV A,SBUF ; przepisz znak do akumulatora

CLR RI ; kasuj flagę odbioru

MOV SBUF,A ; wyślij znak na ekran

JNB TI,$ ; czekaj aż skończy wysyłać

CLRTI ; kasuj flagę nadania

SUBB A,#'0' ; zamień z ASCII na DEC

ADD A,R2 ; sumuj dziesiątki i jedności drugiej liczby

MOV SBUF,#'=' ; wyświetl =

JNB TI,$ ;czekaj aż skończy wysyłać

CLRTI ; kasuj flagę nadania

ADD A,R1 ; sumuj zapamiętane liczby

MOV B,#100 ; wyodrębnij cyfrę setek

DIV AB

ADD A,#'0' ; zamień na ASCII

MOV SBUF,A ; wyślij pierwszy znak wyniku na ekran

JNB TI,$ ; czekaj aż skończy wysyłać

CLRTI ; kasuj flagę nadania

MOV A,B ; reszta z dzielenia do A

MOV B,#10 ; wyodrębnij cyfrę dziesiątek

DIV AB

ADD A,#'0' ; zamień na ASCII

MOV SBUF,A ; wyślij drugi znak wyniku na ekran

JNB TI,$ ; czekaj aż skończy wysyłać

CLRTI ; kasuj flagę nadania

MOV A,B ; reszta z dzielenia do A (cyfra jedności)

ADD A,#'0' ; zamień na ASCII

MOV SBUF,A ; wyślij trzeci znak wyniku na ekran

JNB TI,$ ; czekaj aż skończy wysyłać

CLRTI ; kasuj flagę nadania

MOV SBUF,#' ' ; wprowadź odstęp (dla estetyki) na ekran

JNB TI,$ ; czekaj aż skończy wysyłać

CLRTI ; kasuj flagę nadania

LJMP ELO ; POWTARZAJ PROGRAM

END

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 został jednak podobnie jak w przypadku podpunktu drugiego ze względu na brak zestawu ćwiczeniowego nie mógł być dokładnie przeanalizowany.



Wyszukiwarka

Podobne podstrony:
PODSTAWY TECHNIK MIKROPROCESOROWYCH, Studia Pwr INF, Semestr IV, PTM
Prawne podstawy resocjalizacji - opracowanie, Studia Administracja, LICENCJAT, Semestr IV, POLITYKA
TECHNIKA CYFROWA - sprawko lab 1, Studia, PWR, 4 semestr, Podstawy techniki mikroprocesorowej, labor
TECHNIKA CYFROWA - sprawko lab 4, Studia, PWR, 4 semestr, Podstawy techniki mikroprocesorowej, labor
TECHNIKA CYFROWA - sprawko lab 5, Studia, PWR, 4 semestr, Podstawy techniki mikroprocesorowej, labor
mikroprocki, Automatyka i robotyka air pwr, V SEMESTR, Podstawy techniki mikroprocesorowej
str. na teczkę, STUDIA, Budownictwo UZ, Semestr IV, Konstrukcje Betonowe - Podstawy [Korentz], Labol
Problem mieszanek, Studia, PWr - MBM, Semestr 7, Podstawy organizacji produkcji
Analiza sił Portera druk (2 sprawko), Studia, I o, rok II, semestr IV, Podstawy Marketingu, koło
wino segmenty rynkowe (sprawko 3), Studia, I o, rok II, semestr IV, Podstawy Marketingu, koło
sprawko 6, Studia, I o, rok II, semestr IV, Podstawy Marketingu, koło
wyk.02, PWR - MBM, SEMESTR IV, PODSTAWY AUTOMATYKI
Ściąga z automatyki - zagadnienia, Studia PWR, III semestr, Podstawy automatyki, Wykłady, Lichota
str. na teczkę, STUDIA, Budownictwo UZ, Semestr IV, Konstrukcje Betonowe - Podstawy [Korentz], Labol
Podstawy techniki mikroprocesor Nieznany
Pedagogika Penitencjarna ZK, Studia Administracja, LICENCJAT, Semestr IV, POLITYKA KARNA I PENITENCJ
Metody Resocjalizacyjne, Studia Administracja, LICENCJAT, Semestr IV, POLITYKA KARNA I PENITENCJARNA
zadania egzaminacyjne dzienne (PTM), elektro, 1, Podstawy Techniki Mikroprocesorowej

więcej podobnych podstron