Mikro cw 6

POLITECHNIKA LUBELSKA

LABORATORIUM PODSTAW TECHNIKI MIKROPROCESOROWEJ

Mechatronika

Ćwiczenie 6

Klawiatura matrycowa i sekwencyjna

  1. Cel ćwiczenia

Celem ćwiczenia było zapoznanie się ze sposobem komunikowania się z systemem mikroprocesorowym za pomocą klawiatury, sposobem podłączania klawiatury do systemu DSM-51 i różnicami pomiędzy klawiaturą sekwencyjną i matrycową.

  1. Wykonanie ćwiczenia

Zadanie 1

Kod programu:

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:

MOV C,KEY ;czytaj stan klawiszy

CPL C ;neguj

MOV LED,C ;zapal diode TEST gdy

;klawisz jest nacisniety

SJMP LOOP

Adres bufora CSDS: #30H

Zmiana wartości KEY_COD pozwala na zmianę wybranych klawiszy np. 00100010B uaktywnia klawisz 2 i 6.

Zadanie 2

Kod programu:

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

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

W porównaniu do programu z zadania 1 po naciśnięciu aktywnego klawiszy zmieniał się stan diody, jednak po puszczeniu przyciska dioda nie wracała do poprzedniego stanu dopiero ponowne naciśnięcie aktywnego klawisza zmieniało stan diody.

Zadanie 3

Zmieniając w linii MOV A,#10 wartość 10 możemy zmieniać czas sprawdzania stanu klawiszy.

Zadanie 4

Kod programu:

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

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

Adresy buforów od 0 do 7

82D1H

8381H

831CH

832EH

8349H

843FH

83D9H

844AH

Do aktywacji klaiwszy 8,9, ENTER, ESC i strzałek należy zmienić wartość linii MOV R0,#CSKB0 na

MOV R0,#CSKB1

Wartości akumulatora podczas wykonywania instrukcji RRC A przy naciśnięciu odpowiedniego klawisza:

-klawisz 1 02->01

-klawisz 2 04->02

-klawisz 3 08->04

-klawisz 5 20->10

-klawisz 7 80->40

-klawisz 0 01->00

Zadanie 5 nie zostało zrealizowane


Wyszukiwarka

Podobne podstrony:
mikro cw 3 id 300788 Nieznany
mikro ćw 6, Ćwiczenie 6: Metabolizm bakterii - odżywianie
mikro ćw 7, Ćw
06 MIKRO ćw TZK
mikro - cw 5- notatki, LEKARSKO-DENTYSTYCZNY GUMED, II ROK, MIKROBIOLOGIA I MJU
06 MIKRO ćw TZK(1)
mikro cw, Finanse i rachunkowość (UMCS), ROK I, Mikroekonomia
mikro cw 3 id 300788 Nieznany
06 MIKRO ćw TZK(1)
06 MIKRO ćw TZK
MIKRO CW 01
06 MIKRO ćw TZK
MIKRO CW 02
MIKRO CW 03
mikro ćw 3
MIKRO CW 04
MIKRO CW 06

więcej podobnych podstron