You are on page 1of 7

PROGRAMACION BASICA DE MICROCONTROLADORES PIC 2011

ACTIVIDAD No. 4 UTILIZANDO LOS PERIFERICOS INTERNOS: CONTROLANDO EL TIEMPO CON EL TMR0 (TIMER CERO) Y MANEJO DE INTERRUPCIONES

SENA REGIONAL SANTANDER

CENTRO INDUSTRIAL DE MANTENIMIENTO INTEGRAL GIRON

CODIGO PROGRAMA: 9382006 NO. FICHA: -

GIRON, 27 DE AGOSTO DEL 2011

PROGRAMACION BASICA DE MICROCONTROLADORES PIC 2011

ACTIVIDAD DE APRENDIZAJE No. 3

Nombre actividad: Utilizando los perifricos internos: Controlando el tiempo con el trm0 (timer cero) y manejo de interrupciones Desarrollo de la competencia: Mejorar el funcionamiento de mquinas y procesos, buscando su eficiencia y productividad. Resultados de aprendizaje asociados: Integrar tecnologas para la optimizacin de procesos industriales. ACTIVIDADES A REALIZAR 1. Con base al tema explicado en la clase previamente anterior, se intenta manejar a travs de los pines externos del microcontrolador PIC16F84A, un sencillo temporizado controlado internamente por el mdulo timer cero (TMR0), asi como utilizar el manejo de las interrupciones internas del micro, referentes a los perifricos internos, en este caso, al mismo mdulo timer cero. Inicialmente se manejaran dos circuitos de prueba: Uno es el que desplegar el resultado de la simulacin de un programa de retardo de tiempo que ajusta el perodo de intermitencia en un diodo LED conectado al pin RB7 del micro. El otro desplegar el resultado del estado de dos interruptores colocados como entradas digitales en los pines RA0 y RA1, que se indicarn dichos estados anteriomente mencionados de los interruptores, en los pines de salida con diodos LEDs en RB0 y RB1 respectivamente; pero simultneamente se manejar la intermitencia de un diodo LED en el pin RB7, a cada segundo en los estados de encendido y apagado. Se les entregar cuatro archivos digitales para realizar la gua de actividades: Dos son los planos electrnicos de los circuitos de prueba mencionados en archivo de documento portable (*.pdf) y otros dos son los cdigos objeto de los programas en el microcontrolador mencionado (*.hex).

Figura 1. Imagen del programa ISIS Proteus Schematic Design, as como el diagrama de unos de los circuitos mostrado, para la simulacin del circuito de la actividad mencionada.

PROGRAMACION BASICA DE MICROCONTROLADORES PIC 2011 Los cdigos fuente del archivo (*.asm) que describe el programa en el microcontrolador, para el caso del manejo del control de tiempo del TMR0 (timer cero), est descrito de la siguiente manera:
;******************************************************************************************* ;********** PROGRAMA PIC PARA CONTROL TIEMPO EMPLEANDO EL TMR0 (TIMER CERO) **********

;*******************************************************************************************

;********************************

INICIO DEL PROGRAMA

***********************************

list #include

p=pic16f84a p16f84a.inc

__config _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF ;Set oscillator to XT, watchdog time off, ;power up timer on y code protect program off radix org goto hex 0000h inicio ; Direccin del vector de reset

;************************************* EQUIVALENCIAS

**************************************

LED_interm

equ

0x07

; Pin para el LED intermitente del circuito

;***************************** SUBRUTINAS DE TEMPORIZACION *******************************

retardo siga

clrf btfss goto return

TMR0 TMR0,04h siga

; El TRM0 = 0 y empieza su incremento ; TRM0<4> = 1 ? ; No ha llegado el TMR0 a 16 ; Ha llegado el TRM0 al valor de 16 PROGRAMA PRINCIPAL *******************************

;*********************************

inicio

bsf clrw movwf movlw

STATUS,RP0

; Acceso al banco 01 de memoria de programa ; Pines del puerto B ajustados como salidas

TRISB b'11010110' ; Asignamos al preescaler del Timer Cero un ;cambio de 1:128 ciclos de instruccin

PROGRAMACION BASICA DE MICROCONTROLADORES PIC 2011


movwf OPTION_REG

bcf

STATUS,RP0

; Acceso al banco 00 de memoria de programa

parpadeo

bsf call bcf call goto

PORTB,LED_interm retardo PORTB,LED_interm retardo parpadeo

; Enciende el LED RB7 = 1 ; Llama a subrutina de RETARDO ; Apaga el LED RB7 = 0

end

Los cdigos fuente del archivo (*.asm) que describe el programa en el microcontrolador, para el caso del manejo de la interrupcin del mdulo del TMR0 (timer cero), est descrito de la siguiente manera:
;******************************************************************************************* ;********** PROGRAMA PIC PARA MANEJO INTERRPCION TIMER CER0 (TMR0) **********

;*******************************************************************************************

;********************************* INICIO DEL PROGRAMA

***********************************

list #include

p=pic16f84a p16f84a.inc & _CP_OFF

__config _XT_OSC & _WDT_OFF & _PWRTE_ON

;Set oscillator to XT, watchdog time off, ;power up timer on y code protect program off radix org goto hex 0000h inicio ; Direccin del vector de reset

org goto

