Anda di halaman 1dari 6

REPORTE DE PRCTICA DE LABORATORIO NO.

MANEJO DE INTERRUPCIN EXTERNA


Miyuki Teri Villaln Hernndez, Acosta Vega Moiss Isaas DICIS, Universidad de Guanajuato Salamanca, Mxico mt.villalonhernandez@ugto.mx mi.acostavega@ugto.mx

ResumenLas interrupciones constituyen quiz el mecanismo ms importante para la conexin del microcontrolador con el mundo exterior, sincronizando la ejecucin de programas con acontecimientos externos.

OBJETIVO: Programar el microcontrolador para que acepte interrupcin externa analizando el uso de la pila. COMPONENTES: 1 Microcontrolador PIC 16f883 o 16F887 8 LEDS 8 resistores de 220 1 resistor menor a 40K 1 resistor mayor a 1K 1 capacitor electroltico de cualquier valor EQUIPO: 1 Fuente de +5V 1 Punta lgica 1 Multmetro
I. INTRODUCCIN

una

b) Ya que se haya programado el PIC, este se coloca en la plantilla de trabajo y se conectar de acuerdo con el siguiente diagrama que es para el PIC16F883. Si utiliza el PIC16F887 cambie los pines de acuerdo al diagrama correspondiente en la hoja de datos. Tenga cuidado al manejar el PIC de no daarlo con electricidad esttica (utilizar pinzas para su manejo). El voltaje que se utilizar es de 5V para VDD y 0V para VSS.

l microcontrolador PIC16F88X tiene un mximo de 15 interrupciones. Las interrupciones son llamadas asncronas a subrutinas que desvan el flujo del control del programa. Pueden ser externas como el cambio de estado de un pin de entrada o internas como el desbordamiento de un temporizador. Al ejecutarse una interrupcin se detiene la ejecucin del programa en curso, se guarda la direccin actual del contador de programa en la pila y se carga el contador con la direccin reservada 0004H, donde comienza la rutina de servicio a la interrupcin (RSI). La interrupcin que se utilizar en esta prctica es una externa a travs del pin 0 del puerto B. Consulte en la hoja de datos del PIC la configuracin de las interrupciones mediante el registro INTCON. II. DESARROLLO a) Se programa el PIC con el siguiente cdigo en ensamblador (en caso de duda de cmo hacerlo consulte la Prctica No. 1)

Figura 1. Conexiones PIC16F883

Los valores para los componentes descritos en la figura se dan en la siguiente tabla.

TABLA I
VALORES PARA LOS COMPONENTES

Smbolo VDD R1 R2 C1 .

Valor Min. 5V 1k ND

Valor Max. 5V 40k ND

Microcontroladores

REPORTE DE PRCTICA DE LABORATORIO NO. 2 Cdigo para el PIC.


; Programa contador de 4 bits con 'clear' ; subrutina de retardo y twinkle movlw 0xFF movwf PORTC call retardo clrf PORTC call retardo goto iciclo bcf INTCON,1 retfie

LIST P = 16f883 ; Comando que indica el PIC usado #include "P16F883.INC" __CONFIG _CONFIG1, _INTRC_OSC_NOCLKOUT & _WDT_OFF _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF _BOR_ON & _IESO_OFF & _FCMEN_OFF & _LVP_OFF _DEBUG_OFF; __CONFIG _CONFIG2, _WRT_OFF _BOR40V; RADIX HEX AUX1 EQU 0x20 AUX2 EQU 0x21 AUX3 EQU 0x22 AUX4 EQU 0X23 goto startup ORG 0x04 goto inter startup bsf STATUS,5 bsf STATUS,6 clrf ANSEL clrf ANSELH bcf STATUS,6 movlw b'01010001' movwf OSCCON movlw 0xff movwf TRISB clrf TRISC bcf STATUS,5 movlw 0x90 movwf INTCON clrf AUX1 inicio btfsc PORTB,1 clrf AUX1 incf AUX1 movf AUX1,w movwf PORTC call retardo goto inicio ; SUBRUTINA DE INTERRUPCIN inter movlw 0x0A movwf AUX4 & & & &

