Está en la página 1de 10

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

LABORATORIO N 2

RETARDOS DE TIEMPO CON MICROCONTROLADORES PIC


1.- Objetivo

-Incentivar al alumno en el diseo de microcontroladores PIC -Realizar diseos de Sistemas de Control -Mediante el lenguaje Assembler realizar circuitos. -Usando Software de simulacin para PICs se compilara y simulara los archivos escritos en Assembler. - Para comprobar la veracidad del simulador y compilador se usar Proteus versin 7.6 para dibujar el circuito y simular en tiempo real. programa para controlar diferentes

2.- Fundamento Terico.El PIC16F84A esta fabricado en tecnologa CMOS, posee memoria FLASH, y consumo bajo de potencia. Est compuesto bsicamente de una memoria ROM (1024 palabras de memoria de programa), una memoria RAM (de acceso aleatorio, 68 bytes), lneas de entrada y salida (2 Puertos) y una lgica de control que coordina la interaccin de los dems bloques. Estos micros pertenecen a la gama media y dispones de un set de 35 instrucciones, tipo RISC (Computador con Set de Instrucciones Reducido) pocas pero muy poderosas.Algunas funciones especiales que dispone este PIC: Temporizador programable (Timer). Si se quiere medir periodos de tiempo entre eventos, generar temporizaciones o salidas con frecuencia especfica, etc. Perro Guardin o Watchdog. Consiste en un temporizador que, cuando se desborda ya pasa por 0, provoca un reset automtico, utilizado para sistemas que no tienen control de un supervisor, y al bloquearse el micro se resetea. Si se utiliza el cdigo debe resetearlo antes de que se desborde.

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

Memoria EEPROM de 64 bytes, para guardar datos que no se alteran a pesar de quitar la alimentacin. Interrupciones, cuando una seal externa, o una condicin interna activa una lnea de interrupcin, dejando de lado la tarea que esta ejecutando, atiende dicha interrupcin y luego contina con lo que estaba haciendo. Proteccin ante fallo de alimentacin. Se trata de un circuito que resetea al micro cuando el voltaje Vdd es inferior al mnimo. Estado de bajo consumo. Sleep. Si el micro debe esperar mucho tiempo sin hacer nada, posee una instruccin especial, Sleep, que lo pasa al estado de reposo. Al activarse una interrupcin se despierta y reanuda su trabajo. (Reset externo, desbordamiento de Watchdog, interrupcin por RB0, interrupcin por cambio de nivel en RB4 a RB7, interrupcin por escritura completada en EEPROM) Veamos el diagrama de pines, para ver como estn distribuidos sus pines. Este microcontrolador cuenta con dos puertos configurables como estradas y salidas, y consta de 18 pines los cuales se encuentran asignados de la siguiente manera:

El puerto A tiene solo cinco pines, el pin 3, sea, RA4/TOCKI puede ser configurado a su vez como entrada/salida o como temporizador/contador. Cuando es salida se comporta como colecto abierto, por lo tanto debemos poner una resistencia Pull-up a Vdd de 1 Kohm. Cuando se configura como entrada, funciona como disparador Schmitt Trigger por lo que puede reconocer seales con un poco de distorsin. El puerto B tiene 8 pines que pueden ser configurados como entrada/salida. RB0 puede programarse adems como entrada de interrupcin externa. Los pines RB4 a RB7 pueden

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

programarse para responder a interrupciones por cambio de estado y los pines RB6 y RB7 se corresponden con lneas de entrada de reloj y entrada de datos cuando esta en modo programacin. MCLR/Vpp, es la entrada de reset si esta a nivel bajo, tambin es habilitador de tensin de programacin. Cuando su tensin es Vdd el PIC funciona normalmente. Vss y Vdd, son los pines de masa y alimentacin. La tensin de alimentacin esta comprendida entre los 2 y 5.5 Volt. OSC1/CLKIN y OSC2/CLKOUT, pines de entrada externa de reloj y salida de oscilador a cristal respectivamente.-

