PTM2 doc

Podstawy techniki mikroprocesorowej

Programowanie klawiatury

1. Zapalanie diód, z użyciem klawiatury

Ćwiczenie polegało na przyporządkowaniu każdemu klawiszowi innej pary świecących diod które zapalały się po wciśnięciu jednego z klawiszy klawiatury

P5 EQU 0F8H   
P7 EQU 0DBH   
LJMP START
ORG 100H
START:

  MOV P5, #01111111B    ; wysterowanie klawiatury
  MOV R5, #4  
PETLA1:
  MOV A, P7    ;odczytujemy bity z portu klawiatury
  CPL A     ;negujemy
  JZ PETLA2  ;jesli nie wcisniety skacz do petli 2
  CPL A    ;negujemy
  XRL A, P5    ; exor sprawdzenie czy jakis klawisz wcisniety
  CPL A    ; negujemy
  MOV P1,A; ;swiecimy  diodami
     
PETLA2:
  MOV A, P5    ;przeniesienie do akumulatora adresu wiersza
  RR A      ; przesuniecie bitowe
  MOV P5, A   ; przesylanie akumulatora do adresu wiersza
  DJNZ R5,PETLA1   ;dekrementacja i jesli licznik wierszy jest rozny od 0 to skok
JMP START   
NOP
NOP
NOP
JMP $
END START

2. Wyświetlanie kodu naturalnego binarnego poszczególnych klawiszy

Naszym zadaniem było nadanie nowego adresu 16 bitowego którego starszy bajt to #0x80 zaś młodszy to odpowiedni kod klawisza.

Kod poprzedniego programu wystarczy trochę zmodyfikować i dopisać przyporządkowanie każdemu klawiszowi inny rejestr. Całość wygląda tak:

P5 EQU 0F8H

P7 EQU 0DBH

LJMP START

ORG 100H

START:

MOV DPH,#0x80; znaczace bajty dla klawiatury

MOV DPL,#0x11; znajac kazdy adres przycisku przyporzadkowujemy mu nowy adres

MOV A,#0x11;

MOVX @DPTR,A; i skladamy go w 16 bitowy

; i tak przez wszytskie 16 klawiszy

MOV DPL,#21h;

MOV A,#2h;

MOVX @DPTR, A;

MOV DPL,#31h;

MOV A,#3h;

MOVX @DPTR,A;

MOV DPL,#12h;

MOV A,#4h;

MOVX @DPTR, A;

MOV DPL,#22h;

MOV A,#5h;

MOVX @DPTR, A;

MOV DPL,#32h;

MOV A,#6h;

MOVX @DPTR, A

MOV DPL,#13h;

MOV A, #7h;

MOVX @DPTR, A

MOV DPL,#23h;

MOV A,#8h;

MOVX @DPTR, A

MOV DPL,#32h;

MOV A, #9h;

MOVX @DPTR, A

MOV DPL,#34h;

MOV A, #0h;

MOVX @DPTR, A

MOV DPL,#41h;

MOV A,#10;

MOVX @DPTR, A

MOV DPL,#42h;

MOV A, #11;

MOVX @DPTR, A

MOV DPL,#43h;

MOV A,#12;

MOVX @DPTR,A

MOV DPL,#44h;

MOV A, #13;

MOVX @DPTR, A

MOV DPL,#34h;

MOV A,#14;

MOVX @DPTR, A

MOV DPL,#14h;

MOV A,#15;

MOVX @DPTR, A;

START:

MOV P5, #01111111B ; wysterowanie klawiatury

MOV R5, #4

PETLA1:

MOV A, P7 ;odczytujemy bity z portu klawiatury

CPL A ;negujemy

JZ PETLA2 ;jesli nie wcisniety skacz do petli 2

CPL A ;negujemy

XRL A, P5 ; exor sprawdzenie czy jakis klawisz wcisniety

CPL A ; negujemy

MOV DPL, A; ;mlodsza czesc do akumulatora

MOVX A, @DPTR; ;laczymy w 16bit

CPL A; ;negacja

MOV P1,A; ;swiecimy diodami

PETLA2:

MOV A, P5 ;przeniesienie do akumulatora adresu wiersza

RR A ; przesuniecie bitowe

MOV P5, A ; przesylanie akumulatora do adresu wiersza

DJNZ R5,PETLA1 ;dekrementacja i jesli licznik wierszy jest rozny od 0 to skok

JMP START

NOP

NOP

NOP

JMP $

END START

Wnioski:

Obsługa klawiatury polega na przyporządkowaniu jej odpowiedniego wiersza i odpowiedniej kolumny i sprawdzanie czy klawisz przez nas użyty. Instrukcja zapętla się dopóki klawisz nie zostanie wciśnięty. Wówczas mikroprocesor może odczytać adresy poszczególnych klawiszy a my możemy zadać mu odpowiednie operacje do wykonania. Aby ułatwić sobie prace dobrze jest przypisać każdemu klawiszowi adres który łatwo będzie zapamiętać. Uczyniliśmy tak w zadaniu drugim. Dzięki temu możemy ułożyć sobie w pamięci kolejne przyciski w odpowiadającej nam kolejności. Niestety zadania 3 w którym należało zapalać diody po zwolnieniu przycisku nie udało nam się wykonać.


Wyszukiwarka

Podobne podstrony:
europejski system energetyczny doc
KLASA 1 POZIOM ROZSZERZONY doc Nieznany
5 M1 OsowskiM BalaR ZAD5 doc
Opis zawodu Hostessa, Opis-stanowiska-pracy-DOC
Messerschmitt Me-262, DOC
Opis zawodu Robotnik gospodarczy, Opis-stanowiska-pracy-DOC
Opis zawodu Położna, Opis-stanowiska-pracy-DOC
Opis zawodu Przetwórca ryb, Opis-stanowiska-pracy-DOC
Blessing in disguise(1), Fanfiction, Blessing in disguise zawieszony na czas nie określony, Doc
Opis zawodu Politolog, Opis-stanowiska-pracy-DOC
Protokół wprowadzenia na roboty, Pliki DOC PPT
Połączenie komputerów w sieć, DOC
Opis zawodu Technik informatyk, Opis-stanowiska-pracy-DOC
ŁACINECZKA ZBIOREK DOC, ►Filozofia
Bronie V, DOC
Opis zawodu Elektromonter linii elektr, Opis-stanowiska-pracy-DOC

więcej podobnych podstron