; SUBRUTINA DE RETARDO ;Esta rutina se utiliza como un divisor de ;frecuencia, ya que no se puede utilizar ;la frecuencia del PIC de manera directa. retardo movlw 0xff movwf AUX2 one call retardo2 decfsz AUX2,1 goto one return retardo2 movlw 0xff movwf AUX3 two decfsz AUX3,1 goto two return END

III. RESULTADOS Como en nuestro caso utilizamos el microcontrolador PIC16F883 no hubo necesidad de cambiar las conexiones mostradas en la figura 1. Los dos incisos del desarrollo de la prctica los llevamos a cabo sin problema alguno, por lo que al terminar los puntos anteriores lo siguiente fue realizar las pruebas necesarias frente al profesor para recibir su aprobacin.

iciclo decfsz AUX4,F goto twinkle

Figura 2. Conexiones de la figura 1.

Microcontroladores

REPORTE DE PRCTICA DE LABORATORIO NO. 2 En la figura de abajo se muestra el funcionamiento del circuito, primeramente pusimos a trabajar el contador, en la imagen podemos observar lo anterior con los LEDs encendidos. IV. OBSERVACIONES

Aunque el profesor aprob el correcto funcionamiento de nuestro circuito en la Figura 3 podemos observar el contador en funcionamiento y en la Figura 4 la interrupcin activada, no se agrega un imagen donde se vuelva a mostrar el valor de la Figura 3 despus de desactivar la interrupcin, ya que se incrementaba inmediatamente despus y no nos baba tiempo de tomar una fotografa para aadirla al reporte. V. EJERCICIOS 1. Determine en que flanco se realiza la interrupcin es de 0 a 1 o de 1 a 0? Consulte en la hoja de datos el registro OPTION y modifique su cdigo para que la interrupcin se lleve a cabo en el flanco contrario al que se realiza por default. Reporte el cdigo necesario para realizar este cambio. La interrupcin se efecta de 0 a 1. Consultando en la hoja de datos (PIC16F883) el registro OPTION se explica que se puede cambiar el modo de realizar la interrupcin (revisar anexo). startup bsf STATUS,5 bsf STATUS,6 clrf ANSEL clrf ANSELH bcf STATUS,6 movlw b'01010001' movwf OSCCON movlw 0xff movwf TRISB clrf TRISC bcf OPTION_REG,6 bcf STATUS,5 movlw 0x90 movwf INTCON clrf AUX1 2. Exprese con sus propias palabras el funcionamiento del bit 1 del registro INTCON Cul ser su utilidad? Es un bit que indica una interrupcin externa habilitndola o deshabilitndola de acuerdo a su estado cambiando de 0 a 1 cuando exista una interrupcin.
3.

Figura 3. Contador Funcionando.

Ahora mostramos el funcionamiento de la interrupcin en el circuito, se puede observar por medio de los LEDs que ya esta activa.

Figura 4. Interrupcin del microcontrolador activa.

Por ultimo la funcin que resta por mostrar funcionando es la funcin de Reset, en la cual el contador se detiene borra el valor del registro y lo pone a 1 como se muestra en la figura de abajo.

Enumere al menos otras 5 interrupciones con que cuenta el PIC16F883. External Interrupt RB0/INT Timer0 Overflow Interrupt PORTB Change Interrupts 2 Comparator Interrupts A/D Interrupt

Figura 5. Contador reseteado (puesto a 1).

Microcontroladores

