Você está na página 1de 17

UNIVERSIDAD RICARDO PALMA

FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA


ELECTRONICA
ASIGNATURA: MICROPROCESADORES

PRACTICA DE LABOLATORIO N 01

Desarrollar el programa de control para los sgts. Casos:

a.- Realizar un programa usando sub rutinas para simular el funcionamiento


de un contador mdulo variable cuyo funcionamiento debe ser seleccionado
mediante interruptores S1 y S0 colocados en un puerto, y que muestre la
cuenta en display s de 7 segmentos,

S1 S0 FUNCIONAMIENTO
0 0 Contador ascendente mdulo 16
0 1 Contador descendente mdulo 16
1 0 Contador ascendente mdulo 64
1 1 Contador descendente mdulo 32

.data 0100h

db 77h,44h,3eh,6eh,4dh,6bh,7bh,46h,7fh,6fh

.org 0000h

selector: in 00h
cpi 00h
jz asc16
cpi 01h
jz des16
cpi 02h
jz asc64
cpi 03h
jz des32
jmp selector

asc16: call up16


jmp selector

des16: call down16


jmp selector

asc64: call up64


jmp selector

des32: call down32


jmp selector

up16:
inicio: mvi a,77h
out 00h
lxi d,0100h

lazo: ldax d
out 01h
inr e
mov a,e
cpi 0ah
jnz lazo
jmp lazo1

lazo1: mvi a,44h


out 00h

lazo2: lxi d,0100h

lazo3: ldax d
out 01h
inr e
mov a,e
cpi 07h
jnz lazo3
ret

down16:

lazo4: mvi a,44h


out 00h
lxi d,0106h

lazo5: ldax d
out 01h
dcr e
MOV a,e
cpi ffh
jnz lazo5
jmp lazo6

lazo6:
mvi a,77h
out 00h
lxi d,0109h

lazo7: ldax d
out 01h
dcr e
MOV a,e
cpi ffh
jnz lazo7
ret

up64:
inicio2: lxi b,0100h
ldax b
out 00h

lazo8: lxi d,0100h


inr c

lazo9: ldax d
out 01h
inr e
mov a,e
cpi 0ah
jnz lazo9
jmp lazo10

lazo10:
ldax b
out 00h
mov a,c
cpi 06h
jnz lazo8
jmp lazo11

lazo11: lxi d,0100h


lazo12: ldax d
out 01h
inr e
mov a,e
cpi 05h
jnz lazo12
ret

down32:

lazo13: lxi b,0103h


lazo14: ldax b
out 00h
mov a,c
cpi 02h
jnz lazo15
jmp lazo17

lazo15: dcr c
lxi d,0102h

lazo16: ldax d
out 01h
dcr e
MOV a,e
cpi ffh
jnz lazo16
jmp lazo14

lazo17: lxi d,0109h

lazo18: ldax d
out 01h
dcr e
mov a,e
cpi ffh
jnz lazo18
jmp lazo19

lazo19: dcr c
ldax b
out 00h
mov a,c
cpi ffh
jnz lazo17
ret

b.- Realizar un programa para simular el funcionamiento de un reloj digital


que pueda mostrar segundos, minutos y horas usando displays de 7
segmentos.

.data 0000h

db 77h,44h,3eh,6eh,4dh,6bh,7bh,46h,7fh,6fh

.org 0011h

mvi a,77h
out 00h
out 01h
out 02h
out 03h
out 04h
out 05h
aqui:
mvi a,77h
out 04h
out 05h
segundos:
lxi d,0001h

inicio: lxi b,0000h

lazo: ldax b
out 05h
inr c
mov a,c
cpi 0ah
jnz lazo
jmp lazo1

lazo1: ldax d
out 04h
inr e
mov a,e
cpi 07h
jnz inicio
mvi a,77h
out 05h
lxi b,0001h
call minutos
jmp aqui

minutos:

ldax b
out 03h
inr c
ret

c.- Realizar un programa para mostrar en la pantalla de displays de 15


