MICRO7~1, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY LABOLATORIUM


Politechnika

Lubelska

Laboratorium podstaw systemów mikroprocesorowych

Ćwiczenie Nr 3

Imię i nazwisko: Piotr Jurek ,

Tadeusz Klukowski

Semestr

5

Grupa

ED 5.1

Rok akad.

1998/99

Temat ćwiczenia: Klawiatura przeglądana sekwencyjnie

Klawiatura matrycowa.

Data

30.11.98

Ocena

System mkrokontrolera DSM-51 wyposażony jest w dwie klawiatury:

- klawiaturę przeglądaną sekwencyjnie, w której styki każdego klawisza dołączone są do linii bufora wyboru wskaźnika LED o nazwie CSDS i do linii portu P3.5. Odczyt polega na wysłaniu do CSDS danej odpowiadającej wybranemu klawiszowi i sprawdzeniu stanu P3.5.

- klawiaturę matrycową, w której klawisze ułożone są w dwóch kolumnach. Odczyt klawisza polega na odczycie danej z bufora klawiatury (CSKB0 dla pierwszej kolumny lub CSKB1 - dla drugiej)

1) Cel ćwiczenia:

Zapoznanie się z zasadami korzystania z określonego typu klawiatury oraz realizacji programowej nad odczytem wybranych klawiszy.

2) Klawiatura przeglądana sekwencyjnie.

a)odczyt pojedyńczej linii

;************************************************;LEKCJA 7 - KLAWIATURA PRZEGLĄDANA SEKWENCYJNIE

;PRZYKťAD 1 - ODCZYT POJEDYNCZEJ LINII

;************************************************

LED EQU P1.7

KEY EQU P3.5 ;odczyt klawiatury

KEY_COD EQU 00001001B ;wybrane klawisze - 1i4

LJMP START

ORG 100H

START:

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 diodę TEST gdy

klawisz jest naciśnięty

SJMP LOOP

Działanie tego programu polega na zapaleniu diody TEST w momencie, gdy zostanie naciśnięty klawisz 1 lub 4. Uaktywnienie innych klawiszy sprowadza się do wpisaniu jedynek na odpowiednich pozycjach stałej KEY_COD.

b)eliminacja drgań styków

;************************************************;LEKCJA 7 - KLAWIATURA PRZEGLĄDANA SEKWENCYJNIE;PRZYKťAD 3 - ELIMINACJA DRGAŃ STYKÓW;************************************************

LED EQU P1.7

KEY EQU P3.5 ;odczyt klawiatury

KEY_COD EQU 00001001B ;wybrane klawisze-1i4

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 naciśnięcie

;klawisza

MOV A,#10 ;eliminacja drgaä styków

LCALL DELAY_MS

JNB KEY,LOOP_NO ;czy nadal naciśnięty

CPL LED ;neguj stan diody TEST

;przy naciśnięciu klaw.

LOOP_YES:

JB KEY,LOOP_YES ;czekaj na zwolnienie

;klawisza

MOV A,#10 ;eliminacja drgaä styków

LCALL DELAY_MS

JB KEY,LOOP_YES ;czy klawisz zwolniony

SJMP LOOP_NO ;powrót do pętli czekania

;na klawisz

Eliminacja drgań w powyższym programie realizowana jest poprzez zastosowanie procedury DELAY_MS, która powoduje opóźnienie reakcji programu na naciśnięcie oraz puszczenie klawisza do momentu, gdy drgania zanikną.

c)program który przegląda kolejne klawisze i wyświetla na LCD numer naciśniętego klawisza

1 ;************************************************

2 ;kolejny odczyt wszystkich klawiszy klawiatury

3 ;sekwencyjnej z eliminacją drgaä i wyświetlaniem

4 ;numeru naciśniętego klawisza na LCD

5 ;************************************************

6

7 00B5 KLAW EQU P3.5 ;odczyt klawiatury

8

9 0000: 02 01 00 LJMP START

10 0100: ORG 100H

11 0100: START:

12 0100: 7D 01 MOV R5, #01H ;wybór klawisza

13 0102: 78 30 MOV R0, #CSDS ;adres wyboru klawisza

14 0104: LOOP_K:

15 0104: ED MOV A, R5

16 0105: F2 MOVX @R0, A ;wpisz wybrany klawisz

17 0106: 30 B5 09 JNB KLAW, OBSL_K ;jeśli klaw. naciśnięty to

18 ;skocz do procedury obsługi

19 0109: ED MOV A, R5 ;wybierz nast. klawisz

20 010A: 23 RL A

21 010B: FD MOV R5, A

22 010C: 24 C0 ADD A, #192 ;zacznij od początku jeśli

23 010E: 70 F4 JNZ LOOP_K ;sprawdzone wszystkie klawisze

24 0110: 80 EE SJMP START

25 ;procedura obsługi klawisza

26 0112: OBSL_K:

27 0112: 74 0A MOV A, #10 ;odczekaj 10ms -

28 0114: 12 81 10 LCALL DELAY_MS ;eliminacja drgań styków

29 0117: 20 B5 0E JB KLAW, NIE ;sprawdź klawisz, pomiń dalsze

