c6 (2)

background image

CWICZENIE 6


KLAWIATURY MATRYCOWE. KLAWIATURY
SEKWENCYJNE.

Wstep

Jednym z podstawowych srodków komunikacji systemu mikroprocesorowego

z uzytkownikiem jest klawiatura. Najbardziej rozpowszechnione sposoby podlaczenia
klawiatury do mikrokontrolera polegaja na wykorzystaniu w tym celu portów. Porty jako
uklady we/wy zapewniaja komunikacje dwukierunkowa. W mikrokontrolerze do odczytu
danej z portu wykorzystuje sie mozliwosc zmiany stanu z 1 na 0 poprzez sygnal zewnetrzny.
Jak z tego wynika porty sluzace do odczytu musza byc kazdorazowo ustawione w stan 1.
Ograniczona liczba linii w porcie nie pozwala na najprostsze rozwiazanie tzn. przypisanie
jednego klawisza klawiatury do jednej linii w porcie. W celu powiekszenia rozmiaru
klawiatury stosuje sie dwa popularne rozwiazania:
- klawiature sekwencyjna - poprzez zewnetrzny bufor podlaczony do szyny mikrokontrolera
sterowana jest jedna linia w porcie. W systemie DSM51 zorganizowana jest klawiatura
zlozona z szesciu przycisków [

], [Esc], [

], [

], [

], [

]. Do obslugi wybrano linie P3.5

sterowana buforem CSDS.
- klawiature matrycowa - w tego typu klawiaturze nastepuje podzial na kolumny i wiersze
zapewniajace poszczególnym klawiszom indywidualne wspólrzedne po których mozna je
rozpoznac . W systemie DSM51 klawiatura matrycowa podlaczona jest za pomoca portów
zewnetrznych oraz linii adresowych A0 i A1. Role

kolumn spelniaja tutaj linie adresowe

A0 i A1 natomiast wierszy linie danego portu zewnetrznego. Porty zewnetrzne znajduja sie
pod adresami 21H oraz 22H i zostaly oznaczone jako CSKB0 i CSKB1. Klawiatura
matrycowa sklada sie z 16 klawiszy: 0, 1, 2, 3, 4, 5, 6, 7 podlaczonych do portu CSKBO
(adres 21H) oraz 8, 9, [

], [

], [

], [

], Esc, Enter [

] podlaczonych do portu CSKB1

(adres 22H).
Schematy elektryczne klawiatur zamieszczono w dodatku do tej instrukcji

W cwiczeniu nalezy zapoznac sie z zasadami korzystania z okreslonego typu

klawiatury oraz realizacjami programowymi nad odczytem wybranych klawiszy.


ZADANIE 1

W zadaniu 1 nalezy zaobserwowac sposób odczytu danej pojawiajacej sie

w momencie nacisniecia uaktywnionego klawisza. Nalezy rozpoznac adres bufora CSDS
sterujacego klawiatura sekwencyjna

.


LED EQU P1.7
KEY EQU P3.5

;odczyt klawiatury


;Stale uzywane w programie
KEY_COD EQU

00001001B

;wybrane klawisze – 1 i 4


LJMP START

ORG 100H

START:

background image


MOV R0,#CSDS

;adres wyboru klawisza

MOV A,#KEY_COD

MOVX

@R0,A

;wpisz wybrane klawisze


LOOP:

MOV C,KEY

;czytaj stan klawiszy

CPL C

;neguj

MOV LED,C

;zapal diode TEST gdy

;klawisz jest nacisniety


SJMP LOOP

Wykonaj program w trybie krokowym. Zmodyfikuj podany przyklad tak by uaktywnic inne
klawisze klawiatury sekwencyjnej.


ZADANIE 2

W zadaniu drugim zaprezentowano program eliminujacy drgania styków klawiatury

mogace wprowadzac bledy w odczycie. Zastosowano tu petle opóznienia czasowego,
w trakcie której powinien ustabilizowac sie stan linii P3.5 Nalezy porównac

LED EQU P1.7
KEY EQU P3.5

;odczyt klawiatury


;Stale uzywane w programie
KEY_COD EQU

00001001B

;wybrane klawisze-1 i 4


LJMP START

ORG 100H

START:

MOV R0,#CSDS

;adres wyboru klawisza

MOV A,#KEY_COD

MOVX

@R0,A

;wpisz wybrane klawisze


LOOP_NO:

JNB

KEY,LOOP_NO

;czekaj na nacisniecie

;klawisza

MOV A,#10

;eliminacja drgan styków

LCALL

DELAY_MS

JNB

KEY,LOOP_NO

;czy nadal nacisniety


CPL LED

;neguj stan diody TEST

;przy nacisnieciu klaw.


LOOP_YES:

JB