segmentos el mensaje sgte:

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA

CICLO 2008_II LIMA PERU


.DATA 00h 00h
00h 75h 81h 55h 42h 00h 24h 11h 18h 33h 90h 17h 18h 63h 42h 00h 42h 66h
18h 57h 42h 66h
90h 17h 42h 00h 00h 33h 18h 57h 90h 17h 42h 66h 00h 77h
18h 17h 18h 57h 00h 31h 05h 55h 18h 57h
18h 13h 18h 57h 00h 33h 00h 75h 00h 31h 42h 00h 18h 57h 42h 66h
42h 66h 18h 33h
42h 00h 81h 55h 10h 73h 18h 33h 81h 55h 42h 00h 18h 33h 90h 17h 42h 00h
18h 57h
18h 33h 18h 63h 00h 33h 00h 75h 18h 33h 00h 31h 18h 57h
18h 17h 90h 17h 00h 77h 18h 13h 18h 33h 18h 63h 42h 00h 00h 77h 81h 55h
18h 57h 00h 31h
42h 66h 18h 33h
42h 00h 81h 55h 10h 73h 18h 33h 81h 55h 42h 00h 18h 33h 90h 17h 42h 00h
18h 57h
18h 33h 00h 31h 18h 33h 00h 33h 42h 02h 90h 17h 00h 77h 81h 55h 42h 00h
00h 33h 18h 57h
00h 33h 42h 00h 00h 33h 00h 31h 00h 77h
18h 36h 00h 77h 00h 77h 18h 77h 00h 20h 42h 11h
00h 31h 42h 00h 05h 55h 18h 57h
18h 17h 18h 33h 90h 17h 00h 75h

d.- Realizar un programa para simular el funcionamiento de un semforo de


tal manera funcione como sigue:

_ Cuando est encendido la luz verde hacia el peatn y la luz roja hacia el
conductor en display indique al peatn el mensaje PASE.

_ Cuando est encendido la luz roja hacia el peatn y la luz verde hacia el
conductor en el display indique al peatn el mensaje ALTO

Para mostrar los focos se debe usar LEDs y para el mensaje display de 15
segmentos.

.data 0200h
DB 18h,17h,18h,57h,18h,63h,18h,33h
DB 18h,57h,00h,31h,42h,02h,00h,77h
.org 0000h
inicio:

mvi b,00h
lazo0: mov a,b
out 00h
inr b
cpi 0fh
jnz aqui
jmp aqui

aqui: cpi 00h


jnz lazo

lazo1: mvi c,0fh

lazo: mov a,c


out 01h
dcr c
cpi 00h
jnz aqui2
call alto

aqui2: cpi 0fh


jnz lazo0
call pase
jmp lazo0

pase:
lxi h,0200h
mov a,m
out 02h
inx h
mov a,m
out 03h
inx h
mov a,m
out 04h
inx h
mov a,m
out 05h
inx h
mov a,m
out 06h
inx h
mov a,m
out 07h
inx h
mov a,m
out 08h
inx h
mov a,m
out 09h
ret

alto:
lxi h,0208h
mov a,m
out 02h
inx h
mov a,m
out 03h
inx h
mov a,m
out 04h
inx h
mov a,m
out 05h
inx h
mov a,m
out 06h
inx h
mov a,m
out 07h
inx h
mov a,m
out 08h
inx h
mov a,m
out 09h
mvi a,0fh
ret
e.- Realizar un programa para mostrar en la pantalla de displays de 15
segmentos los nombres y apellidos de cada alumno.

f .- Realizar un programa para mostrar los datos personales, que debe ser
seleccionado mediante interruptores S1 y S0 colocados en un puerto, y que
muestre lo siguiente:

S1 S0 FUNCIONAMIENTO
0 0 Muestre su nombre
0 1 Muestre las cifras de su DNI
1 0 Muestre el da y el mes de su nacimiento
1 1 Muestre el ao de su nacimiento y su edad