Capacidad de corriente de los puertos. La mxima capacidad de corriente de cada uno de los pines de los puertos en modo sumidero es de 25 mA y modo fuente de 20 mA. La mxima capacidad de corriente total de los puestos es, Puerto A: Modo sumidero 80 mA; Modo fuente 50 mA. Puerto B: Modo sumidero 150 mA; Modo fuente 100 mA.

El Oscilador externo. Es un circuito externo que le indica al microcontrolador la velocidad a la que debe trabajar. Puede utilizar cuatro tipos distintos: RC, Oscilador con resistencia y condensador (Poco preciso) XT, Cristal de cuarzo. HS, Cristal de alta velocidad LP, Cristal de baja frecuencia y bajo consumo de potencia. Al momento de programar un micro se debe especificar que tipo de oscilador se usa. Internamente la frecuencia del oscilador es dividida por 4, as que si temeos un oscilador de 4 MHz, la frecuencia de trabajo es de 1 MHz, por lo que cada instruccin se ejecuta cada 1 us. Aqu utilizaremos un cristal XT de 4 MHz que debe ir acompaado de dos condensadores:

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

Reset. El PIC 16F84A posee un temporizador interno conectado al pin de reset, que funciona cuando se da alimentacin al microcontrolador. Esto hace que al encender el sistema el microcontrolador quede en reset por un tiempo mientras se estabilizan todas las seales del circuito. Para tener control sobre el reset se utiliza el siguiente circuito:

Estructura interna del Microcontrolador.

Arquitectura del PIC, existen dos arquitecturas, la clsica de Von Neumann y la arquitectura Harvard, esta ultima es la que usan los PICs. Dispone de dos memorias independientes, una que contiene solo instrucciones y la otra solo contiene datos. Ambas disponen de sus respectivos buses de acceso y es posible realizar operaciones de acceso simultneamente en ambas.

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

Memoria del programa. Aqu almacenamos nuestro programa o cdigo que debe ejecutar, en el PIC16F84A es FLASH, es rpida, de bajo consumo y alta capacidad de almacenamiento. Se divide en 2048 posiciones, pero este PIC solo tiene implementadas 1024 posiciones, de 0x00 hasta 0x3FF.

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

Cuando ocurre un reset, el contador de programa (PC) apunta a la direccin 0x00, y el micro inicia nuevamente. Aqu se debe escribir todo lo relacionado con la iniciacin del mismo, por ejemplo configuracin de puertos, etc. Si ocurre una interrupcin PC apunta a la direccin 0x04, y aqu debemos escribir el cdigo necesario para atender a dicha interrupcin. Memoria RAM esttica. Donde se encuentran los 24 registros especficos (SFR) y 68 registros de propsito general (GPR). Se halla dividida en 2 Bancos de 128 bytes cada uno.

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

Algo que se debe tener en cuenta es la pila o Stack, que consta de 8 posiciones, cada posicin contiene la direccin y datos de la instruccin que se esta ejecutando, as cuando se ejecuta una llamada call o una interrupcin, el PC sabe donde regresar. (Limitar las llamadas anidadas)

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

RETARDOS DE TIEMPO El pic 16F84A tiene un oscilador interno de 4MHz, si utilizamos ese oscilador tenemos que todas las instrucciones se ejecutan en 1uS, exceptuando los saltos que tardan 2 ciclos, es decir 2uS. Tomando en cuenta eso vamos a generar nuestros retardos, pero siempre partiendo de la suposicin de que se esta trabajando a una frecuencia de 4MHz, si es as, crear rutinas de retardo para nuestro pic es muy sencillo. Supongamos que tenemos la siguiente subrutina:

Retardo:

movlw movwf

N CONT CONT,f Ciclo

;1 ;1 ; 1 x (N-1) + 2 ; 2 x (N-1) + 2

Ciclo:

decfsz Goto

A la derecha de cada instruccin aparece el nmero de ciclos que tomar cada una. Las primeras dos toman solamente 1 ciclo, la tercera decfsz toma (N-1)+2, porque decrementar N-1 veces la variable N y en el ltimo decremento har un salto, es por eso el +2. La instruccin goto se ejecuta en 2 ciclos y se ejecutar N-1 veces, es por eso que se toma como 2*(N-1). De esta forma tenemos que el nmero de ciclos, y por lo tanto el tiempo que tendremos de retardo est dado por la siguiente expresin: 1+1+(1)(N-1)+2+(2)(N1) , 4+N-1+2N-2, o lo que es lo mismo 3N+1. Si queremos un retardo de 100uS entonces tenemos que 3N+1=100, despejando tenemos N=(100-1)/3=33, asi que para tener un retardo de 100uS el valor de la variable N debe ser 33.

