Está en la página 1de 6

ACTIVIDAD CENTRAL UNIDAD 2

Diseño de productos electrónicos con microcontroladores


Nombre de la actividad: Análisis estructural y funcional de un
microcontrolador.
Objetivo

Identificar las instrucciones en un código ASM y desarrollar


diagramas de flujo de programas de automatización.

Situación

Se requiere que la llegada de camiones a la empresa sea anunciada con una señal
luminosa que parpadee mientras el vehículo se encuentre en la zona donde el sensor
de presencia está instalado. Se ha adquirido un sistema automatizado con
microcontroladores y usted debe revisar si el código cumple con las características
solicitadas.

Procedimiento:
1. Revise los contenidos del curso asociados con el análisis estructural y
funcional de un microcontrolador.

2. Consulte información en internet sobre la descripción de pines de entrada y


salida del PIC PIC16F873.

Temas asociados

 Análisis estructural del un microcontrolador


 Función global
 Lenguaje ASM
 Diagramas de flujo

Entregas
Para este análisis, utilice la guía que aparece a continuación para desarrollar los
siguientes productos:
1. Descripción de los pines de entrada y salida utilizados para el sistema
automatizado.
2. Comentarios de las líneas de programación del código suministrado por el
proveedor de servicios.

1
3. Diagrama de flujo del programa de automatización.

Una vez finalizada, comprima el archivo en formato .zip o .rar, dando clic derecho al
archivo, Enviar a, Carpeta comprimida. Luego envíela a su facilitador a través del
medio utilizado para tal fin en el curso.

2
DOCUMENTO GUÍA
Diseño de productos electrónicos con microcontroladores
1. Descripción de pines de entrada y salida

ESQUEMA DEL PIC PINES DE ENTRADA PINES DE SALIDA


PIN 1, 2, 3, 4, 5, 6, 7, 8, 9, PIN 2, 3, 4, 5, 6, 7, 10, 11,
11, 12, 13, 14, 15, 16, 17, 12, 13, 14, 15, 16, 17, 18,
18, 19. 20, 21, 22, 23, 24, 21, 22, 23, 24, 25, 26, 27,
25, 26, 27, 28. 28.

2. Comentarios de líneas de código

COMENTARIOS
List p=PIC16F873 modelo de PIC que se usa
(PIC16F873)
Include "P16F873.inc" cargue archivo de usuario
“PIC16F873.inc”
_config 0x3F38 ajuste de bits de configuración
CBLOCK 0X20 define un bloque para las constantes
loops y loops2 con valor inicial 0x20
Loops, loops2 constantes loops y loop2
ENDC finaliza bloque definición
org 0x00 dirección de memoria del programa
donde se situará la siguiente
instrucción
goto Inicio vaya a la subrutina “Inicio”
Inicio movlw 0x07 mueve 0x07 al registro de trabajo W
movwf CMCON carga el registro CMCON con el
contenido de W = 0x07 (inhibe los

3
comparadores)
bsf STATUS, RP0 pone a uno el bit 5 (RP0) del registro
de estado ubicándose en el banco 1
bcf TRISA, 0 pone a cero el bit 0 del registro TRISA
definiendo a RA= como salida.
bsf TRISB, 0 pone a uno el bit 0 del registro TRISB
definiendo a RB0 como entrada
bcf STATUS,RP0 pone a 0 el bit 5 del registro de
estado para regresar al banco 0.
ciclo etiqueta “ciclo”
btfss PORTB,0 prueba de bit (bit test, skip if set),
check del pin 0 del Puerto B. Si es 1
salta a la siguiente instrucción.
goto ciclo ir a ciclo
parpadeo etiqueta “parpadeo”
bsf PORTA,0 pone a uno el bit 0 del puerto A
call retardo llama a la subrutina “retardo”
bcf PORTA,0 pone a cero el bit 0 del puerto A
call retardo llama a la subrutina “retardo”
goto ciclo ir a “ciclo”
retardo etiqueta “retardo”
CLRWDT Pone a cero el registro contador del
temporizador watchdog, asi como el
predivisor
MOVLW D'200' mueve el literal D’200’al registro
de trabajo W
MOVWF loops mueve el contenido de W a loops
top2 MOVLW D'220' mueve el literal D’200’al registro
de trabajo W
MOVWF loops2 mueve el contenido de W a loops
top CLRWDT pone a cero el registro contador del
temporizador watchdog, asi como el
predivisor
NOP consume tiempo de la máquina y
ocupa memoria en el programa
NOP consume tiempo de la máquina y
ocupa memoria en el programa
NOP consume tiempo de la máquina y
ocupa memoria en el programa

4
NOP consume tiempo de la máquina y
ocupa memoria en el programa
NOP consume tiempo de la máquina y
ocupa memoria en el programa
NOP consume tiempo de la máquina y
ocupa memoria en el programa
DECFSZ loops2,1
GOTO top ir a la etiquta”top”
DECFSZ loops,1 decrementa en contenido de lopps
en uno y guarda el resultado en
loops
GOTO top2 Ir a top2
RETLW 0 carga W con el literal 0, y después
carga el PC (contador de programa)
con el valor que se encuentra en la
parte superior de la pila, efectuando
así un retorno de subrutina
END Fin del programa
3. Diagrama de flujo del programa de automatización (código .asm del punto 2)

5
6

También podría gustarte