Sei sulla pagina 1di 10

Diseño de productos electrónicos con

microcontroladores (1910390)

INSTRUCTOR:
ESTEBAN ECHEVERRI ESTRADA

APRENDIZ:
YEISON HURLEY CONTRERAS CHAPARRO

SENA
2019
ACTIVIDAD 2
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 de 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.
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.
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


RAO/ANO RCO/T10SO/T1CKI
Pin. 2 E/S Digital o Pin. 11 E/S Digital. Salida
Entrada Análoga 0. del oscilador Timer 1 o
RA1/ AN1 entrada de reloj Timer 1.
Pin 3. E/S Digital o RCI/T10SI/CCP2.
Entrada Análoga 1. Pin. 12 E/S Digital.
RA2/ AN2 Vref - Entrada del oscilador
Pin. 4 E/S Digital o Timer1. Entrada captura
Entrada Análoga 2. 2; Salida compara 2;
RA3/ AN3/ Vref + Salida PWM 2
Pin. 5 E/S Digital o RC2/CCP1.
Entrada Análoga 3. Pin. 13 E/S Digital.
RA 4/ T0CKI Entrada Captura 1; Salida
Pin. 6 Bit 4 del puerto A compara 1; Salida
( E/S bidireccional) PWM 1.
También se utiliza como RC3/SCK/SCL.
entrada del reloj al Pin. 14 E/S Digital. Línea
temporizador/ contador de reloj serial asíncrono
TMR0. Salida de colector en el modo SPI y el
abierto. modo I2C
RA5/ SS/ AN5. RC4/SDI/SDA.
Pin. 7 E/S Digital o Pin. 15 E/S Digital.
Entrada Análoga 4. Línea de datos en el
También lo usa el puerto modo SPI o en el modo
el puerto serial síncrono. I2C
RB0/INT. RC5/SDO.
Pin. 21 Bit 0 del puerto B Pin. 16 E/S Digital.
(E/S Bidireccional) Buffer RC6/TX/ CK
E/S: TTL/ST. Pin. 17 E/S Digital.
También se utiliza como Transmisión asíncrona
entrada de interrupción (USART) o reloj síncrono
externa (INT). (SSP).
RB1 RC7/RX/DT.
Pin. 22 Bit 1 del puerto B Pin. 18 E/S Digital.
(E/S Bidireccional). Recepción asíncrona
Buffer E/S: TTL. (USART) o línea de datos
RB2. (SSP).
Pin. 23 Bit 2 del Puerto B V DD
(E/S Bidireccional). Pin. 20 voltaje de
Buffer E/S: TTL alimentación DC (+)
RB3. VSS.
Pin. 24 Bit 3 del puerto B Pin. 8,19 Referencia de
( E/S bidireccional). voltaje (GND).
Buffer E/S: TTL MCLR
RB4. Pin. 1
Pin. 25 Bit 4 del puerto B Entrada de Reset al
(E/S Bidireccional). microcontrolador.
Buffer E/S: TTL. Voltaje de Entrada
Interrupción por cambio durante la
del pin. programación.
RB5. OSC1/CLKIN
Pin 26. Bit 5 del puerto B Pin. 9
(E/S Bidireccional). Entrada oscilador cristal
Buffer E/S: TTL. oscilador / Entrada
Interrupción por cambio fuente de reloj externa.
del pin.
OSC2/CLKOUT
RB6. Pin 10. Salida oscilador
cristal. Oscilador RC:
Pin 27 Bit 6 del puerto B Salida con un ¼
(E/S Bidireccional). frecuencia OSC1.
Buffer E/S: TTL/ ST.
Interrupción por cambio
del pin. Entrada de reloj
para programación
serial RB7.
Pin. 28 Bit 7 del puerto B
(E/S Bidireccional).
Buffer E/S: TTL/ST.
Interrupción por cambio
del pin. Entrada de
datos para
programación serial.

2. Comentarios de líneas de código

COMENTARIOS
List p=PIC16F873 Define el micro a utilizar.
Include "P16F873.inc" Directivas del procesador
_config 0x3F38 Palabras de configuración del PIC.
CBLOCK 0X20 BARIABLE 0X20
Loops, loops2 DEFINE UNA FUNCION REPETITIBA O
EN RETARDO,EN OTRO CASO
PREGUNTA SI TERMINA EL RETARDO

ENDC SALTO CONDICIONAL