0004h interrp ; Direccion vector interrupcion

;************************************

EQUIVALENCIAS

**************************************

PROGRAMACION BASICA DE MICROCONTROLADORES PIC 2011


reg_aux LED_Sw1 LED_Sw2 equ equ equ 0x0c 0x00 0x01 ; Registro auxiliares para temporizacion ; Pin para LED's indicadores estado Sw1 y Sw2

LED_interm

equ

0x00

; Pin para el LED intermintente del circuito

;*********************************

PROGRAMA PRINCIPAL

*******************************

inicio

bsf movlw movwf clrw movwf movlw movwf

STATUS,RP0 b'0000011' TRISA

; Acceso al banco 01 de memoria de programa ; Configuro RA0 y RA1 como entradas digitales

; Todas los pines del puerto B ajustados como salidas TRISB b'00000111' OPTION_REG ; Preescaler del Timer Cero un cambio de 1:256 ; ciclos por instruccin

bcf

STATUS,RP0

; Acceso al banco 00 de memoria de programa

movlw movwf movlw movwf movlw movwf

b'10100000' INTCON 0x10 reg_aux 0x0c TMR0

; Se permite interrupcin TMR0 y global (GIE)

; Se carga reg_aux con valor 16 decimal

; Se carga TMR0 con 12 decimal

bucle

btfsc goto bcf goto

PORTA,00h ra0_1 PORTB,00h ra1_x PORTB,LED_Sw1 PORTA,01h

; Explora RA0 y brinca si 0 ; Salta a ra0_1 ; Si RA0 = 0, entonces RB0 = 0 ; A explorar RA1 ; Si saca RA0 = 1, entonces RB0 = 1 ; Examino RA1 y brinco si 0

ra0_1 ra1_x

bsf btfsc

PROGRAMACION BASICA DE MICROCONTROLADORES PIC 2011


goto bcf goto ra1_1 bucle2 bsf goto ra1_1 PORTB,LED_Sw2 bucle2 PORTB,01h bucle ; Si RA1 = 1, entonces RB1 = 1 ; Bucle indefinido, se sale por la interrp ; Salta si RA1 = 1 ; Si RA0 = 0, entonces RB0 = 1

;****************

SUBRUTINA DE INTERRUPCION DEL TMR0 (TIMER CERO)

**********************

interrp

decfsz reg_aux,f

; Decrementa reg_aux y salta si 0

goto conta_0 movlw movwf btfsc goto bsf goto rb7_1 seguir bcf movlw

seguir 0x10 reg_aux PORTB,LED_interm rb7_1 PORTB,LED_interm seguir PORTB,LED_interm b'10100000' ; Si RB7 = 1, se invierte ; Se restaura INTCON por desactivar ; las interrupciones del procesador ; Si RB7 = 0, se invierte ; Si RB7 = 0, brinca ; Si reg_aux = 0 se carga

movwf movlw movwf retfie

INTCON 0x0c TRM0 ; Se recarga el TMR0 con valor 12 decimal

end

La primera actividad consiste en montar el circuito en ISIS Proteus, el diagrama del circuito mostrado en las figuras entregadas, e igualmente con el cdigo objeto entregado con el programa del micro. Luego, se detallar lnea a lnea que hace cada instruccin del microcontrolador dentro de la ejecucin del programa. 2. La segunda actividad consiste en identificar las lneas dentro de cada cdigo fuente (*.asm) del microcontrolador entregados, las instrucciones o el bloque de instrucciones que realizan las siguientes operaciones:

PROGRAMACION BASICA DE MICROCONTROLADORES PIC 2011 a) Para el primer circuito y cdigo fuente mencionado, el bloque de instrucciones que realiza la operacin de retardo y con qu instrucciones se ejecuta. b) Para el segundo circuito y cdigo fuente mencionado, la instruccin que ubica el vector de interrupcin, y el bloque de instrucciones que ejecuta la subrutina de interrupcin del timer cero por desbordamiento de cuenta. En ambos casos, debe entregar subrayado y en letra en negrilla (por ejemplo), dentro del cdigo fuente asociado, lo que se est pidiendo en las lneas del programa del cdigo fuente. Espero les haya gustado la actividad, cualquier duda por favor consultar para entregar el mismo da. EVIDENCIAS REQUERIDAS Evidencia: Archivo en formato de imagen del diagrama de simulacin del circuito, asi como un bloque de texto que incluya la seleccin de las lneas de cdigo requeridas para detallar dentro de los cdigos fuente entregados. Tipo de evidencia: Desempeo Descripcin: Archivos de documento protegido (*.pdf), y bloque de texto (*.txt) y enviarlo al correo electrnico de instructor como archivo adjunto, indicando los nombres de los integrantes del grupo en el cuerpo del mensaje del correo, para cada una de las actividades mencionadas. Producto entregable: Dos (2) archivos de documento protegido (*.pdf), y un bloque de texto en Bloc de Notas, todos dentro de un archivo Word (*.docx), si lo desea. Forma de entrega: Por correo electrnico (e-mail) para el instructor designado. Criterios de evaluacin: Define alternativas de solucin para problemas o necesidades que involucren procesos de automatizacin en mquinas y procesos industriales.

Instrumento de evaluacin: Tipo: Aprendizaje basado en problemas Cdigo: 93820006-04

You might also like