Documentos de Académico
Documentos de Profesional
Documentos de Cultura
JAIME ANDRES MONTOYA ESPINOSA COD: 083201622012 DANIEL ANDRES AGUIAR COD: 083200822012 JEYSON ORLANDO PINEA COD: 083251562011
EL MICROCONTROLADOR 16F84
TABLA DE CONTENIDO
1. INTRODUCCION
En este informe se realizo la investigacin sobre el microcontrolador 16f84, uno de los microcontroladores mas usados, se ve reflejado aqu la importancia de dicho microcontrolador, como tambin las instrucciones que ejecutan, las operaciones y los distintos usos que se tienen en el.
OBJETIVOS
1. OBJETIVO GENERAL
SUBRUTINAS
Cada instruccin juega su parte, las primeras dos "limpian" los bit RP0 y RP1 del Status para trabajar con el Banco 0, en ese banco esta el registro PortA, el cual limpiamos en su totalidad para que tenga solo 0's en su salida. Despus se selecciona el Banco 1 poniendo a 1 el RP0 pues es ah donde se encuentran el ADCON1 y el TrisA, a los cuales les mandamos bits de configuracin determinados por las palabras 06h y CFh respectivamente; en la primera se est indicando que todos los pines del puerto A sern entradas o salidas digitales, la segunda indica que todos los pines seran entradas (00011111). EL PUERTO B Y EL REGISTRO TRISB Al igual que todos los puertos el registro TrisB configura la entrada-salida del Puerto. El Puerto B es de 8 bit que adems tiene la opcin seleccionable de Pull-Up, las cuales son resistencias internas que permiten al micro poner en uno cada uno de los pines cuando estn desconectados en lugar de estar fluctuando entre cero y uno, esta caracterstica es muy importante como se ver luego. Interrupt-On-Change es una caracterstica de los pines RB7:RB4 que como su nombre lo indica, produce una interrupcin de programa cuando cambia su valor que puede an levantar al micro de un Sleep. EL PUERTO C Y EL REGISTRO TRISC El Puerto C tiene varias funciones en sus pines, tiene las funciones de comunicacin I2C, el reloj externo del timer 1, Usart, etc. Cuando se usan los mdulos relacionados con este puerto, se debe tener cuidado pues algunas veces cambia el estado i/o del pin sin importar lo que indique TrisC, para saber cundo si cambiaria debemos ver la descripcin de cada mdulo. EL PUERTO D Y EL REGISTRO TRISD
El puerto D es de 8 bit, con entradas Schimtt Trigger, este puerto puede ser configurado como linea de datos para PSP Parallel Slave Port. EL PUERTO E Y EL REGISTRO TRISE El puerto E consiste en tres pines que bien pueden ser de I/O, o configurados para controlar el PSP, conteniendo las lneas bsicas como WR, RD, CS. Cuando se usa el modo PSP, el TrisE hace que el puerto E sea de entradas digitales, de la misma manera los pines no podrn funcionar como entradas anlogas.
Subrutina de retardo de tiempo con la instruccin DECFSZ Para calcular la duracin de una instruccin, se tiene consultar las tablas de instrucciones para ver el nmero de ciclos de mquina (CM) que dura, luego se multiplica por el tiempo que dura un ciclo (tcm) y en nmero de veces que se repite la instruccin (N); finalmente se suman los tiempos para obtener la duracin total de la subrutina (ts).
Los retardos consisten en que el PIC se quede enciclado durante un tiempo. Es decir, es necesario usar uno o varios contadores que debern ser decrementados, cuando dichos contadores lleguen a 0 habr concluido el retardo .Ejemplo con flujo-grama:
Observe en el diagrama anterior como a una variable CONTA_1 se le asigna un numero n, posteriormente esta variable se decrementa y se pregunta si ha llegado a 0, si no ha llegado a0 entonces se vuelve a decrementar, y asi sucesivamente hasta que llegue a 0 en cuyo caso esel FIN del retardo. El programa se quedo perdiendo el tiempo encilado dando vueltas n veces.Veamos la traduccin a ensamblador, para esto consideremos que n=100 .Inicio_retardo ;etiqueta para dar nombre al retardomovlw d100 ; W 100movwf CONTA_1 ; CONTA_1 Wdecfsz CONTA_1,F ; CONTA_1 CONTA_1 -1 y salta si ya llego a 0goto $.1 ;NO ha llegado a 0, entonces vuelve a decrementar------ -------;SI llego a 0 entonces FIN del retardo,sigue el programaObserve que tenemos una instruccin nueva decfsz , esta instruccin es equivalente a decir:
Decrementa el registro f y salta si ha llegado a 0 Es una instruccin muy til y sumamente utilizada principalmente en procesos que se repiten n numero de veces, tales como lo son los retardos.Muy bien, en este punto entendemos el concepto de un retardo por software, sin embargosurge una duda obvia e importante: Cmo calculo el tiempo que durar un retardo?Muy bien, observemos esta parte del cdigo ensamblador:decfsz CONTA_1,F ; CONTA_1 CONTA_1 -1 y salta si ya llego a 0goto $.1 ;NO ha llegado a 0, entonces vuelve a decrementarNtese que esta parte es la que se ejecuta n veces hasta que CONTA_1 llega a 0, asi que solodebemos saber cunto tardan en ejecutarse estas dos instrucciones, luego lo multiplicamospor n y el resultado es el tiempo que dura el retardo. La instruccin decfsz dura 1us y lainstruccin goto dura 2us , asi que entre ambas duran 3uS , asi pues el retardo durar:Retardo = 3uS x n si n= 100 entonces Retardo = 300uS http://es.scribd.com/doc/22583863/Generar-retardos-para-PIC-en-MPLAB
CONCLUSIONES
BIBLIOGRAFIA