Solucion Actividad Central 2

ACTIVIDAD CENTRAL UNIDAD 2 Diseño de productos electrónicos con microcontroladores Nombre de la actividad: Análisis estr

Views 94 Downloads 0 File size 286KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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 Cabe aclarar que los pines de un microcontrolador pueden funcionar como entrada o salida todo depende de la configuración 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. Entrada Análoga 0. Salida del oscilador RA1/ AN1 Timer 1 o entrada de Pin 3. E/S Digital o reloj Timer 1. Entrada Análoga 1. RCI/T10SI/CCP2. RA2/ AN2 Vref Pin. 12 E/S Digital. Pin. 4 E/S Digital o Entrada del oscilador Entrada Análoga 2. Timer1. Entrada RA3/ AN3/ Vref + captura 2; Salida Pin. 5 E/S Digital o compara 2; Salida Entrada Análoga 3. PWM 2 RA 4/ T0CKI RC2/CCP1. Pin. 6 Bit 4 del puerto Pin. 13 E/S Digital. A Entrada Captura 1; ( E/S bidireccional) Salida compara 1; También se utiliza Salida como entrada del reloj PWM 1. al temporizador/ RC3/SCK/SCL. contador TMR0. Salida Pin. 14 E/S Digital. de colector abierto. Línea de reloj serial RA5/ SS/ AN5. asíncrono en el modo Pin. 7 E/S Digital o SPI y el modo I2C Entrada Análoga 4. RC4/SDI/SDA. También lo usa el Pin. 15 E/S Digital. puerto el puerto serial Línea de datos en el síncrono. modo SPI o en el RB0/INT. modo I2C Pin. 21 Bit 0 del puerto RC5/SDO. B (E/S Bidireccional) Pin. 16 E/S Digital. Buffer E/S: TTL/ST. RC6/TX/ CK También se utiliza Pin. 17 E/S Digital. 3

como entrada de interrupción externa (INT). RB1 Pin. 22 Bit 1 del puerto B (E/S Bidireccional). Buffer E/S: TTL. RB2. Pin. 23 Bit 2 del Puerto B (E/S Bidireccional). Buffer E/S: TTL RB3. Pin. 24 Bit 3 del puerto B ( E/S bidireccional). Buffer E/S: TTL RB4. Pin. 25 Bit 4 del puerto B (E/S Bidireccional). Buffer E/S: TTL. Interrupción por cambio del pin. RB5. Pin 26. Bit 5 del puerto B (E/S Bidireccional). Buffer E/S: TTL. Interrupción por cambio del pin.

Transmisión asíncrona (USART) o reloj síncrono (SSP). RC7/RX/DT. Pin. 18 E/S Digital. Recepción asíncrona (USART) o línea de datos (SSP). V DD Pin. 20 voltaje de alimentación DC (+) VSS. Pin. 8,19 Referencia de voltaje (GND). MCLR Pin. 1 Entrada de Reset al microcontrolador. Voltaje de Entrada durante la programación. OSC1/CLKIN Pin. 9 Entrada oscilador cristal oscilador / Entrada fuente de reloj externa.

RB6. Pin 27 Bit 6 del puerto B (E/S Bidireccional). 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.

OSC2/CLKOUT Pin 10. Salida oscilador cristal. Oscilador RC: Salida con un ¼ frecuencia OSC1.

4

Interrupción por cambio del pin. Entrada de datos para programación serial.

2. Comentarios de líneas de código

List p=PIC16F873 Include "P16F873.inc" _config 0x3F38 CBLOCK

0X20

Loops, loops2

ENDC org

0x00

goto Inicio

Inicio

movlw 0x07 movwf CMCON bsf

STATUS, RP0

COMENTARIOS Define el micro a utilizar. Directivas del procesador Palabras de configuración del PIC. BARIABLE 0X20 DEFINE UNA FUNCION REPETITIBA O EN RETARDO,EN OTRO CASO PREGUNTA SI TERMINA EL RETARDO SALTO CONDICIONAL 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) 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 OPTION = SUBRUTINA DE RETARDO EN MILISEGUNDOS ASIGNACION DE PUERTO COMO ENTRADA CAMBIO AL BANCO 1 5

bcf

TRISA, 0

bsf TRISB, 0 bcf STATUS,RP0

CONFIGURAMOS RA0 COMO SALIDA COMO ENTRADA CAMBIO AL BANCO 1

ciclo btfss PORTB,0

goto

ciclo

Como el port b, en este caso vale cero su función es saltar la instrucción e ir directamente a “goto inicio” 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 6

call

retardo

bcf

PORTA,0

call

retardo

goto ciclo

ENCENDERLO LLAMA AL RETARDO ESTE CODIGO HACE LO INDICADO COMO APAGAR UN LED O ENCENDERLO LLAMA AL RETARDO 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

MOVLW

D'200'

MOVWF

loops

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 EL NUMERO DE MILISEGUNDOS LLEGA MOVER EL BALOR DEL REGISTRO 7

top2

top

MOVLW

D'220'

MOVWF

loops2

CLRWDT

NOP

NOP

NOP

NOP

NOP

W AL REGISTRO F DEFINIENDO UNA FUNCION REPETITIVA SUBRUTINA DE RETARDO EN MILISEGUNDOS CARGADO EN EL REGISTRO LOOPS 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 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 lenguaje de programación de computadoras, o comando de protocolo informático que efectivamente hace nada en absoluto. 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 lenguaje de programación de computadoras, o comando de protocolo informático que efectivamente hace nada en absoluto. Secuencia de instrucciones del lenguaje de programación de computadoras, o comando de protocolo informático que efectivamente hace nada en 8

absoluto. NOP

DECFSZ

loops2,1

GOTO

top

DECFSZ

loops,1

GOTO

top2

RETLW

0

END

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

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

9

10