Pic16f84a retardos

Solo disponible en BuenasTareas
  • Páginas : 7 (1719 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de marzo de 2011
Leer documento completo
Vista previa del texto
Universidad Autónoma de Baja California
Facultad de Ingeniería

Materia: Laboratorio Control por microcontroladores

Numero de práctica: práctica #4

Nombre de la práctica: rutinas de retardo

Nombre de la maestra: Mónica Valenzuela D.

Nombre del alumno: Lino Maciel Vargas

Matricula: 00192499
Correo electrónico: lino1580@hotmail.com

Domingo, 13 de septiembre de 2009INTRODUCCION
RUTINAS DE RETARDO.- Un retardo, es una forma de control de tiempo en la programación del PIC, Las instrucciones 'normales' utilizan un ciclo de máquina para ejecutarse, un ciclo máquina es la unidad básica de tiempo de ejecución de un programa en un PIC y depende de la velocidad del oscilador. Hay instrucciones llamadas de salto como goto, return, call, btfss etc. que necesitan 2 ciclosmáquina para ejecutarse. Si contamos los ciclos máquina de una determinada parte de instrucciones de un programa, podremos controlar los tiempos de retardo. Como sabemos que F=1/T, siendo F=frecuencia y T=tiempo, podemos determinar cuánto tiempo consumirá una instrucción en el micro controlador, sabiendo que para ejecutar una instrucción el micro controlador utiliza 4 pulsos de reloj.
un microcontrolador funciona a 4MHz, ¿qué tardará en ejecutar una
instrucción?
F=1/4T -> T=1*4/F
Si F=4MHz
T=1/F = 1*4/4000000 =1useg
Es decir que para un reloj de 4 MHz, cada instrucción simple tardará 1 useg, y para las instrucciones de salto tardará 2useg.
TMR0.- registro que contiene el valor del contador/ temporizador (8 bits)
OPTION REG.- registro que permite el control del contador/temporizador, de la interrupcion
Registro option :
Este registro controla varias funciones del temporizador (bits 0..5), de la interrupción externa (bit 6), así como las resistencias de pull up del puerto b (bit 7). En seguida se muestra un diagrama del registro de opción (direccion 81h)
Rbpu | Intedg | Tocs | Tose | Psa | Ps2 | Ps1 | Ps0 |
WATCH DOG TIMER
El WDT.- es un circuito devigilancia que permite generar un pulso de reset automático en caso de que el 16F84 se salga de operación por alguna inestabilidad en el voltaje de alimentación en su fuente de poder ó alguna falla en la ejecución del programa. La función es sumamente importante para evitar que el sistema necesite intervención manual externa para dar reset al procesador. El WDT funciona como un contador de eventos cada18 ms, el cual genera un reset al sistema cuando la cuenta llega a un máximo y genere un TIMEOUT.
SLEEP.-es una orden para poner el PIC en bajo consumo, en donde el PIC deja de trabajar por un tiempo indeterminado, pues solo después de una interrupción externa que afecte al registro INTCON, en su bit INT, podría hacer que el PIC comience a ejecutar rutinas y se active el contador
El modo standbydel PIC (SLEEP) puede ser cancelado por el desborde del WDT o por la ocurrencia de cualquier tipo de interrupción.

OBJETIVO:
Diseño de sistemas controlados por tiempo
DESARROLLO:
Problema: diseñar un sistema para el control de in motor de 4 pasos utilizando TMR0 en la rutina de retardo

Circuito eléctrico

Diagrama de flujo:

Código:
list p=16f84A
radix hex
status equ 3
rp0 equ 5porta equ 5
portb equ 6
optreg equ 1
tmr0 equ 1
w equ 0
f equ 1
intcon equ 0b
t0if equ 2
temp equ 0c
velocidad equ 0d
veces equ 0e
c equ 0
z equ 2

org 0
goto inicio
org 5
inicio bsf status,rp0
movlw b'00011111'
movwf porta
clrf portb
bcf status,rp0
apaga clrf portb
movlw b'00000001'
movwf temp
bcf status,c
lee movf porta,w
andlw b'00000111'
movf velocidadbtfss porta,4
goto apaga
btfss porta,3
goto izquierda
goto derecha
derecha movf temp,w
movwf portb
call delay1s
rrf temp,f
btfss status,c
goto lee
bcf status,c
movlw b'00001000'
movwf temp
goto lee
izquierda movf temp,w
movwf portb
call delay1s
rlf temp,w
andlw b'00001111'
btfsc status,z
movlw b'00000001'
movwf temp
goto lee
delay1s movf velocidad,w...
tracking img