org 0x00 ES EL VECTOR DE RESET, CADA VEZ
QUE EL MICRO SE INICIE LO HARÁ
DESDE AQUÍ (YA SEA QUE
CONECTARON EL SECUENCIADOR
DIRECTAMENTE O QUE LO
ENCENDIERON O QUE ALGO LE HAYA
OCURRIDO AL MICRO SALTARÁ A ESTE
PUNTO)
goto Inicio VECTOR DE RESET, EN EL 16F84ES UNA
SENTENCIA DE SALTO
INCONDICIONAL DENTRO DEL
ÁMBITO DE UNA FUNCIÓN.O SALTO
DE INICIO A MI PROGRAMA
Inicio movlw 0x07 OPTION = SUBRUTINA DE RETARDO
EN MILISEGUNDOS
movwf CMCON ASIGNACION DE PUERTO COMO
ENTRADA
bsf STATUS, RP0 CAMBIO AL BANCO 1
bcf TRISA, 0 CONFIGURAMOS RA0 COMO SALIDA
bsf TRISB, 0 COMO ENTRADA
bcf STATUS,RP0 CAMBIO AL BANCO 1
ciclo
btfss PORTB,0 Como el port b, en este caso vale cero
su función es saltar la instrucción e ir
directamente a “goto inicio”
goto ciclo ES UNA INSTRUCCIÓN DE SALTO
INCONDICIONAL QUE PERMITE
TRANSFERIR EL CONTROL DE
EJECUCIÓN DIRECTAMENTE A OTRO
PUNTO DE UN MISMO PROGRAMA, EL
CUAL DEBE ESTAR ROTULADO CON
UN IDENTIFICADOR ESPECIAL
LLAMADO ETIQUETA. CONSTITUYE UN
MECANISMO VITAL PARA
PROGRAMAR EN LENGUAJES
PRIMITIVOS COMO COBOL, BASIC Y
ENSAMBLADOR POR CUANTO
PERMITE SIMULAR CONSTRUCCIONES
DE CONTROL ESTRUCTURADAS DE
LAS CUALES CARECEN DICHOS
LENGUAJES, TALES COMO LOS CICLOS
Y ESTRUCTURAS DE SELECCIÓN
MÚLTIPLE (CASE/SWITCH). EL
ENSAMBLADOR INCLUSO
PROPORCIONA UN AMPLIO
CONJUNTO DE INSTRUCCIONES DE
SALTO --VARIANTES DEL GOTO-- SIN
LAS CUALES SERÍA PRÁCTICAMENTE
IMPOSIBLE PRODUCIR PROGRAMAS
DE IMPORTANCIA
parpadeo
bsf PORTA,0 ESTE CODIGO HACE LO INDICADO
COMO APAGAR UN LED O
ENCENDERLO
call retardo LLAMA AL RETARDO
bcf PORTA,0 ESTE CODIGO HACE LO INDICADO
COMO APAGAR UN LED O
ENCENDERLO
call retardo LLAMA AL RETARDO
goto ciclo ES UNA INSTRUCCIÓN DE SALTO
INCONDICIONAL QUE PERMITE
TRANSFERIR EL CONTROL DE
EJECUCIÓN DIRECTAMENTE A OTRO
PUNTO DE UN MISMO PROGRAMA, EL
CUAL DEBE ESTAR ROTULADO CON
UN IDENTIFICADOR ESPECIAL
LLAMADO ETIQUETA. CONSTITUYE UN
MECANISMO VITAL PARA
PROGRAMAR EN LENGUAJES
PRIMITIVOS COMO COBOL, BASIC Y
ENSAMBLADOR POR CUANTO
PERMITE SIMULAR CONSTRUCCIONES
DE CONTROL ESTRUCTURADAS DE
LAS CUALES CARECEN DICHOS
LENGUAJES, TALES COMO LOS CICLOS
Y ESTRUCTURAS DE SELECCIÓN
MÚLTIPLE (CASE/SWITCH). EL
ENSAMBLADOR INCLUSO
PROPORCIONA UN AMPLIO
CONJUNTO DE INSTRUCCIONES de
retardo
retardo
CLRWDT ESTA INSTRUCCIÓN BORRA EL
WATCHDOGD COMO EL PRESCALER
LOS BIT TO Y PD DEL REGISTRO DE
ESTADO SE PONE A “1” SINTAXIS
[IABEL]CIRUDI FLAXGS AFECTADOS
:TO PD
MOVLW D'200' EL NUMERO DE MILISEGUNDOS LLEGA

MOVWF loops MOVER EL BALOR DEL REGISTRO W AL


REGISTRO F DEFINIENDO UNA
FUNCION REPETITIVA
top2 MOVLW D'220' SUBRUTINA DE RETARDO EN
MILISEGUNDOS
MOVWF loops2 CARGADO EN EL REGISTRO LOOPS

top CLRWDT ESTA INSTRUCCIÓN BORRA EL


WATCHDOGD COMO EL PRESCALER
LOS BIT TO Y PD DEL REGISTRO DE
ESTADO SE PONE A “1” SINTAXIS
[IABEL]CIRUDI FLAXGS AFECTADOS
:TO PD
NOP Secuencia de instrucciones del
lenguaje de programación de
computadoras, o comando de
protocolo informático que
efectivamente hace nada en absoluto.
NOP Secuencia de instrucciones del
lenguaje de programación de
computadoras, o comando de
protocolo informático que
efectivamente hace nada en absoluto.
NOP Secuencia de instrucciones del
lenguaje de programación de
computadoras, o comando de
protocolo informático que
efectivamente hace nada en absoluto.
NOP Secuencia de instrucciones del
lenguaje de programación de
computadoras, o comando de
protocolo informático que
efectivamente hace nada en absoluto.
NOP Secuencia de instrucciones del
lenguaje de programación de
computadoras, o comando de
protocolo informático que
efectivamente hace nada en absoluto.

Secuencia de instrucciones del


NOP lenguaje de programación de
computadoras, o comando de
protocolo informático que
efectivamente hace nada en absoluto.
DECFSZ loops2,1 PREGUNTA SI TERMINO 1 MS
GOTO top Saltar al top 1.
DECFSZ loops,1 Decrementa en 1 loops y pregunta si es
cero y salta, sino continua
GOTO top2 Salta al top 2.
RETLW 0 Retorna con W=0.
END Significa que todo termino.

3. Diagrama de flujo del programa de automatización (código .asm del punto 2)

INICIO

CICLO

PARPADEO

RETARDO

END

Potrebbero piacerti anche