Mikroprocesory, MIKROP10, POLITECHNIKA LUBELSKA


POLITECHNIKA LUBELSKA

KATEDRA ELEKTRONIKI

LABORATORIUM PODSTAW SYSTEMÓW MIKROPROCESOROWYCH

SPRAWOZDANIE DO ĆWICZENIA NR. 10

Wyświetlacz 7-segmentowy.”

„Wyświetlacz LCD.”

Wykonali: Remigiusz Gwiazda ED 5.4

Paweł Luty ED 5.4

Zadanie 1 i 2

W zadaniu 1 zastosowano adresowanie pełne pamięci zewnętrznej (adres 16-bitowy) przez rejestr DPTR.

Instrukcje wykorzystujące ten sposób adresowania to MOVX A,@DPTR i

MOVX @DPTR,A

W zadaniu 2 użyto adresowania niepełnego, młodszy bajt adresu zawarty jest w rejestrze R0 lub R1 a starszy ( oznaczający stronę pamięci ) w rejestrze P2.

Adresy urządzeń :

bufor wyboru wskaźnika 0FF30H

bufor danych wskaźnika 0FF38H

Zadanie 4

SEG_ON P1.6

ONE EQU 006H

TWO EQU 05BH

THREE EQU 04FH

FOUR EQU 066H

FIVE EQU 06FH

SIX EQU 07DH

SEVEN EQU 007H

DISPLAY EQU 030H

LJMP START

ORG 100H

START:

MOV DISPLAY,#ONE

MOV DISPLAY+1,#TWO

MOV DISPLAY+2,#THREE

MOV DISPLAY+3,#FOUR

MOV DISPLAY+4,#FIVE

MOV DISPLAY+5,#SIX

MOV DISPLAY+6,#SEVEN

CLR SEG_ON

LOOP_DISP:

MOV R0,#DISPLAY

MOV R2,#7

MOV R3,#01B

LOOP:

MOV R1,#CSDS

MOV A,R3

MOV @R1,A

RL A

MOV R3,A

MOV R1,#CSDB

MOV A,@R0

MOVX @R1,A

INC R0

MOV A,#10

LCALL DELAY_100MS

DJNZ R2,LOOP

SJMP LOOP_DISP

Zadanie 5

Sterownik wyświetlacza LCD posiada bufor długości 40 znaków dla każdej linii tzn. 80 bajtów. Po zapełnieniu się bufora kolejne znaki będą nadpisywane zaczynając od początku bufora.

Zadanie 7

Schemat programu przesuwającego na wyświetlaczu napis

PTR EQU 30H

START:

{ czyszczenie wyświetlacza }

MOV DPTR,#TEXT-1

NOWA_PETLA:

MOV PTR,#0 ; wskaznik pierwszego znaku

PETLA:

PUSH PTR

INC_PETLA:

INC DPTR ; przesuniecie

DJNZ PTR,INC_PETLA

POP PTR

INC PTR ; zwiekszenie przesuniecia

MOV A,#16

MOVC A,@A+DPTR

JZ NOWA_PETLA ; zabezpieczenie przed koncem napisu

MOV B,#16 ; ilosc znakow w linii

PETLA_WEW:

CLR A

MOVC A,@A+DPTR ;pobranie znaku

DJNZ B,PISZ_TEXT

SJMP TEXT_END

PISZ_TEXT:

ACALL WRITE

INC DPTR

SJMP PETLA_WEW ; pisze 16 znakow

TEXT_END:

{ opoznienie }

{ przesuniecie kursora na pierwszy znak pierwszej linii }

SJMP PETLA

WRITE: { podprogram piszacy pojedynczy znak (z instrukcji) }

RET

TEXT:

DB ` ` ; 16 spacji

DB `Dlugi napis ...'

DB ` ` ; 16 spacji

DB 0 ; koniec napisu

Program przesuwa napisy maksymalnie o dlugości 224 znaki (256-2*16)



Wyszukiwarka