Tecnico Universitario En Electronica Y Electricidad
INSTITUTO DE ELECTRONICA MODERNA
Julián Barraquero n° 14, CP: 5500, Mendoza (Argentina). Tel: (0261)4-242420. ( Casi esquina con San Martín n° 200, de ciudad).
1.-
APENDICE N°1.
PROGRAMA APRENDIZAJE :
EJEMPLO N°1 : Utilizando el PIC 16X 84 que trabaja a 1 Mhz se conecta un led a la línea RB7 de la PUERTA B. Se desea hacer parpadear al led cada 8,2 ms . En primer lugar vamos aexplicar dos nuevas instrucciones que nos van a ser de gran utilidad, ya que nos van a permitir realizar subrutinas dentro de nuestro código. Las subrutinas desvían el flujo de ejecución de nuestro programa a otro punto, pudiendo luego retornar al punto original, para lo cual ha de salvarse el Contador de Programa en la pila. La pila del PIC 16X84 tiene 8 niveles, lo que permite anidar hasta 8subrutinas mediante las siguientes instrucciones : call k : Guarda la dirección de la instrucción actual en la pila y salta a la dirección llamada. ( k = literal ). return : Retorna a la dirección que esté en la cabeza de la pila, esto es, la última que haya sido almacenada. Para medir los 8,2 ms se emplea el TMR0 al cual se le hace contar 16 impulsos del reloj interno divididos por 128 mediante el Divisorde Frecuencia. La fórmula de tiempo es :
Temporización = 4 . 1µs . Tose . Valor cargado en TMR0, rango de divisor = ? ms. Temporización = 4 . 1µs . 16 . 128 = 8192 µs = 8192µs/1000= 8,192ms aprox. 8,2 ms El reloj/4 es un microsegundo. Recordemos que a Tosc le colocaremos un 0 para que el incremento del TMR0 se realice con el reloj interno.
A continuación se presenta el diagrama de flujo delprograma.
Subrutina de retardo.
INICIO
Configurar la PUERTA B, como salida
Borrar temporizador
Temp =1 Borrar PUERTA B
Encender led Subrutina de retardo Apagar led subrutina de retardo
RETORNO
iem
INSTITUTO DE ELECTRONICA MODERNA
Julián Barraquero n° 14, CP: 5500, Mendoza (Argentina). Tel: (0261)4-242420. ( Casi esquina con San Martín n° 200, de ciudad).
2.-
Paracomprobar que el TMR0 ha llegado a 1610 = 0001 00002 se explora el momento en que su bit 4 ósea Tose que pasa a valer 1. Para asignar el divisor de frecuencia al TMR0 con el rango de 1 :128 tendremos que cargar al registro OPTION con el valor indicado en el siguiente desarrollo del programa.
A continuación se desarrolla esquemáticamente el correspondiente programa.
Micro a utilizar
ListTMR0_OPT PUERTA B ESTADO
P=16c84
EQU EQU EQU 01 06 03
Configuración de constantes
ORG bsf movlw movwf movlw movwf bcf bcf 0 ;inicio el programa en 0. ;elijo el banco 1. ;valor que cargo en OPTION. ;muevo w para cargar TMR0. ; coloco en w ceros para la puerta b. ;la puerta B es salida por los ceros cargados. ;vuelvo al banco 0. ; clareo la puerta B. ; enciendo el led en el pin 7. ; llamo asubrutina RETARDO. ; apago el led que encendí. ; llamo de nuevo a subrutina. ; hago el bucle. ;clareo el temporizador y comienza el incremento. ;explora el bit 4 =1 ósea llego a 16 10 ; no llegó TMR0 a 16 10 ; retorna al programa principal. ESTADO,5 b’11010110’ TMR0_0PT b’00000000’ PUERTAB ESTADO,5 PUERTAB PUERTAB,7 retardo PUERTAB,7 retardo parpadeo TMR0_OPT TMR0_OPT,4 explora
Configuración depuertos
parpadeo bsf call bcf Programa call principal goto retardo explora clrf btfss goto return END
Configuración de subrutinas
Configuración del Hard para el programa anterior.
Vdd +5V
RESET
10 K Diodo de señal + 5V
PIC16C/F84 1 2 3 4 5 6 7 8 9 RA2 RA3 RA4/TOCKI MCLR/Vpp Vss RB0/INT RB1 RB2 RB3 RA1 RA0 OSC1 OSC2 Vdd RB7 RB6 RB5 RB4 18 17 16 15 14 13 12 11 10
15k
NC
27pF680
LED
iem
NOTA :
INSTITUTO DE ELECTRONICA MODERNA
Julián Barraquero n° 14, CP: 5500, Mendoza (Argentina). Tel: (0261)4-242420. ( Casi esquina con San Martín n° 200, de ciudad).
3.-
Así quedaría el registro OPTION con el valor asignado al Divisor de TMR0 y hacer que divida por 128 los impulsos del reloj interno.
1
1
0
1
0
1
1
0
TOSC TOSE PSA...
Regístrate para leer el documento completo.