LOS DATOS SE DEBEN MOSTRAR SEGN EL FORMATO

NOMBRE :

DNI:

DIA NACIM:

MES NACIM:

AO NACIM:

EDAD:

6.- CUESTIONARIO :
Presentar el informe con el cuestionario desarrollado,
donde para cada caso realizar:

1.- El diagrama de flujo del programa


2.- El programa
3.- Comentarios y conclusiones.

Programa de 0 a 9 con retardo

.data 0000h

db 77h,44h,3eh,6eh,4dh,6bh,7bh,46h,7fh,6fh

.org 0011
lazo2: lxi h,0000h
lazo: mov a,m
out 00h
call reloj
inr l
mov a,l
cpi 0ah
jnz lazo
jmp lazo2

reloj:
mvi b,01h
lazo1: dcr b
jnz lazo1
ret

prueba de reloj

.data 0000h

db 77h,44h,3eh,6eh,4dh,6bh,7bh,46h,7fh,6fh

.org 0011

mvi a,77h
mvi d,01h
out 00h
out 01h
out 03h
out 04h
out 06h
out 07h

inicio: lxi b,0001h

lazo2: lxi h,0000h


cpi 0ah
jnz lazo

jmp lazo3

lazo: mov a,m


out 07h

inr l
mov a,l
cpi 0ah
jnz lazo
jmp lazo2

lazo3:
ldax b
out 06h
inr c
mov a,c
cpi 07h
jnz lazo
mvi a,77h
out 07h
call reloj
mvi a,77h
out 06h

call minutos
jmp inicio

reloj:
mvi b,02h
lazo1: dcr b
jnz lazo1
ret

minutos:
mov l,d
mov a,m
out 04h
inr d
mov a,d
cpi 0ah
jnz lazo4
hlt
lazo4: ret

RELOJ REDUCIDO

.data 0000h

db 77h,44h,3eh,6eh,4dh,6bh,7bh,46h,7fh,6fh

.org 0011

mvi a,77h
out 00h
out 01h
out 03h
out 04h
out 06h
out 07h

mvi c,01h
lazo0: mvi b,00h
lxi h,0000h

lazo1: mov l,b


mov a,m
out 07h
inr b
mov a,b
cpi 0a
jnz lazo1
jmp lazo2

lazo2: mov l,c


mov a,m
out 06h
inr c
mov a,c
cpi 07h
jnz lazo0
mvi a,77h
out 07h

call retardo
out 06h
hlt

retardo: mvi b,02h


lazo1: dcr b
jnz lazo1
ret

2 PRUEBA DEL RELOJ CON MINUTOS Y SEGUNDOS

.data 0000h

db 77h,44h,3eh,6eh,4dh,6bh,7bh,46h,7fh,6fh

.org 0011

mvi a,77h
out 00h
out 01h
out 03h
out 04h
out 06h
out 07h

mvi e,01h
mvi d,01h
mvi c,01h
lazo0: mvi b,00h
lxi h,0000h

lazo1: mov l,b


mov a,m
out 07h
inr b
mov a,b
cpi 0ah
jnz lazo1
jmp lazo2

lazo2: mov l,c


mov a,m
out 06h
inr c
mov a,c
cpi 07h
jnz lazo0
mvi a,77h
out 07h

call retardo
out 06h
call minutos

retardo: mvi b,02h


lazo3: dcr b
jnz lazo3
ret

minutos: mov l,d


mov a,m
out 04h
inr d
mov a,d
cpi 0ah
jz lazo4
ret

lazo4: mov l,e


mov a,m
out 03h
inr e
mov a,e
cpi 07h
jnz lazo5
mvi a,77h
out 04h
call retardo
out 03h
hlt

lazo5: mvi d,00h


jmp lazo4

3 PRUEBA DE RELOJ CON MINUTOS Y SEGNDOS POSIBLE ACIERTO AQU


CUENTA HASTA 60 MINUTOS

.data 0000h

