Sei sulla pagina 1di 11

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN

FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS

ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

INFORME DE LABORATORIO DE MICROCONTROLADORES

Y MICROPROGRAMACIÓN

Integrantes: ANCALLA, AYAMAMANI, TONY

ARCE TUPACYUPANQUI, PAULO

RAMIREZ LLERENA, NILTON

Grupo: 4

Turno: Miércoles, 13:00 – 14:30

Laboratorio Nro: 1

Título: “Software de Simulación para

Microcontroladores PIC – MPLAB 8.80 Y PROTEUS”

Docente Responsable: Ing. JUAN CARLOS CUADROS M.

Fecha: 20 - 06 - 12

AREQUIPA – PERÚ
LABORATORIO NRO 2 DE MICROCONTROLADORES

• De hecho que el display nos limita muxo


• la "a" va a ser mayúscula A
• la "b" va a ser minúscula b
• la "c" va a ser minúscula c
• la "d" va a ser minúscula d
• la "e" va a ser mayúscula E
• la "f" va a ser mayúscula F
• y la "g" va a ser mayúscula G
• la "h" va a ser minúscula h
• la "i" va a ser mayúscula I
• y por último, la "j" va a ser mayúscula J

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0


a 0 1 1 1 0 1 1 1
b 0 1 1 1 1 1 0 0
c 0 1 0 1 1 0 0 0
d 0 1 0 1 1 1 1 0
e 0 1 1 1 1 0 0 1
f 0 1 1 1 0 0 0 1
g 0 0 1 1 1 1 0 1
h 0 1 1 1 0 1 0 0
i 0 0 0 0 0 1 1 0
j 0 0 0 1 1 1 1 0

;retlw b'01110111';Código de 7 segmentos para la letra a

;retlw b'01111100';Código de 7 segmentos para la letra b

;retlw b'01011000';Código de 7 segmentos para la letra c

;retlw b'01011110';Código de 7 segmentos para la letra d

;retlw b'01111001';Código de 7 segmentos para la letra e

;retlw b'01110001';Código de 7 segmentos para la letra f

;retlw b'00111101';Código de 7 segmentos para la letra g

;retlw b'01110100';Código de 7 segmentos para la letra h


;retlw b'00000110';Código de 7 segmentos para la letra i

;retlw b'00011110';Código de 7 segmentos para la letra j

ALGORITMO

1 inicio

2 Variables:

Bits de entrada: RA7, RA6, RA5, RA4, RA3, RA2, RA1, RA0,

Bits de salida : RB7, RB6, RB5, RB4, RB3, RB2, RB1, RB0,

INICIO DE PROGRAMA

3 VER RA7

si RA7 = 0 entonces

RB6 = 1

Si no pasar a VER RA6

4 VER RA6

si RA6 = 1 entonces

RB6 = 1

Si no pasar a VER RA5

5 VER RA5

si RA5 = 1 entonces

RB6 = 1

Si no pasar a VER RA4

6 VER RA4

si RA4 = 0 entonces

RB6 = 1

Si no pasar LEER LETRA A

7 LEER LETRA A
SI RA3 RA2 RA1 RA0 = ‘0 0 0 1’

Mostrar RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 = ‘01110111’

Sino RB6 = 1

8 LEER LETRA b

SI RA3 RA2 RA1 RA0 = ‘0 0 1 0’

Mostrar RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 = ‘'01111100'’

Sino RB6 = 1

9 LEER LETRA c

SI RA3 RA2 RA1 RA0 = ‘0 0 1 1’

Mostrar RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 = ‘'01011000'’

Sino RB6 = 1

10 LEER LETRA d

SI RA3 RA2 RA1 RA0 = ‘0 1 0 0’

Mostrar RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 = '01011110'

Sino RB6 = 1

11 LEER LETRA e

SI RA3 RA2 RA1 RA0 = ‘0 1 0 1’

Mostrar RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 = '01111001'

Sino RB6 = 1

12 LEER LETRA f

SI RA3 RA2 RA1 RA0 = ‘0 1 1 0’

Mostrar RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 = '01110001'

Sino RB6 = 1

13 LEER LETRA g

SI RA3 RA2 RA1 RA0 = ‘0 1 1 1’

Mostrar RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 = '00111101'
Sino RB6 = 1

14 LEER LETRA h

SI RA3 RA2 RA1 RA0 = ‘1 0 0 0’

Mostrar RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 = '01110100'

Sino RB6 = 1

15 LEER LETRA i

SI RA3 RA2 RA1 RA0 = ‘1 0 0 1’

Mostrar RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 = '00000110'

Sino RB6 = 1

16 LEER LETRA j

SI RA3 RA2 RA1 RA0 = ‘1 0 1 0’

Mostrar RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 = '00011110'

Sino RB6 = 1

17 Ir a INICIO DE PROGRAMA