KEY,LOOP_YES

;czekaj na zwolnienie

;klawisza

background image

MOV A,#10

;eliminacja drgan styków

LCALL

DELAY_MS

JB

KEY,LOOP_YES

;czy klawisz zwolniony


SJMP LOOP_NO

;powrót do petli czekania

;na klawisz


ZADANIE 3


Do samodzielnego wykonania.
Zmodyfikuj przyklad z zadania 2 tak by w petli programowej kolejno przegladac

w interwale czasowym 20 ms kolejne stany klawiszy. Nalezy rozpoznawac numer
nacisnietego klawisza a nastepnie wyswietlac go na wyswietlaczu LCD korzystajac
z odpowiednich podprogramów.


ZADANIE 4

Podany przyklad zawiera trzy petle programowe: LOOP_NO, LOOP_NR oraz

LOOP_YES. Pierwsza petla sluzy do ciaglego odczyt u danych z portu CSKB0. W momencie
nacisniecia jednego z przycisków 0 - 7 poprzez wykorzystanie instrukcji JZ (skocz jesli
wartosc akumulatora =0) nastepuje przejscie do petli nastepnej - LOOP_NR. Petla ta sluzy do
rozpoznania numeru nacisnietego klawisza. Nalezy zwrócic uwage na instrukcje RRC A.
Instrukcja ta sluzy do obrotu w prawo zawartosci akumulatora poprzez bit C. W trybie pracy
krokowej nalezy zaobserwowac i zanotowac kolejne wartosci akumulatora w trakcie
wykonywania instrukcji RRC A dla kilku róznych przycisków. W chwili zdekodowania
numeru przycisku (gdy bit C =0) i wyswietleniu informacji o tym na wyswietlaczu LCD
program przechodzi do trzeciej petli LOOP_YES. W petli tej rozpoznawane jest czy nadal
pozostaje nacisniety klawisz klawiatury. Jesli wszystkie przyciski zostana zwolnione program
powraca do petli LOOP_NO.


LJMP

START

ORG

100H

START:

LCALL

LCD_CLR

MOV

R0,#CSKB0

;adres klawiszy 0..7

LOOP_NO:

MOVX

A,@R0

;odczyt stanu klawiszy

CPL

A

JZ

LOOP_NO

;czy klawisz nacisniety


MOV

R2,#0FFH

LOOP_NR:

;przekoduj nr klawisza

;kod 1z 8 na cyfre 0..7

;petla bedzie wykonana 1-8 razy

INC

R2

;wiec R2 osiagnie wartosc 0..7

background image

RRC

A

;obrót akumulatora przez C

;az odczytana 1 wsunie sie do C

JNC

LOOP_NR


MOV

A,R2

;przekoduj nr klawisza

ADD

A,#30H

;na kody znaków wysw. LCD

LCALL

WRITE_DATA

;wypisz kod klawisza

LOOP_YES:

MOVX

A,@R0

;odczyt stanu klawiszy

CPL

A

JNZ

LOOP_YES

;czy klawisz zwolniony

SJMP

LOOP_NO

;powrót do oczekiwania na

;nacisniecie klawisza


Wykonaj program w trybie krokowym. Rozpoznaj adresy buforów sterujacych pierwsza

grupa klawiszy 0 - 7. Zmodyfikuj program dla drugiej sekcji tak by wysterowac klawisze 8 -
Enter.


ZADANIE 5


Zmodyfikuj program z zadania 4 tak by wyeliminowac drgania styków klawiatury.

Zaproponuj algorytm programu dla obslugi calej klawiatury.


Wyszukiwarka

Podobne podstrony:
C6 5
highwaycode pol c6 motocykle (s 27 28, r 84 91)
Laboratorium jezyk c6 2013
c6
8fr d3d a3a+i+koszty+powstania+ 8crodk d3w+na+dzia a3alno 8c c6+kredytow a5 HVAYZQUQDZS37IFU6Y2MSQY
rachunkowo 8c c6 U66KYMRLS7CLVU3H52OVIUEIOPEOCYU4H7PKKUQ
rachunkowo 8c c6+ubezpieczeniowa RHEHCDRODBS2TM7KINVF2XGZNSX4MESWRIXNOKI
Badania właściwości mechanicznych materiałów izolacyjnych, Pim c6, Politechnika Wrocławska
C6 2
C6 stale narzędziowe
Chirurgia C6, studia pielęgniarstwo
8cmier c6 NSIDEQWL2SLVDPQ5N5QVFSTMRGDAKGQPYY7FZ7I
c6
c++ wyklad c6
C6 8
C6 1hemoliza WWP 6 10 1 2 id 10 Nieznany
C6 2
Laboratorium jezyk c6 2013
C6-stale narzędziowe

więcej podobnych podstron