REPORTE DE PRCTICA DE LABORATORIO NO. 2 Timer1 Overflow Interrupt Timer2 Match Interrupt EEPROM Data Write Interrupt Fail-Safe Clock Monitor Interrupt Enhanced CCP Interrupt EUSART Receive and Transmit Interrupts Ultra Low-Power Wake-up Interrupt MSSP Interrupt VI. CONCLUSIN Miyuki Teri Villaln Hernndez. En esta prctica observamos el comportamiento del contador pero ahora con interrupciones, siendo esto una practica muy introductoria con respecto a lo que vimos en la clase. El microcontrolador cuenta con diferentes interrupciones en este caso implementamos la interrupcin por el pin RB0 la cual es una interrupcin externa habilitada por el cambio de bajo a alto. Al ejecutarse la interrupcin el microcontrolador saca de lo que estaba ejecutando el contador y va directo a la direccin 04h de programa y ejecuta lo que encuentre a partir de all hasta encontrarse con la instruccin RETFIE que le har abandonar la interrupcin y volver al lugar donde se encontraba antes de producirse dicha interrupcin. Mientras se est ejecutando una interrupcin no se puede producir otra interrupcin, el pic no lo permite. Acosta Vega Moiss Isaas. Nuevamente la prctica nos resulto muy didctica y sencilla dejando claro el objetivo y mostrando los conceptos ms importantes, lo cual es un acierto del profesor en el laboratorio. A pesar de que en cursos anteriores se nos a hablado de las interrupciones en microprocesadores y microcontroladores, me parece que hasta ahora me queda mas claro la utilidad de esta <<herramienta>> en aplicaciones y me hace reflexionar en que otros proyectos acadmicos en los que e participado a lo largo de mis estudios pude haber echado mano de algo como lo visto en esta practica para realizarlos en su momento, tambin me deja algunas dudas respecto a su funcionamiento y alcance en sus aplicaciones ya que en ocasiones me trae confusiones al estudiarlo, las cuales estoy seguro sobre la marcha y la elaboracin del proyecto aclarare, por lo que respeta a esta prctica el objetivo y ejercicios se realizaron correctamente. Buscando informacin por m cuenta aplicaciones principalmente en internet pues veo que prcticamente se pueden usar en todo, es algo verdaderamente increble el beneficio lo que podemos hacer con estos dispositivos si los usamos correctamente por supuesto e imaginacin. REFERENCIAS [1] Data Sheet PIC16F882/883/884/886/887 [2] Manual de prcticas de laboratorio microcontroladores.

Gustavo Cerda Villafaa, Sergio Eduardo Ledesma Orozco, Miguel Torres Cisneros

Microcontroladores

REPORTE DE PRCTICA DE LABORATORIO NO. 2

ANEXO

Microcontroladores

PIC16F882/883/884/886/887
2.2.2.2 OPTION Register
Note: To achieve a 1:1 prescaler assignment for Timer0, assign the prescaler to the WDT by setting PSA bit of the OPTION register to 1. See Section 6.3 Timer1 Prescaler. The OPTION register, shown in Register 2-2, is a readable and writable register, which contains various control bits to configure: Timer0/WDT prescaler External INT interrupt Timer0 Weak pull-ups on PORTB

REGISTER 2-2:
R/W-1 RBPU bit 7 Legend: R = Readable bit -n = Value at POR bit 7

OPTION_REG: OPTION REGISTER


R/W-1 INTEDG R/W-1 T0CS R/W-1 T0SE R/W-1 PSA R/W-1 PS2 R/W-1 PS1 R/W-1 PS0 bit 0

W = Writable bit 1 = Bit is set

U = Unimplemented bit, read as 0 0 = Bit is cleared x = Bit is unknown

RBPU: PORTB Pull-up Enable bit 1 = PORTB pull-ups are disabled 0 = PORTB pull-ups are enabled by individual PORT latch values INTEDG: Interrupt Edge Select bit 1 = Interrupt on rising edge of INT pin 0 = Interrupt on falling edge of INT pin T0CS: Timer0 Clock Source Select bit 1 = Transition on T0CKI pin 0 = Internal instruction cycle clock (FOSC/4) T0SE: Timer0 Source Edge Select bit 1 = Increment on high-to-low transition on T0CKI pin 0 = Increment on low-to-high transition on T0CKI pin PSA: Prescaler Assignment bit 1 = Prescaler is assigned to the WDT 0 = Prescaler is assigned to the Timer0 module PS<2:0>: Prescaler Rate Select bits
Bit Value 000 001 010 011 100 101 110 111 Timer0 Rate 1:2 1:4 1:8 1 : 16 1 : 32 1 : 64 1 : 128 1 : 256 WDT Rate 1:1 1:2 1:4 1:8 1 : 16 1 : 32 1 : 64 1 : 128

bit 6

bit 5

bit 4

bit 3

bit 2-0

DS41291D-page 30

Preliminary

2007 Microchip Technology Inc.

Anda mungkin juga menyukai