Taller de pic

Solo disponible en BuenasTareas
  • Páginas : 11 (2565 palabras )
  • Descarga(s) : 0
  • Publicado : 15 de junio de 2011
Leer documento completo
Vista previa del texto
Taller de Programación de PIC’s
Programación Avanzada
Universidad Veracruzana Facultad de Ingeniería
M. C. Adrián Sánchez Vidal Octubre de 2009
Taller de Programación de PIC’s. 1

Programación Avanzada 1. 2. 3. 4. 5. 6. 7. 8. Salto Indexado. Subrutinas. Más directivas. Retardos. Timer 0 (TMR0). Bits de Configuración del TMR0. Interrupciones. Otras Directivas.

Taller de Programación dePIC’s. 2

Salto Indexado
El salto indexado es una técnica que permite resolver problemas mediante una tabla de verdad. En el PIC16F84, la dirección del salto se consigue sumando al contador de programa (PCL) un valor de desplazamiento índice almacenado en un registro índice que es el registro de trabajo W, mediante la instrucción: addwf PCL,F

Taller de Programación de PIC’s. 3

SaltoIndexado
Ejercicio: Implementar una tabla de la verdad mediante el manejo de tablas grabadas en ROM. Por ejemplo, la tabla será de 3 entradas y 6 salidas tal como la siguiente:
C B A | S5 S4 S3 S2 S1 S0 -----------|--------------------------0 0 0 | 0 0 1 0 1 0 ; (Configuración 0). 0 0 1 | 0 0 1 0 0 1 ; (Configuración 1). 0 1 0 | 1 0 0 0 1 1 ; (Configuración 2). 0 1 1 | 0 0 1 1 1 1 ; (Configuración3). 1 0 0 | 1 0 0 0 0 0 ; (Configuración 4). 1 0 1 | 0 0 0 1 1 1 ; (Configuración 5). 1 1 0 | 0 1 0 1 1 1 ; (Configuración 6). 1 1 1 | 1 1 1 1 1 1 ; (Configuración 7). ; Las entradas C, B, A se conectarán a las líneas del puerto A: RA2 (C), RA1 (B) y RA0 (A). Las salidas se obtienen en el puerto B: RB5 (S5), RB4 (S4), RB3 (S3), RB2 (S2), RB1 (S1) y RB0 (S0).
Taller de Programación de PIC’s. 4 Salto Indexado
LIST P=16F84A INCLUDE ORG 0 ; El programa comienza en la dirección 0. Inicio bsf STATUS,RP0 ; Acceso al Banco 1. clrf TRISB ; Las líneas del Puerto B se configuran como salida. movlw b'00011111' ; Las 5 líneas del PORTA se configuran como entrada. movwf TRISA bcf STATUS,RP0 ; Acceso al Banco 0. Principal movf PORTA,W ; Lee el valor de las variables de entrada. andlw b'00000111' ;Se queda con los tres bits de entrada. addwf PCL,F ; Salta a la configuración adecuada. Tabla goto Configuracion0 goto Configuracion1 goto Configuracion2 goto Configuracion3 goto Configuracion4 goto Configuracion5 goto Configuracion6 goto Configuracion7

Taller de Programación de PIC’s. 5

Salto Indexado
Configuracion0 movlw b'00001010' ; (Configuración 0). goto ActivaSalida Configuracion1movlw b'00001001' ; (Configuración 1). goto ActivaSalida Configuracion2 movlw b'00100011' ; (Configuración 2). goto ActivaSalida Configuracion3 movlw b'00001111' ; (Configuración 3). goto ActivaSalida Configuracion4 movlw b'00100000' ; (Configuración 4). goto ActivaSalida Configuracion5 movlw b'00000111' ; (Configuración 5). goto ActivaSalida Configuracion6 movlw b'00010111' ; (Configuración 6).goto ActivaSalida Configuracion7 movlw b'00111111' ; (Configuración 7). ActivaSalida movwf PORTB ; Visualiza por el puerto de salida. goto Principal END
Taller de Programación de PIC’s. 6

Salto Indexado
Cuando se utiliza el salto indexado hay que asegurarse que al ejecutar el salto, el registro PCLATH tenga el valor correcto, porque de no ser así, el salto es impredecible. Esto suele ocurrircuando el PCL se desborda sin que el PCLATH se incremente convenientemente. Una manera de resolver el problema, consiste en no usar la instrucción addwf PCL,F cuando el salto llega más allá de la dirección 0FFh de la memoria de programa. A continuación, se propone comprobar el efecto de un uso incorrecto de la instrucción "addwf PCL,F“, simulando el programa “Indexado_03.asm” con el simulador delMPLAB.
Taller de Programación de PIC’s. 7

Subrutinas
Una subrutina es un conjunto de instrucciones al que se tiene acceso desde cualquier punto del programa principal. Es decir, es un subprograma que se ejecuta cada vez que el programa principal lo necesita. Para pasar del programa principal a la subrutina se requiere de una “llamada a la subrutina”, lo cual se realiza con la instrucción...
tracking img