3.- Prctica en Laboratorio Realizar los siguientes programas en assembler, compilarlos y simularlos en el simulador IDE PIC, luego realizar el circuito y simular en Proteus 7.6

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________

3.1 Realizar un programa para multiplicar 2 numeros y luego dividir el resultado entre 3, el resultado se guardara en la direccin 0X20. 3.2 Realizar un programa para configurar 5 entradas en el puerto B y 5 salidas en el puerto A, los circuitos de entrada debern tener pulsadores y los circuitos de salida leds para ser visualizados. 3.3 Realizar un programa para un secuencial de luces de 12 canales con un retardo de 200 ms, el circuito se accionar con un switch conectado a RB7. 3.4 Realizar un programa para arrancar un motor en estrella triangulo con un intervalo de 6 segundos entre la conexin de Estrella y Triangulo, incluir en el circuito de simulacin de Proteus la parte de fuerza. 3.5 Realizar un programa para una alarma de automvil, en la cual cada puerta tiene un final de carrera, adems en la parte central posee un sensor de vibracin, el control deber tener un pulsador de conexin y otro de desactivacin. La alarma sonara en forma ininterrumpida cada 600 mseg. 3.6 Realizar un programa para activar un motor de corriente continua de 9 V. 3.7 Realizar un programa para realizar la inversin de giro de un motor de corriente alterna, Incluir en el circuito de simulacin de Proteus la parte de fuerza.
3.8 Realizar un programa para el sistema de alarma contra robos de la caja fuerte de un

banco cuyo esquema se muestra en la figura. El sensor de presin est ubicado debajo de la caja para saber si alguin intenta moverla de su lugar. La puerta slo puede abrirse en horario de oficina. La alarma se activara cuando la caja se mueva y el interruptor de control est cerrado, o cuando el gabinete se abre fuera de horas hbiles, o cuando el gabinete est abierto con el interruptor de control abierto.

UNIVERSIDAD TECNICA DE ORURO FACULTAD NACIONAL DE INGENIERIA CARRERA: INGENIERIA ELECTRICA ELECTRONICA LABORATORIO DE MICROPROCESADORES (ELT 3912) _____________________________________________________________________________ Vcc Cerrado Abierto Vcc Alarma Normal Sensor de Presin

Int. Control

Alarma
Vcc Horas hbiles Fuera de Trab. tttTraba Vcc horario Cerrada Abierta C Reloj

Puerta

3.9 Realizar un programa para controlar el permetro de una fabrica de 900 metros cuadrados, la alarma tiene 4 sensores fotoelctricos conectados en cada esquina y se activan despus de 75 mseg, cuando algn objeto o persona rompe el haz de luz, la alarma suena en forma intermitente cada medio segundo. 3.10 Realizar un programa para controlar el nivel de un tanque de agua ubicado en el cerro cerrato de nuestra ciudad, inicialmente D tanque esta vacio y posee 2 el sensores de nivel (bajo y alto), el sensor de nivel bajo es normalmente cerrado y el sensor de nivel alto es normalmente abierto, cuando el agua llega a nivel alto, el control debe encender una seal luminosa y accionar la bomba de agua, aun cuando no detecte el sensor de nivel alto, la bomba de agua debe seguir funcionando, hasta que llegue al sensor de nivel bajo y la bomba de agua se desenergice encendiendo una seal luminosa indicando que se encuentra en nivel bajo. La bomba se accionara nuevamente cuando se llene el tanque de agua. Nota.- El informe deber ser entregado y defendido el dia mircoles 14 de abril, en forma manuscrita (puntabola ) y en CD, adjuntando el diagrama de flujos, el programa en Assembler y la simulacin en PIC Simulator IDE y Proteus.

También podría gustarte