Politechnika Lubelska |
Laboratorium podstaw systemów mikroprocesorowych |
|||
w Lublinie |
Ćwiczenie Nr 10 |
|||
Nazwisko : Adamczuk Sajdłowski |
Imię: Mariusz Sławomir |
Semestr V |
Grupa ED 5.3 |
Rok akad. 1998/99 |
Temat ćwiczenia: Wyświetlacz 7-segmentowy. Wyświetlacz alfanumeryczny. |
Data wykonania 27.11.98 |
Ocena
|
ZADANIE NR.1
Na wyświetlaczu została wyświetlona litera E.
;************************************************
; WYŚWIETLACZ 7-SEGMENTOWY
; ZAPIS DO PORTU - PEŁNY ADRES
;************************************************
SEG_ON EQUP 1.6 ;włączenie wyświetlacza 7-segm.
;Pełne adresy urządzeń we/wy systemu DSM-51
F_CSDS EQU 0FF30H ;bufor wyboru wskaźnika
F_CSDB EQU 0FF38H ;bufor danych wskaźnika
;Stałe używane w programie
DISPLAY EQU 00001001B ;wybrane wskaźniki - 1 i 4
COD EQU 01111001B ;wybrane segmenty (E)
LJMP START
OR 100H
START:
MOV MDPTR,#F_CSDS ;adres bufora
;wyboru wskaźnika
MOV A,#DISPLAY
MOVX @DPTR,A ;wpisz wybrane wskaźniki
MOV DPTR,#F_CSDB ;adres bufora
;danych wskaźnika
MOV A,#COD
MOVX @DPTR,A ;wpisz wybrane segmenty
CLR SEG_ON ;włącz wyświetlacz 7-segm
SJMP $
|
DPL |
DPH |
P2 |
P1 |
MOV |
00 |
00 |
BC |
FF |
MOV |
30 |
FF |
BC |
FF |
MOVX |
30 |
FF |
BC |
FF |
MOV |
30 |
FF |
BC |
FF |
MOV |
38 |
FF |
BC |
FF |
MOVX |
38 |
FF |
BC |
FF |
CLR |
38 |
FF |
BC |
FF |
SJMP |
38 |
FF |
BC |
BF |
Na wyświetlaczu została wyświetlona litera F.
Program taki sam jak wyżej, tylko stała COD EQU wynosi 01110001B.
|
DPL |
DPH |
P2 |
P1 |
MOV |
00 |
00 |
BC |
FF |
MOV |
30 |
FF |
BC |
FF |
MOVX |
30 |
FF |
BC |
FF |
MOV |
30 |
FF |
BC |
FF |
MOV |
38 |
FF |
BC |
FF |
MOVX |
38 |
FF |
BC |
FF |
CLR |
38 |
FF |
BC |
FF |
SJMP |
38 |
FF |
BC |
BF |
Na wyświetlaczu została wyświetlona litera H.
Program taki sam jak wyżej, tylko stała COD EQU wynosi 01110110B.
|
DPL |
DPH |
P2 |
P1 |
MOV |
00 |
00 |
BC |
FF |
MOV |
30 |
FF |
BC |
FF |
MOVX |
30 |
FF |
BC |
FF |
MOV |
30 |
FF |
BC |
FF |
MOV |
38 |
FF |
BC |
FF |
MOVX |
38 |
FF |
BC |
FF |
CLR |
38 |
FF |
BC |
FF |
SJMP |
38 |
FF |
BC |
BF |
ZADANIE NR.2
Na wyświetlaczu została wyświetlona litera E.
;************************************************
; WYŚWIETLACZ 7-SEGMENTOWY
; ZAPIS DO PORTU - ADRES 8 BITOWY
;************************************************
SEG_ON EQUP 1.6 ;włączenie wyświetlacza 7-segm.
;Stałe używane w programie
DISPLAY EQU 00001001B ;wybrane wskaźniki - 1 i 4
COD EQU 01111001B ;wybrane segmenty (E)
LJMP START
OR 100H
START:
MOV R0,#CSDS ;adres bufora
;wyboru wskaźnika
MOV R1,#CSDB ;adres bufora
;dane wskaźnika
MOV A,#DISPLAY
MOVX @R0,A ;wpisz wybrane wskaźniki
MOV A,#COD
MOVX @R1,A ;wpisz wybrane segmenty
CLR SEG_ON ;włącz wyświetlacz 7-segm
SJMP $
|
DPL |
DPH |
P1 |
MOV |
00 |
00 |
FF |
MOV |
00 |
00 |
FF |
MOV |
00 |
00 |
FF |
MOVX |
00 |
00 |
FF |
MOV |
00 |
00 |
FF |
MOVX |
00 |
00 |
FF |
CLR |
00 |
00 |
FF |
SJMP |
00 |
00 |
BF |
Na wyświetlaczu została wyświetlona litera F.
Program taki sam jak wyżej, tylko stała COD EQU wynosi 01110001B.
|
DPL |
DPH |
P1 |
MOV |
00 |
00 |
FF |
MOV |
00 |
00 |
FF |
MOV |
00 |
00 |
FF |
MOVX |
00 |
00 |
FF |
MOV |
00 |
00 |
FF |
MOVX |
00 |
00 |
FF |
CLR |
00 |
00 |
FF |
SJMP |
00 |
00 |
BF |
Na wyświetlaczu została wyświetlona litera H.
Program taki sam jak wyżej, tylko stała COD EQU wynosi 01110110B.
|
DPL |
DPH |
P1 |
MOV |
00 |
00 |
FF |
MOV |
00 |
00 |
FF |
MOV |
00 |
00 |
FF |
MOVX |
00 |
00 |
FF |
MOV |
00 |
00 |
FF |
MOVX |
00 |
00 |
FF |
CLR |
00 |
00 |
FF |
SJMP |
00 |
00 |
BF |
ZADANIE NR.5
;************************************************
; WYŚWIETLACZ ALFANUMERYCZNY LCD
; WYPISYWANIE ZNAKU
;************************************************
LJMP START
ORG 100H
START:
LCALL LCD_CLR
MOV R0,#LCDWD ;adres wpisywania danych
;na wyświetlacz LCD
MOV R1,#LCDRC ;adres odczytu stanu
;wyświetlacza LCD
LOOP:
LCALL WAIT_KEY ;pobierz klawisz
ADD A,#30H ;zamiana kodu klawisza
MOV R2,A ;na kod znaku LCD
BUSY:
MOVX A,@R1 ;odczyt stanu
JB ACC.7,BUSY ;oczekiwanie na BUSY=0
MOV A,R2 ;wysłanie kodu znaku
MOVX @R0,A ;do wyświetlacza LCD
SJMP LOOP
Po wprowadzeniu 16-tu znaków kursor znika z wyświetlacza. Natomiast po wprowadzeniu 40 znaków na wyświetlacz kursor pojawi się na dolnej linii wyświetlacza. Wynika to z tego, że wyświetlacz LCD wyposażony jest w sterownik , który pamięta 80 znaków (2 linie po 40 znaków) Tak więc wysłane na wyświetlacz znaki nie zginęły, a jedynie nie można było ich wszystkich wyświetlić na wyświetlaczu.