30 ;instrukcje, jeśli puszczony

31 011A: ED MOV A, R5

32 011B: 7A FF MOV R2, #255

33 011D: LOOP_NR:

34 011D: 0A INC R2 ;zwiększ licznik o jeden

35 011E: 13 RRC A ;obróć akumulator przez bit C

36 011F: 50 FC JNC LOOP_NR ;wyjdź z pętli jeśli C=1

37 0121: 12 81 0C LCALL LCD_CLR

38 0124: EA MOV A, R2 ;wyświetla na LCD nr klawisza

39 0125: 12 81 04 LCALL WRITE_HEX

40 0128: NIE:

41 0128: 22 RET ;wróć

2)Klawiatura matrycowa.

a)odczyt klawiszy 0 .. 7

1 ;************************************************ 2 ;LEKCJA 8 - KLAWIATURA MATRYCOWA 3 ;PRZYKŁAD 2 - ODCZYT KLAWIATURY 0..7

4 ;************************************************

5

6 0000: 02 01 00 LJMP START

7 0100: ORG 100H

8 0100: START:

9

10 0100: 12 81 0C LCALL LCD_CLR

11 0103: 78 21 MOV R0,#CSKB0 ;adres klawiszy 0..7

12

13 0105: LOOP_NO:

14 0105: E2 MOVX A,@R0 ;odczyt stanu klawiszy

15 0106: F4 CPL A

16 0107: 60 FC JZ LOOP_NO ;czy klawisz naciśnięty

17

18 0109: 7A FF MOV R2,#0FFH

19 010B: LOOP_NR: ;przekoduj nr klawisza

20 ;kod 1z8 na cyfrę 0..7

21 ;pętla będzie wykonana 1-8 razy

22 010B: 0A INC R2 ;więc R2 osiągnie wartość 0..7

23 010C: 13 RRC A ;obrót akumulatora przez C

24 ;aż odczytana 1 wsunie się do C

25 010D: 50 FC JNC LOOP_NR

26

27 010F: EA MOV A,R2 ;przekoduj nr klawisza

28 0110: 24 30 ADD A,#30H ;na kody znaków wyśw. LCD

29 0112: 12 81 02 LCALL WRITE_DATA ;wypisz kod klawisza

30

31 0115: LOOP_YES:

32 0115: E2 MOVX A,@R0 ;odczyt stanu klawiszy

33 0116: F4 CPL A

34 0117: 70 FC JNZ LOOP_YES ;czy klawisz zwolniony

35

36 0119: 80 EA SJMP LOOP_NO ;powrót do oczekiwania na naciśnięcie klawisza

zawartość akumulatora oraz R2 po wykonaniu kolejnych instrukcji zaobserwowane w trybie pracy krokowej

Adres

Instrukcji

ACC

R2

105

FD

00

106

02

00

107

02

00

109

02

FF

10B

02

00

10C

01

00

10B

01

01

10C

00

01

10F

01

01

110

31

01

b) odczyt klawiszy 8..enter

;************************************************

;LEKCJA 8 - KLAWIATURA MATRYCOWA

;PRZYKťAD 2 - ODCZYT KLAWIATURY 8..ENTER

;************************************************

LJMP START

ORG 100H

START:

LCALL LCD_CLR

MOV R0,#CSKB1 ;adres klawiszy 8..Enter

LOOP_NO:

MOVX A,@R0 ;odczyt stanu klawiszy

CPL A

JZ LOOP_NO ;czy klawisz naciśnięty

MOV R2,#0FFH

LOOP_NR: ;przekoduj nr klawisza

;kod 1z 8 na cyfrę 8..Enter

;pętla będzie wykonana 1-8 razy

INC R2 ;więc R2 osiągnie wartość 8..Enter

RRC A ;obrót akumulatora przez C

;aż odczytana 1 wsunie się do C

JNC LOOP_NR

MOV A,R2 ;przekoduj nr klawisza

ADD A,#30H ;na kody znaków wyświetlacza 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

naciśnięcie klawisza

1



Wyszukiwarka

Podobne podstrony:
LAB6MICR, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY
PROCES5, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY
M7, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY LABOL
Mikroprocki 1kl, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPR
PROC7, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, MIKROPROCESORY LA
BLUMEN, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, ENERGOELEKTRONIK
BLUMEN, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, ENERGOELEKTRONIK
układy kombinacyjne, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, Teo
9v3, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, ELEKTROTECHNIK, ELEKTROTECHNIKA
Regulacja impulsowa, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, TEO
logo sasal, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Elektryczny, Teoria stero
06, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, sprawozdania, Sprawozdania, Labor
20'', Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, sprawozdania, Sprawozdania, Lab
10, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, sprawozdania, Sprawozdania, Labor
14'''''''''', Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, sprawozdania, Sprawozda
protokółćw4.elektra, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, Laborka, Elektro
Laboratorium Elektroniki, Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, V semestr
09'', Politechnika Lubelska, Studia, semestr 5, Sem V, Sprawozdania, sprawozdania, Sprawozdania, Lab

więcej podobnych podstron