18 FIN

PROGRAMA EN ENSAMBLADOR
list p=16f877

;se pudo poner: #include <P16F84A.INC>

;para no escribir lo del Mapa de Memoria

;-----------MAPA DE MEMORIA----------

status equ 0x83

trisa equ 0x85

trisb equ 0x86

porta equ 0x05


portb equ 0x06

ascii equ 0x21

;-------------------------------------

;-------------------------------------

org 0x00 ;Punto de origen de Mem. de Programa

goto inicio ;Goto es para mandarlo a inicio

inicio bsf status,5 ;Poner un uno en el bit 5 de registro Status

;que corresponde a RP0 para ubicarnos en

;el banco 1

movlw 0xff ;Se está cargando al acumulador 11111111 en hex.

movwf trisa ;Lo que está en el acumulador W lo pasamos

;al registro TRISA para configurar el puerto A

;como entrada

clrf trisb ;Limpiar el registro trisb, se esta configurando

;el puerto B como salida

bcf status,5 ;Poner un cero en el bit 5 de registro Status

;que corresponde a RP0 para regresar al

;banco 0

;-------------------------------------

RUTINA movlw porta ;Cargamos al acumulador el contenido del puerto A

movwf ascii ;Movemos el contenido del acumulador al registro

;de propósito general ascii

clrw ;limpiamos el acumulador

call descart

goto RUTINA ;Regresaos al comienzo de Rutina

;--------------------------------------

descart btfsc ascii,7

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,6
retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,5

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,4

retlw b'01000000';Código de 7 segmentos para la letra -

call paraa

paraa btfss ascii,3

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,2

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,1

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,0

retlw b'01000000';Código de 7 segmentos para la letra -

retlw b'01110111';Código de 7 segmentos para la letra a

call parab

parab btfss ascii,3

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,2

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,1

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,0

retlw b'01000000';Código de 7 segmentos para la letra -

retlw b'01111100';Código de 7 segmentos para la letra b

parac btfss ascii,3

retlw b'01000000';Código de 7 segmentos para la letra -


btfss ascii,2

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,1

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,0

retlw b'01000000';Código de 7 segmentos para la letra -

retlw b'01011000';Código de 7 segmentos para la letra c

parad btfss ascii,3

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,2

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,1

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,0

retlw b'01000000';Código de 7 segmentos para la letra -

retlw b'01011110';Código de 7 segmentos para la letra d

parae btfss ascii,3

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,2

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,1

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,0

retlw b'01000000';Código de 7 segmentos para la letra -

retlw b'01111001';Código de 7 segmentos para la letra e

paraf btfss ascii,3

retlw b'01000000';Código de 7 segmentos para la letra -


btfsc ascii,2

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,1

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,0

retlw b'01000000';Código de 7 segmentos para la letra -

retlw b'01110001';Código de 7 segmentos para la letra f

parag btfss ascii,3

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,2

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,1

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,0

retlw b'01000000';Código de 7 segmentos para la letra -

retlw b'00111101';Código de 7 segmentos para la letra g

parah btfsc ascii,3

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,2

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,1

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,0

retlw b'01000000';Código de 7 segmentos para la letra -

retlw b'01110100';Código de 7 segmentos para la letra h

parai btfsc ascii,3

retlw b'01000000';Código de 7 segmentos para la letra -


btfss ascii,2

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,1

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,0

retlw b'01000000';Código de 7 segmentos para la letra -

retlw b'00000110';Código de 7 segmentos para la letra i

paraj btfsc ascii,3

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,2

retlw b'01000000';Código de 7 segmentos para la letra -

btfsc ascii,1

retlw b'01000000';Código de 7 segmentos para la letra -

btfss ascii,0

retlw b'01000000';Código de 7 segmentos para la letra -

retlw b'00011110';Código de 7 segmentos para la letra j

return RUTINA

;-------------------------------------------------------------

end
SIMULACION EN PROTEUS

CONCLUSIONES

• Se pudo realizar la simulación en PROTEUS, previamente con el programa diseñado en


MPLAB.
• Al diseñar el circuito en PROTEUS, se comprobó que se puede simular de manera correcta
siguiendo las especificaciones del PIC con el cual estamos trabajando ( 16F877A )
• Se pudo representar con el DISPLAY de 7 segmentos en la simulación a partir del
programa de MPLAB,
• Se han colocado resistencias en las entradas del microcontrolador con el fin de evitar que
este interprete altas impedancias en la entrada y por lo tanto se obtuviera siempre un ‘1’
lógico
• El uso de las instrucciones en el MPLAB y la combinación de las mismas permite trabajar
de manera organizada tal que sea posible el hecho de descartar o incluir algunas cantidades
a las posibles combinaciones de entradas a nuestro dispositivo.

Potrebbero piacerti anche