db 77h,44h,3eh,6eh,4dh,6bh,7bh,46h,7fh,6fh

.org 0011

mvi a,77h
out 00h
out 01h
out 03h
out 04h
out 06h
out 07h

mvi e,01h
mvi d,01h
lazoc: mvi c,01h
lazo0: mvi b,00h
lxi h,0000h

lazo1: mov l,b


mov a,m
out 07h
inr b
mov a,b
cpi 0ah
jnz lazo1
jmp lazo2

lazo2: mov l,c


mov a,m
out 06h
inr c
mov a,c
cpi 07h
jnz lazo0
mvi a,77h
out 07h

call retardo
out 06h
call minutos
jmp lazoc

retardo: mvi b,02h


lazo3: dcr b
jnz lazo3
ret

minutos: mov l,d


mov a,m
cpi 0ah
jnz lazo6
jmp lazo4

lazo6: out 04h


inr d
mov a,d
cpi 0bh
jz lazo4
ret

lazo4:
mov l,e
mov a,m
out 03h
inr e
mov a,e
cpi 07h
jnz lazo5

mvi a,77h
out 04h
call retardo
out 03h
hlt

lazo5: mvi d,00h


jmp minutos

4 RELOJ CON HORA

.data 0000h

db 77h,44h,3eh,6eh,4dh,6bh,7bh,46h,7fh,6fh

.org 0011

mvi a,77h
out 00h
out 01h
out 03h
out 04h
out 06h
out 07h

mvi e,01h
mvi d,01h

lazoc: mvi c,01h


lazo0: mvi b,00h
lxi h,0000h

lazo1: mov l,b


mov a,m
out 07h
inr b
mov a,b
cpi 0ah
jnz lazo1
jmp lazo2

lazo2: mov l,c


mov a,m
out 06h
inr c
mov a,c
cpi 07h
jnz lazo0
mvi a,77h
out 07h

call retardo
out 06h
call minutos
jmp lazoc

retardo: mvi b,02h


lazo3: dcr b
jnz lazo3
ret

minutos: mov l,d


mov a,m
cpi 0ah
jnz lazo6
jmp lazo4

lazo6: out 04h


inr d
mov a,d
cpi 0bh
jz lazo4
ret

lazo4:
mov l,e
mov a,m
out 03h
inr e
mov a,e
cpi 07h
jnz lazo5

mvi a,77h
out 04h
call retardo
out 03h
call horas

lazo5: mvi d,00h


jmp minutos

horas: lxi h,0001h


mov a,m
out 01h
inr l
shld 0100h

out 01h

NUEVO SEMAFORO

.data 0200h
DB 18h,17h,18h,57h,18h,63h,18h,33h
DB 18h,57h,00h,31h,42h,02h,00h,77h

.org 0000h

mvi e,0fh
mvi d,00h
lazo0: mov a,d
out 00h
inr d
cpi 0fh
jnz lazo1
mvi d,00h
jmp lazo1

lazo1: mov a,e


out 01h
dcr e
cpi 00h
jnz lazo2
mvi e,0fh
jmp lazo3

lazo2:
cpi 0fh
jnz lazo0
call pase
jmp lazo0

lazo3: call alto


call retardo
jmp lazo0

pase:
lxi h,0200h
mov a,m
out 02h
inx h
mov a,m
out 03h
inx h
mov a,m
out 04h
inx h
mov a,m
out 05h
inx h
mov a,m
out 06h
inx h
mov a,m
out 07h
inx h
mov a,m
out 08h
inx h
mov a,m
out 09h
ret

alto:
lxi h,0208h
mov a,m
out 02h
inx h
mov a,m
out 03h
inx h
mov a,m
out 04h
inx h
mov a,m
out 05h
inx h
mov a,m
out 06h
inx h
mov a,m
out 07h
inx h
mov a,m
out 08h
inx h
mov a,m
out 09h
mvi a,0fh
ret
retardo: mvi b,04h
lazo4: dcr b
jnz lazo4
ret

Você também pode gostar