Home

manual de edupic 16f84

image

Contents

1. y ponga un 4 Ahora elija la opci n project y despu s quickbuild Esta opci n realiza el ensamblado del programa y produce como salidas entre otros los archivos demof84 1st y EDU PIC 16F84 Punto Flotante S A 2009 23 demof84 hex El archivo LST contiene el archivo fuente y los c digo de m quina El archivo HEX contiene solamente el c digo de m quina que habr de almacenarse en el 16F84 en este caso en la tarjeta EDU PIC FORMATO DEL ARCHIVO HEX El archivo demof84 hex producido en el ejemplo anterior es el siguiente 1000000000306600013086000310860D32309F00FC 0C0010009E009E0B09289F0B0828052865 02400E00F33F7E 00000001FF Es importante antes de pasar a explicar el formato del archivo aclarar que la longitud de las instrucciones en el 16F84 es de 14 bits es decir que cada localidad de memoria ocupa 2 bytes de almacenamiento en un archivo Originalmente el formato HEX fue dise ado para computadoras con localidades de memoria de solo 8 bits de longitud de tal forma que el valor de las localidades de memoria en ste archivo se encuentra multiplicado por 2 El primer byte de cada l nea es un valor que corresponde al n mero de bytes en hexadecimal de informaci n existentes en dicha l nea Por ejemplo en la primera l nea hay un 10 lo cual significa que habr 16 bytes de informaci n En la segunda l nea hay un OC lo que significa que habr 12 bytes de informaci n En la tercera un
2. 1 ua Temporizador para la generaci n de retrasos reloj de tiempo real contador de eventos Sistema de interrupciones generadas desde varios dispositivos entre ellos el temporizador y la EEPROM Opci n de protecci n de c digo CODE PROTECTION para evitar posible copia del firmware del circuito En cuanto a su alimentaci n EDU PIC puede activarse mediante un eliminador de bater as externo el cual se conecta al m dulo y alimenta a un regulador de 5 volts integrado a la tarjeta o bien puede funcionar en forma aut noma por medio de una bater a est ndar cuadrada de 9 volts El diagrama de bloques general del hardware del 16F84 se muestra en seguida MEMORIA DATOS MEMORIA DATOS MEMORIA CODIGO RAM EEPROM FLASH TEMPORIZADOR CONTADOR PUERTO A PUERTO B FIGURA 2 SOFTWARE E Se proporciona junto con el sistema un disco CD al usuario Se incluye en dicho disco el programa MPLAB el cual incluye un programa editor ensamblador simulador y compilador de C Se incluye tambi n el programa WINPIC para la programaci n de la tarjeta a trav s del puerto serial El m dulo EDU PIC se conecta mediante un cable al puerto EDU PIC 16F84 Punto Flotante S A 2009 serial COMI de una computadora PC haciendo de 4 sta una poderosa herramienta de desarrollo El software anteriormente descrito puede ser ejecutado desde una PC con cualquier plataforma WINDOWS desde WINDOWS 98 hasta el WINDOWS XP DOCUMENTACION
3. 2 Descripci n General El sistema EDU PIC fue dise ado para su uso en una amplia gama de aplicaciones como kit para el aprendizaje del microcontrolador 16F84 como m dulo central en equipos de instrumentaci n en aplicaciones de rob tica comunicaciones y redes de control de acceso o incorporado en sistemas de control industrial El diagrama general de la tarjeta EDUPIC se muestra en la siguiente figura CONECTOR LCD Z T Z e ES E o HEADER 16X CONECTOR cc E TECLADO 4X4 CONTACTOS A E RELEVADOR XTAL 4 MHZ A4 2 PUERTO SERIAL s A microswitches A1 mas pO e LEDS L1 RELEVADOR ACTIVADO L2 PUERTO SERIAL CONECTADO L3 5 VOLTS ACTIVOS 14 PROGRAMACION EN CURSO FIGURA 1 EDU PIC 16F84 Punto Flotante S A 2009 3 Se hace uso de la versi n de 18 pines del microcontrolador 16F84 con encapsulado dual in line el cual contiene 1024 bytes de memoria FLASH 64 bytes de EEPROM y 68 bytes de RAM El dise o de PIC hace un uso extensivo de los puertos e interfaces ofrecidas por el microcontrolador para ofrecer al usuario un sistema con un m ximo de opciones disponibles La tarjeta consta de dos partes el programador del 16F84 que est dise ado con base en 4 transistores capacitores y diodos y el microcontrolador 16F84 con sus interfaces de leds y microswitches conectados a sus puertos El programador es controlado por se ales en el puerto serial desde la computadora PC mediante el esquema conoc
4. E El usuario recibe en el mismo disco CD el manual del usuario en donde se incluye informaci n completa sobre el sistema incluyendo diagramas electr nicos as como una explicaci n detallada del funcionamiento de cada una de sus interfaces En el disco CD mencionado se incluyen los archivos PDF con las data sheets completas del chip 16F84 y sus interfaces y manuales de los programas descritos anteriormente Asimismo el usuario podr estudiar tambi n un programa tutorial con animaciones gr ficas que le permitir comprender mejor la arquitectura del chip 16F84 Finalmente el disco CD incluye tambi n una carpeta con programas de prueba para el sistema 3 Definici n de los pines en el 16F84 RAD 1 RA3 DO vt RAA TOCLKI ee MCLRE c VSS RBO INTD O pmi E FIGURA 3 Algunos de los pines tienen varias funciones en la tabla que sigue se describe cada uno de ellos Pin Nombre Tipo Funciones 16 OSCI CLKIN __ Input Se al 1 del Cristal oscilador En modo RC se al proveniente del oscilador RC 15 OSC2 CLKOU Outpu Se al 2 del Cristal oscilador En modo RC se genera una se al de salida CLKOUT que tiene T t Ya de la frecuencia de la se al en OSCI y determina el ciclo de instrucci n 4 MCLR Input Se al de reset externa En modo de programaci n recibe una se al de 12 a 13 volts 17 RAO Bi Se al de entrada o salida 18 RAI Bi Se al de en
5. 6 2 Registro de Status En seguida se muestra un diagrama del registro de STATUS REGISTRO STATUS DIRECCION 03H 83H IRP RP1 RPO TO PD Z DC C Bit 7 Bit 0 los bits 0 1 y 2 son el CARRY HALF CARRY Y ZERO son banderas que se activan con un valor igual a 1 cuando el resultado de una operaci n o instrucci n genera un carry un half carry o un valor igual a cero respectivamente Elbit 3 se llama POWER DOWN y su valor es de 1 despu s de una instrucci n CLRWDT CLEAR WATCH DOG TIMER bien despu s de encender el sistema POWER UP El valor es de O despu s de ejecutar la instrucci n SLEEP El bit 4 se llama TIMER OUT tendr un valor de 1 despu s de POWER UP CLRWDT 6 SLEEP y tendr un valor de 0 si el WDT WATCH DOG TIMER activa su se al de alarma El bit 5 RPO controla el banco de registros especiales SFR que habr de accesarse Si el bit tiene un valor de 1 se accesa el banco 1 y si tiene el valor de 0 se accesa el banco 0 Los bits 6 y 7 no se encuentran implementados 6 3 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 REGISTRO OPTION DIRECCION 81H RBPU INTEDG TOCS TOSE PSA PS2 PSI PSO Bit 7 Bit 0 los bits 0 1 y 2 toman un valor del 0
6. EEIF WRERR WR RD WREN Bit 7 Bit 0 para leer la EEPROM debe de escribirse un 1 en el BIT 0 del registro Este bit tomar autom ticamente el valor de 0 despu s de haberse efectuado la lectura del dato Para iniciar el ciclo de escritura en la EEPROM debe escribirse un 1 en el BIT 1 del registro Una vez terminado el ciclo de escritura el bit tomar autom ticamente el valor de 0 ELBIT 2 habilita o deshabilita el ciclo de escritura Si vale 1 se habilita y si vale 0 se deshabilita EI BIT 3 es una bandera que anuncia despu s de un ciclo de escritura que sta fue completada en forma err nea exitosa Si el valor es 1 existi un error y si el valor es de 0 entonces la escritura fue completada sin error El BIT 4 es una bandera de interrupci n asociada a la escritura en la EEPROM Si el valor es de 1 el ciclo de escritura termin Si el valor es de O el ciclo de escritura no ha iniciado no ha conclu do Los bits 5 6 y 7 no se usan Para leer o escribir en la EEPROM debe seguirse la siguiente secuencia de instrucciones Supongamos que deseamos leer el dato de la direcci n 1AH de la EPROM y almacenarlo en el registro W LECTURA BCF STATUS RPO ELIJE EL BANCO 0 DE LOS REGISTROS ESPECIALES MOVLW 1AH PREPARA LA DIRECCI N MOVWF EEADR ESCRIBE VALOR EN EL REGISTRO EEADR BSF STATUS RPO ELIGE EL BANCO 1 BSF EECON1 RD HABILITA EL BIT 0 RD DEL REGISTRO EECONI BCF STATUS RPO
7. RA3 PIN 7 MICROSWITCH A3 RA4 PIN 9 MICROSWITCH A4 PUERTO B RBO PIN 2 LED B0 TECLADO YI RBI PIN 4 LED B1 TECLADO Y2 RB2 PIN 6 LED B2 TECLADO Y3 RB3 PIN 8 LED B3 TECLADO Y4 RB4 PIN 10 LED B4 TECLADO X1 RB5 PIN 12 LED B5 TECLADO X2 RB6 PIN 14 LED B6 TECLADO X3 RB7 PIN 16 LED B7 TECLADO X4 Antes de poder escribir y leer de los puertos es necesario primero programar qu bits ser n entradas y salidas usando las siguientes instrucciones PUERTOA BSF STATUS RPO ELIJE EL BANCO DE REGISTROS ESPECIALES 1 MOVLW Ox1E RAO SALIDA RA1 RA4 ENTRADAS MOVWF TRISA PROGRAMA LA DIRECCI N DE LOS BITS PUERTOB BSF STATUS RPO ELIGE EL BANCO DE REGISTRO ESPECIALES 1 MOVLW 0x00 RBO RB7 SALIDAS MOVWF TRISB 13 1LEDS Y MICROSWITCHES Una vez inicializados los puertos de la forma mostrada se puede desde el programa escribirse en los LEDS o leer desde los microswitches considerando los diagramas electr nicos que se muestran enseguida El objetivo de los LEDS y los microswitches es dar al usuario la posibilidad de realizar emulaciones de sensores digitales y salidas para la activaci n de actuadores Todas las sefiales de los puertos est n disponibles en en conector header de 14x para su conexi n a interfaces externas 5 v 47k RBO RB7 RAI RA2 1k RA3 RA4 L3 L10 sw4 Swi FIGURA 8 DIAGRAMA DE LOS LEDS Y LOS MICROSWITCHES 13 2 RELEVADOR Mediante el manejo del bit RAO del puerto A el procesador 16F84 puede act
8. ndar para la conexi n de un dispositivo LCD Este conector dispone de 14 se ales mostradas en la tabla de abajo Por favor consulte el ap ndice 1 de este manual para informaci n completa sobre la conexi n de su LCD Es importante se alar que las se ales RA1 RA2 RBO RB7 un total de 10 se ales se encuentran tambi n disponibles en el comector HEADER 16x Es posible usar el conector est ndar de 14 pines para conectar un LCD y en paralelo conectar un teclado matricial al header de 16X a pesar de que ambos dispositivos comparten las se ales RBO RB7 gracias a que pueden operar en tiempos distintos Por favor vea los programas de prueba para el LCD y teclado matricial ap ndice 1 LCD EDUPIC FUNCION LcD EDUPC FUNCION po 1 Tierra 8DBI RBI DATOS 229 1 jS5vls 9 D2 RB DATOS SINT Control de Intensidad 10DB3 RB3 DATOS 14 El set de instrucciones Existen un total de 35 instrucciones Todas las instrucciones son palabras de 14 bits divididas en dos partes el c digo de operaci n y el operando Los operandos es decir los destinatarios de la operaci n a realizarse pueden ser bytes o bits de memoria o registros De esta forma se puede hablar de instrucciones orientadas a bytes u orientadas a bits Todas las instrucciones con excepci n de las que modifican el contenido del contador del programa como son los saltos y llamados a subrutina se ejecut
9. quickbuild y despu s desde WINPIC vuelva a cargar el programa en EDU PIC FIGURA 17 EDU PIC 16F84 Punto Flotante S A 2009
10. EDUPIC a trav s del programa WINPIC seg n se explic en los pasos anteriores 16 Informaci n t cnica 16 1 CARACTERISTICAS GENERALES Procesador microcontrolador PIC16F84 cristal de 4 Mhz con tecnologia CMOS de bajo consumo EDU PIC 16F84 Punto Flotante S A 2009 24 Arquitectura Harvard con la memoria de c digo 14 bits y de datos 8 bits separadas Procesamiento pipeline Tecnolog a RISC reduced instruction set computer con 35 instrucciones con 14 bits de longitud de palabra Memoria 1K localidades 14 bits de FLASH 68 localidades 8 bits de RAM 64 localidades 8 bits de EEPROM Capacidad de lectura escritura hasta 10 000 ciclos en la memoria flash y hasta 10 000 000 en la EEPROM Puertos digitales puerto A de 5 bits puerto B de 8 bits un total de 13 bits programables como entradas o como salidas Resistencias de pull up disponibles en puerto B cuando est programado como entradas Salidas digitales a LEDS el puerto B con 8 bits conectados a LEDS Capacidad de salidas cada bit de salida puede tomar sink 6 generar source hasta 25 miliamperes Entradas digitales a microswitches un total de 4 en el puerto A Salida a relevador relevador modelo RAS 1210 contactos de 127 V 1 A Salida a conector de tornillos Header de 16 contactos con todas las se ales de entrada y salida disponibles tierra y 5 v Conector para teclado 8 se ales inclu das en el header 16x para teclado matr
11. EEADDR EECONI REGISTRO DE CONTROL HABILITA LECTURA Y ESCRITURA DE EEPROM EEADDR APUNTADOR QUE ALMACENA LA DIRECCI N QUE HABRA DE LEERSE EN LA EEPROM EDU PIC 16F84 Punto Flotante S A 2009 8 EECON2 REGISTRO DE CONTROL DE ESCRITURA PROTEJE CONTRA ALTERACIONES INDESEADAS DEL CONTENIDO DE LA EEPROM PCLATH PARTE ALTA DEL CONTADOR DEL PROGRAMA 2 BITS QUE JUNTO CON LOS 8 BITS DEL PCL FORMAN LA DIRECCION COMPLETA CON LA CUAL CUAL PUEDE DIRECCIONARSE 1024 LOCALIDADES DE LA 0000H A LA 03FFH PCLATH PUEDE TAMBIEN VERSE COMO EL REGISTRO QUE CONTIENE LA PAGINA DE 256 BYTES EN DONDE HABRA DE DIRECCIONARSE LA MEMORIA 6 1 Registros PCL y PCLATH En general estos registros son manipulados cuando se emplean tablas de datos Look Up Tables PCLATH PC Latch puede modificarse a trav s de la instrucci n MOVWE pero su ejecuci n solo almacena el dato y no modifica en forma inmediata la parte alta del contador del programa y por lo tanto no produce ning n salto en el flujo del programa El registro PCL puede ser afectado por las instrucciones MOVWF ADDWF Su ejecuci n modifica directamente la parte baja del contador del programa y carga tambi n el registro PCLATH en la parte alta e induce por tanto un salto inmediato a otra localidad En resumen al modificar PCL debe de tenerse cuidado previamente de inicializar tambi n correctamente PCLATH pues de lo contrario el programa efectuar un salto a una localidad en una p gina no deseada
12. al 13 del registro de configuraci n Sin embargo debe de tenerse cuidado de no manipular indebidamente estos bits ya que una vez habilitado el modo CODE PROTECT ser imposible accesar de nuevo el c digo almacenado en la memoria FLASH Tambi n es importante se alar que un chip que ha sido protegido no puede ser le do pero s puede ser borrado y reprogramado de nuevo 13 Puertos digitales El sistema 16F84 cuenta con dos puertos digitales el puerto A con 5 bits disponibles y el puerto B con 8 bits disponibles Ambos puertos son bidireccionales sto es pueden programarse como entradas o como salidas de acuerdo a unos registros de direcci n de datos llamados TRIS en el caso del puerto A es TRISA y del puerto B es TRISB En la tarjeta EDUPIC le han sido conectados entradas con 4 microswitches para el puerto A y salidas de 8 LEDS para el puerto B as como un relevador conectado al pin RAO La asignaci n de funciones en cada uno de los bits se muestra en la siguiente tabla Por favor tome nota de que cada entrada y salida se encuentra tambi n disponible en el HEADER de 16X en la tarjeta de tal manera que el usuario pueda conectar dispositivos externos EDU PIC 16F84 Punto Flotante S A 2009 13 PUERTO PIN EN HEADER 16x FUNCION PUERTO A RAO PIN 1 ACTIVA DESACTIVA RELEVADOR RAI PIN 3 MICROSWITCH A1 CONTROL LCD RA2 PIN 5 MICROSWITCH A2 CONTROL LCD
13. con la direcci n 0004H y la direcci n de retorno es almacenada en el STACK o pila Una vez que la subrutina de interrupci n est ejecut ndose a partir de la direcci n 0004H la fuente de la interrupci n puede ser determinada a trav s de un poleo en los bits 0 1 y 2 del registro INTCON y bit 4 del registro EECONI Dentro de la subrutina de atenci n a las interrupciones debe tambi n de escribirse un O en el bit de bandera correspondiente para impedir que la misma interrupci n vuelva a activarse una y otra vez 11 Programaci n de la EEPROM La memoria EEPROM residente en el chip 16F84 posee 64 bytes Dichas localidades pueden ser le das o bien puede escribirse en ellas durante la ejecuci n de un programa Sus direcciones son de la 0 a la 3F H El acceso a esta memoria es a trav s de direccionamiento indirecto utilizando 4 de los registros SFR special fuction registers que son los siguientes EECONI EECON2 EEDAT y EEADR EEDAT guarda el dato que habr de escribirse en la EEPROM mientras que EEADR guarda la direcci n EECONI es un registro cuyos bits permiten al usuario habilitar o deshabilitar la lectura y escritura en la EEPROM EECONG es un registro de control usado para evitar escrituras accidentales de tal manera que deben escribirse en dicho registro los valores 55H y AAH antes de iniciar un ciclo de escritura En seguida se muestran los bits de control del registro EECONI REGISTRO EECONI DIRECCION 88H
14. el costo mediante el uso de componentes de uso extensivo EDU PIC emplea el procesador 16F84 de Microchip El m dulo integra el hardware y software necesarios para programar el 16F84 v a un cable serial conectado a la PC o bien puede ejecutar los programas ya cargados en la memoria flash del chip en modo AUTORUN El m dulo EDU PIC se ofrece en forma de KIT junto con los dispositivos auxiliares de hardware y software necesarios para su inmediata puesta en marcha eliminador de bater as cable serial disco CD de aplicaci n que incluye el presente manual de operaci n El software proporcionado en el disco de aplicaci n funciona para las diferentes plataformas WINDOWS versiones 98 2000 Milenium y XP Cuenta con la herramienta MPLAB que integra las funciones de editor ensamblador simulador y compilador para el PIC 16F84 as como con la herramienta WINPIC para programar el circuito 16F84 desde la PC Le recomendamos ir directamente al cap tulo 15 p gina 19 Puesta en Marcha para tener su sistema operando en cuesti n de minutos Este manual se acompa a de la especificaci n t cnica y diagramas electr nicos completos del m dulo as como de numerosas ilustraciones y explicaci n detallada de cada uno de sus interfaces Por favor llame al tel 56 53 58 01 para aclarar cualquier duda sobre su EDU PIC Puede tambi n enviar sus emails a puntoflotanteO hotmail com Juan Bosco Mart nez Punto Flotante S A enero de 2009
15. facilitar la comprensi n del control del teclado teclado4 funciona con el LCD conectado a su puerto LCD en el cual muestra la tecla oprimida correspondiente CONEXI N DEL TECLADO A EDUPIC usando los diagramas de las figuras 1 13 y 15 se conectan las se ales de los renglones y columnas del teclado a los pines pares 2 4 6 8 10 12 14 16 en el HEADER 16X del sistema EDUPIC Recuerde que este diagrama est hecho espec ficamente para el teclado del modelo mostrado de tal forma que si se tiene un teclado distinto entonces el diagrama de conexiones cambiar Tome nota de la forma en que est n numerados los pines del HEADER ya que siguen una convenci n distinta a la de los circuitos integrados estando los pines pares en una fila y los nones en la otra Conexi n a un LCD A diferencia del teclado los fabricantes del display de cristal l quido Liquid Cristal Display LCD han estandarizado sus se ales en un conector de 14 pines as como sus comandos de control para el manejo del mismo El LCD es actualmente el circuito m s barato y confiable para mostrar datos en un proceso de monitoreo y control Su interfaz con los controladores se realiza a trav s de un conector de 14 pines cuya configuraci n es respetada por la mayor a de los fabricantes En el LCD se pueden mostrar datos como la hora y la fecha as como valores de variables tales como nivel presi n gasto temperatura etc EI LCD puede tambi n emplearse para
16. principal existir una instrucci n de call que llama a la etiqueta que est al inicio de la tabla como se muestra en el listado de abajo Una vez que el el contador del programa queda posicionado al inicio de la tabla usamos la instrucci n addwf para sumar a la parte baja del contador del programa PCL un n mero del 1 al 4 que debe de estar almacenado en el registro W desde antes de la ejecuci n de la instrucci n de call Al ejecutarse dicha instrucci n addwf el contador del programa queda posicionado en la localidad deseada de la tabla Ahora mediante la instrucci n retlw return from subroutine with literal in w regresamos al programa principal pero el registro W contiene ahora el dato que aparece a la derecha de la instrucci n alguno de los c digos ASCII de la H O L A y los cuales forman parte de la tabla Es decir que el registro W contiene antes de la instrucci n de call el desplazamiento offset deseado sobre la direcci n de inicio de la tabla que en el ejemplo puede ser un valor del 1 a 4 Aqu es muy importante se alar que en la suma addwf se est afectando la parte baja PCL 8 bits y tambi n la alta 2 bits del contador del programa la cual se carga con el EDU PIC 16F84 Punto Flotante S A 2009 19 contenido de PCLATH Es necesario entonces cargar tambi n el registro PCLATH para que contenga el valor de la p gina en donde se encuentra la tabla que pueden ser los valor
17. programar par metros internos del sistema de acuerdo a su aplicaci n O para mostrar al usuario las opciones del sistema mientras lo opera En la interfaz de 14 pines 8 son se ales de datos Estos datos se manejan en c digos ASCII y se escriben en la memoria del LCD en forma secuencial A trav s de estas mismas se ales pueden escribirse tambi n comandos En las siguientes tablas se ilustran en la primera la distribuci n de se ales de la interfaz y en la segunda algunos de los comandos m s com nmente empleados El m dulo LCD lleva integrado a sus circuitos una memoria ROM conocida como generador de caracteres que habr de generar los patrones de puntos de los caracteres en la pantalla Tambi n tiene una RAM interna que almacena los caracteres en forma secuencial y los exhibe en el m dulo LCD Todas las se ales de datos y control llevan niveles TTL 0 a 5 volts con excepci n de la se al de control de intensidad en el cual hay que aplicar tierra para la mayor intensidad y 5 volts para la menor En EDUPIC este voltaje ya viene preajustado con un divisor de resistencias formado por R26 y R25 de 1K y 100K para dar la intensidad adecuada El diagrama general de conexiones del display se muestra en la figura 9 En su aplicaci n m s simple se desea solo escritura al LCD y el pin 5 se conecta permanentemente a tierra La forma de escribir datos en el display es la siguiente EDU PIC 16F84 Punto Flotante S A 2009 29
18. registro se almacenan en un solo archivo que se denomina 16f84 inc y que es parte de las librer as ya inclu das en el programa MPLAB del cual se habla m s adelante Entonces es suficiente escribir dentro del programa fuente en lenguaje ensamblador la directiva include lt p16f84 inc gt Y de esta forma el usuario podr escribir su programa en forma mucho m s entendible puesto que usar ahora los nombres de los registros y los bits y no solamente n meros Una vez establecidas estas equivalencias podemos poner algunos ejemplos con instrucciones Observe que en todas ellas es posible a veces usar las equivalencias o bien escribir directamente el valor num rico Por ejemplo Etiqueta Instrucci n Operando Forma general EJEMPLOI BCF STATUS RPO BCF FD Resultado Bit Clear F Pon en cero el bit RPO del registro STATUS EJEMPLO2 BCF 3 5 Resultado mismo que en el ejemplo anterior pero usando ahora las constantes directamente al escribir la instrucci n Observe como el hecho de escribir directamente palabras como STATUS en lugar del n mero 3 facilitan mucho la comprensi n EJEMPLO3 BTFSS STATUS RPI BTFSS F B Resultado Bit Test F Skip if Set Si el bit RP1 del registro designado es cero ejecuta la siguiente instrucci n si el bit es 1 entonces no ejecuta la siguiente instrucci n pero s la que sigue a sta EJEMPLO4 ADDLW 3AH ADDLW K Resultado Add literal to W Suma el registro W con la constante 3AH El resulta
19. 02 2 bytes de informaci n en esa l nea En seguida sigue la direcci n de memoria inicial del bloque en donde habr n de almacenarse dichos bytes En este ejemplo vemos un 0000 en la primera l nea y un 0010 en la segunda Mucha atenci n aqu en la segunda l nea la direcci n 0010 16 decimal corresponde a la direcci n n mero 8 del sistema 16F84 por lo que se explic en el primer p rrafo En la tercera l nea la direcci n 400E en realidad corresponde a la 2007 en la memoria del PIC 16F84 El siguiente byte es un 00 en todas las l neas y es un byte reservado en el formato pero sin informaci n til Los siguientes bytes en cada l nea corresponden a la informaci n que habr de almacenarse en memoria En la primer l nea son 16 en la segunda 12 y en la tercera solo 2 A final de la l nea est un byte que es un check sum que sirve para verificaci n y corresponde al byte menos significativo de la suma binaria de todos los bytes anteriores en esa l nea Ahora elija la opci n debugger y select tool y luego MPLAB SIM de esta manera se cargar autom ticamente la herramienta de simulaci n del procesador con la cual usted podr observar la ejecuci n del programa paso a paso En cada instrucci n usted puede revisar el contenido de registros y memoria mediante la opci n View la cual le permite ver los registros o localidades de memoria seleccionados Dentro de la opci n View elija
20. 16F84A y luego seleccione oscillator XT XTAL code protection off power up timer disabled y watch dog enable disabled En la solapa interface interface type JDM programmer on port COM1 LAT Observe que en la tarjeta existen 3 jumpers S1 S2 y S3 Ponga S1 S2 y S3 en posici n de PROGRAMAR Nota importante los jumpers S1 S2 y S3 no deben moverse de su posici n de PROGRAMAR mientras la tarjeta est conectada al puerto serial de la computadora PC y nicamente deber n de moverse hacia la posici n AUTORUN cuando la tarjeta est funcionando en modo aut nomo ya que en esa posici n las sefiales RB6 y RB7 as como MCLR quedan completamente desconectadas de los circuitos del programador de la tarjeta ver diagrama electr nico del sistema En seguida trabajando en la solapa CODE elija la opci n file load and program device y luego elija el path CAEDUPIClarchivos16f84 All elija el archivo contador hex El archivo llena los datos en el buffer de WINPIC y al mismo tiempo se transfiere a la memoria FLASH del 16F84 en la tarjeta EDUPIC Una vez finalizado la transferencia sin errores el programador anuncia program finished no errors En caso de escribir un mensaje de error revise las conexiones y la posici n de los jumpers PASO 6 EJECUTAR EL PROGRAMA EN EL MODULO EDUPIC Seleccione la opci n device reset disconne
21. CD 16 X 2 escribe un mensaje y hace scrolling hacia la izquierda para la prueba del dispositivo Dichos programas se encuentran en el subdirectorio archivos16F84 LCD 16 X 1 es un dispositivo LCD con un rengl n de 16 caracteres pero electr nicamente est dividido en dos secciones de 8 caracteres Cada una de estas secciones se maneja como si fuese un rengl n de 8 caracteres Para la prueba de estos LCD se tienen los archivos LCD 16 X 1 LCD16X1 V2 LCD16X1 V3 mensaje de 16 caracteres con scrolling y LCD16X1 V4 mensaje de 256 caracteres con scrolling hacia la izquierda tambi n en el subdirectorio archivos16F84 CONEXI N DEL LCD AL SISTEMA EDUPIC para conectar un LCD a su sistema por favor conecte cada pin en EDUPIC con su correspondiente en el LCD del 1 al 14 Tome como auxiliares a los diagramas de las figuras 13 y 16 NOTA IMPORTANTE Las se ales de control correspondientes a RAI y RA2 est n compartidas por el puerto del LCD y los microswitches Al y A2 Entonces es muy importante que al operar el LCD los SWITCHES A1 y A2 est n en OFF ABIERTOS es decir en su posici n m s cercana al puerto serial De lo contrario el LCD no funcionar debido a que sus se ales de control estar n bloqueadas por los microswitches Real Time Clock El reloj de tiempo real es una herramienta sumamente til en los sistemas de microcontrol por ejemplo en la implementaci n de aplicaciones como temporizadores
22. HABILITA EL BANCO 0 MOVF EEDATA W LEE EL DATO EN EL REGISTRO EEDATA EN W USANDO DIRECCIONAMIENTO INDIRECTO EDU PIC 16F84 Punto Flotante S A 2009 11 Ahora supongamos que deseamos escribir en la direcci n 2BH el dato 1AH previamente almacenado en W El 16F84 cuenta con un mecanismo para proteger a la EPROM contra escrituras accidentales mediante el cual deben primero escribirse los valores 55H y AAH en el registro EECON2 para habilitar el ciclo de escritura ESCRITURA BSF STATUS RPO HABILITA EL BANCO 1 BCF INTCON GIE DESHABILITA INTERRUPCIONES BSF EECON1 WREN HABILITA ESCRITURA EN EEPROM MOVLW 55H PREPARA SECUENCIA DE SEGURIDAD MOVWF EECON2 ESCRIBE PRIMER DATO DE SECUENCIA MOVLW AAH SEGUNDO DATO MOVWF EECON2 ESCRIBE SEGUNDO DATO DE SECUENCIA BSF EECON1 WR INICIA CICLO DE ESCRITURA BSF INTCON GIE HABILITA INTERRUPCIONES 12 Funciones especiales 12 1REGISTRO DE CONFIGURACION El 16F84 cuenta con un registro de configuraci n que solamente puede accesarse durante el ciclo de programaci n del chip Su direcci n es la 2007H Los bits de configuraci n controlan la operaci n de diversas funciones como el oscilador la protecci n de c digo el WATCH DOG y el POWER ON RESET En seguida se muestran los bits de este registro REGISTRO CONFIGURACION DIRECCION 2007H CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSCI FOSCO Bit 13 Bit 0 los bits 1 y 0 si
23. Indice Introducci n Descripci n general Definici n de los pines en el 16F84 Programador de la memoria FLASH 10 11 12 13 14 15 16 EDU PIC M dulo 16F84 Manual del Usuario Oscilador Arquitectura del microcontrolador 16F84 Memoria Registros especiales 8 1 Registros PCL y PCLATH 8 2 Registro de Status 8 3 Registro de Opci n Registro temporizador contador TMRO Interrupciones del Sistema Programaci n de la EEPROM Funciones especiales 12 1 Registro de configuraci n 12 2 Oscilador 12 3 Power on reset POR 12 4 Watch Dog WDT 12 5 SLEEP 12 6 Code protect Puertos digitales 13 1 Leds y microswitches 13 2 Relevador 13 3 Header 16x conector a teclado 4 x 4 13 4 Conector a LCD El set de instrucciones 14 1 Operandos 14 2 Formato de las instrucciones 14 3 Manejo de tablas Puesta en marcha Informaci n T cnica 16 1 Caracter sticas generales 16 2 Lay out 16 3 Diagrama electr nico 16 4 Lista de componentes 16 5 Contenido del disco CD Ap ndice 1 Proyectos Teclado matricial LCD y Real Time Clock EDU PIC 16F84 Punto Flotante S A 2009 O ooo0oo0co d1o uA Un UB nn R2 b2 NNNDNR Fe e ha oh pa ha ha pd pd pl A pd pd A O NYNNNBWWO WOANNNPWWNNNNR RP KK O N N 1 Introducci n Deseamos felicitarlo por la adquisici n del kit EDU PIC La filosof a de dise o de este m dulo se centr en maximizar el n mero de funciones disponibles al usuario y disminuir
24. LR debe estar conectado a 5 volts Adicionalmente al seleccionar en el registro de configuraci n la opci n power up timer PWRT 0 se mantiene el pulso de reset activo hasta despu s de 72 ms despu s de haber conectado la energ a En el caso que se est usando un oscilador de cristal se genera autom ticamente un retraso adicional de 1024 pulsos de reloj antes de que el pulso de reset termine Estos retrasos permiten la estabilizaci n del cristal antes de que el microcontrolador inicie su operaci n Despu s de un reset el microcontrolador inicia en la direcci n 0000H la ejecuci n de su programa EDU PIC 16F84 Punto Flotante S A 2009 12 12 4 WATCH DOG TIMER El WDT es un circuito de vigilancia 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 cada 18 ms el cual genera un reset al sistema cuando la cuenta llega a un m ximo y genere un TIMEOUT La programaci n del WDT debe de activarse desde el registro de configuraci n Esto se hace escribiendo en el bit 2 WDTE 1 La direcci n del registro de configuraci n es la 2007H Debe recordarse que el registro de configuraci n no puede accesarse
25. PIC Book documento PDF 16 EDUPIC SPEC 2006 documento PDF 17 KIT EDUPIC SPEC 2006 documento PDF 18 EDUPIC Manual 2006 documento PDF 19 MPLAB IDE 6 60 archivo ZIP debe descomprimirse e instalarse 20 PICCLITE Setup ANSI C Compiler archivo de instalaci n ejecutable 21 AdBdRdr60 archivo ajecutable de instalaci n del Adobe Reader 22 Pk Reader archivo ejecutable de instalaci n SEN DA A Ap ndice 1 Proyectos Conexi n a teclado matricial LCD y Real Time Clock Conexi n a un teclado matricial Si se requiere conectar un teclado a su sistema por favor haga uso de la siguiente informaci n El ejemplo que se ilustra es para un teclado matricial de 16 teclas de la marca GREYHILL modelo 86JB2 203 No existe un est ndar para los conectores de los teclados de tal forma que cada modelo exige un hardware de conexi n y una subrutina de manejo distintos TECLADO MATRICIAL Y1 Y2 Y3 Y4 GREYHILL 86JB2 203 X1 X2 X3 X4 NC Y4 X4 X1 Y3 X2 X3 Y2 Y1 CONECTOR DEL O O O O O a O O O 9 8 7 6 5 4 3 2 1 LS TECLADO GREYHILL 16 14 12 10 8 6 4 2 CONECTOR DEL TECLADO EN EDUPIC HEADER DE 16X RB7 RB6 RB5 RB4 RB3 RB2 RB1 RBO FIGURA 15 DIAGRAMA DEL TECLADO Y SU INTERFAZ CON EDUPIC EDU PIC 16F84 Punto Flotante S A 2009 28 El teclado viene organizado con 4 renglones X1 X4 y 4 columnas Y1 Y4 de tal forma de que cada tecla queda identificada por la intersecci n de un rengl n y una columna En la
26. a en marcha de este compilador dentro de MPLAB Se deja al usuario el estudio de dicho lenguaje y su utilizaci n dentro del MPLAB En el subdirectorio archivos16F84 hay tambi n un archivo de prueba escrito en lenguaje C llamado led C Por favor acuda al help de MPLAB para informaci n completa de todas sus capacidades EDU PIC 16F84 Punto Flotante S A 2009 22 Abra desde el escritorio el archivo ejecutable MPLAB IDE Para configurarlo elija la opci n configure select device All abra la opci n 16F84 Ahora se ale la opci n file open y despu s elija el path CAEDUPIClarchivos16f84 All elija el archivo demof84 asm El listado del archivo fuente demof84 asm es el siguiente File DEMOF84 ASM Assembly code for PIC16F84 microcontroller Enciende leds del puerto B con un patr n de rotaci n Oscilador Cristal de 4 Mhz Cada LED enciende durante 0 5 seg Configuraci n del CPU 16F84 Oscilador cristal 4 Mhz watchdog timer off power up timer on incluye archivo p16f84 inc processor 16f84 include lt p16f84 inc gt config XT OSC amp WDT OFF amp PWRTE ON equ H F localidad 1F es J K equ H IE localidad 1E es K Programa org 0 origen de memoria flash 0 movlw B 00000000 w 00000000 tris PORTB puerto B 0 bits son salidas movlw B 00000001 H movwf PORTB port B 1 bcf STATUS C carry 0 mloop rlf PORTB f rotate left PORT B incluye ca
27. act de todos los archivos para ser instalados en el mismo subdirectorio WINPIC D click a la opci n yes to all si aparece un mensaje de WINZIP preguntando por el reemplazo de los archivos Haga un acceso directo al escritorio del archivo winpic exe PASO 3 QUITAR PROTECCION DE SOLO LECTURA A LOS ARCHIVOS Antes de poder editar y ensamblar cualquier programa en MPLAB es necesario quitar la protecci n de solo lectura de los archivos de prueba que se encuentran en el subdirectorio EDUPIC archivos16F84 Estos archivos traen esa protecci n debido a que fueron copiados directamente de un CD de solo lectura Abra el subdirectorio archivos16F84 y observe los archivos all contenidos Ahora quite la protecci n de solo lectura en los archivos mediante el siguiente procedimiento con la carpeta archivos16F84 abierta seleccione edit y luego seleccionar todo Una vez que todos los elementos aparezcan sombreados d click en la parte derecha del mouse sobre cualquiera de los conos y seleccione la opci n propiedades Quite all la selecci n de la opci n solo lectura dejando el cuadrito en blanco Luego d click en aplicar y cerrar De esta forma todos los archivos quedar n ahora disponibles para su edici n en MPLAB Si omite este paso MPLAB no podr editar ni ensamblar ning n archivo y enviar mensajes de error al intentarlo Los archivos en la carpeta archivos16F84 son programas de prueba para
28. al En el registro de OPCION debe programarse si la interrupci n se genera con al flanco ascendente o descendente EDU PIC 16F84 Punto Flotante S A 2009 10 el BIT 2 es una bandera que se pone en 1 si el contador del temporizador del circuito sufre un overflow es decir excede su cuenta m xima Y en O si dicho contador no excede su cuenta m xima en el BIT 3 deber escribirse un valor de 1 para habilitar la interrupci n de los bits RB4 RB7 ver bit 0 y de O para deshabilitar dicha interrupci n enel BIT 4 deber escribirse un valor de 1 para habilitar la interrupci n externa ver bit 1 y de 0 para deshabilitar dicha interrupci n enel BIT 5 deber escribirse un valor de 1 para habilitar la interrupci n del temporizador ver bit 2 y de O para deshabilitar dicha interrupci n En el BIT 6 deber escribirse un valor de 1 para habilitar la interrupci n de escritura de un dato en la EEPROM completado y un valor de O para deshabilitar dicha interrupci n El bit 4 del registro EECONI es la bandera correspondiente que maneja la interrupci n y se pone en un valor de 1 cuando est activa el BIT 7 corresponde al habilitador GLOBAL de las interrupciones GIE Debe de tener un valor de 1 para habilitar todas la interrupciones y de O para deshabilitarlas Cuando se genera una interupci n el bit GIE es autom ticamente puesto en 0 para impedir que se generen nuevas interrupciones El contador del programa se carga
29. al 7 binario y programan el divisor del temporizador y del WATCH DOG TIMER de acuerdo a la siguiente tabla PS2 PSI PSO DIVISOR TMRO DIVISOR WDT 000 1 2 1 1 001 1 4 1 2 010 1 8 1 4 011 1 16 1 8 100 1 32 1 16 101 1 64 1 32 110 1 128 1 64 111 1 256 1 128 EDU PIC 16F84 Punto Flotante S A 2009 9 el bit 3 determina si el valor anterior se asigna al temporizador o al WDT Si el valor es de 1 se asigna al WDT si el valor es de 0 se asigna al temporizador El bit 4 determina si el contador del temporizador se incrementa con el flanco ascendente 1 o con el flanco descendente 0 de la se al del pin 3 RA4 TOCK1 del chip 16F84 El bit 5 determina si la fuente de incremento del temporizador es la transici n en el pin RA4 TOCLKI 1 o el clock interno que maneja el ciclo de instrucci n CLKOUT 0 El bit 6 determina cuando su valor es de 1 que la interrupci n externa se genera con el flanco ascendente del pin 6 del 16F84 RBO INT Cuando su valor es de 0 entonces la interrupci n se genera con el flanco descendente de la misma se al El bit 7 determina cuando su valor es de 1 que las resistencias de PULL UP en las salidas del puerto B estar n DESHABILITADAS Si su valor es de 0 entonces dichas resistencias est n HABILITADAS 9 Registro temporizador contador TMRO El registro TMRO puede operar como un contador de los pulsos provenientes del bit RA4 TOCLK1 o como un t
30. al de RESET general para el 16F84 RB6 es la se al de reloj para sincronizar los datos Normalmente es el bit 6 del puerto B RB7 es la se al de datos Normalmente es el bit 7 del puerto B Por medio de 3 jumpers S1 S2 S3 estas 3 se ales son conectadas o aisladas de los pines del 16F84 Cuando se opera el microcontrolador en modo de programaci n y pruebas junto con el programa WINPIC entonces los 3 jumpers permanecen en la posici n PROGRAMAR Cuando ya se tiene el programa de aplicaci n funcionando entonces los 3 jumpers ahora se cambian a la posici n AUTORUN no interfiriendo ninguna de las se ales de control del ICSP con la operaci n del 16F84 En el disco que acompa a a este sistema se incluye la especificaci n del est ndar ICSP en formato PDF El hardware de este programador opera junto con el software denominado WINPIC Gracias a este programa es posible no solamente transferir y programar archivos desde el puerto serial de una computadora PC hacia la memoria FLASH del microcontrolador sino que tambi n es posible ejecutar y probar los programas que se est n desarrollando sin necesidad de mover los jumpers de su posici n de PROGRAMAR o desconectar el cable serial de la computadora PC 5 Oscilador El 16F84 puede funcionar con un oscilador RC bien un cristal En el caso de la tarjeta EDU PIC un oscilador cristal de 4 MHz se encuentra ya instalado El oscilador principal es dividido entre 4 para
31. an en un ciclo de instrucci n es decir 4 ciclos de reloj Para un sistema funcionando a 4 Mhz cada instrucci n se ejecuta en 1 microsegundo Si la instrucci n modifica el contenido del contador del programa entonces el tiempo de ejecuci n es de 2 ciclos de instrucci n 2 microsegundos El grupo de 35 instrucciones es el siguiente MOVE GROUP movf f d move f movwf f move w tof movlw k move literal to w clrf f clear f clrw clear w swapf f d swap nibbles in f ARITHMETIC GROUP addwf f d add w and f addlw k add literal to w subwf f d substract w from f sublw k substract w from literal indf f d increment f incfsz f d increment f skip if 0 decf f d decrement f EDU PIC 16F84 Punto Flotante S A 2009 decfsz LOGIC GROUP andwf fd andilw k iorwf f d iorlw k xorwf fd xorlw k comf f d rif f d rrf f d BIT GROUP bef f b bsf f b btfsc f b btfss f b CONTROL GROUP clrwdt sleep nop BRANCH GROUP goto k call k return retlw k retfie incfsz f d decfsz fd btfsc f b btfss f b f d 16 decrement f skip if 0 and w and f and literal to w inclusive or w and f inclusive or literal to w exclusive or w and f exclusive or literal to w complement f rotate left f through carry rotate right f through carry bit clear in f bit set in f bit test in f skip if clear bit test in f skip if set clear watchdog timer go into sleep mode no operation goto address call soubrutine return fr
32. bits y que direcciona a la siguiente localidad de memoria de c digo que habr de leerse y ejecutarse Tambi n existe una PILA STACK que se usa para el manejo de las instrucciones de CALL RETURN RETFIE RETLW Es una pila de 8 niveles que se encuentra en una memoria independiente de la memoria de programa y c digo y all se almacenan y recuperan las direcciones de retorno despu s de los llamados a subrutina Es importante se alar que dado que se trata de una pila de solo 8 localidades solo pueden anidarse hasta 8 llamados a subrutinas o interrupciones dentro del programa 7 Memoria Como se explic anteriormente la arquitectura HARVARD permite el uso de 2 bloques de memoria distintos con dos buses de datos separados para la memoria de programa y de datos La memoria de programa es del tipo FLASH con capacidad de programar y borrar hasta 10 000 veces y cuenta con 1024 localidades de 14 bits con direcciones de la 0000H a la 03FFH Las direcciones O y la 4 de esta memoria son usadas para los vectores de RESET e interrupci n respectivamente es decir despu s de RESET al contador del programa apunta hacia la direcci n O y despu s de la ocurrencia de una interrupci n que se encuentre habilitada entonces el contador del programa apuntar a la direcci n 4 La memoria de datos es de 8 bits e incluye 68 localidades de RAM y 64 localidades de EEPROM con capacidad de programar y borrar hasta 10 millones de veces La memoria d
33. con un temporizador de 8 bits el cual al activarse incrementa su cuenta cada 4 pulsos del reloj principal generando una se al de interrupci n al llegar a la cuenta prefijada El CPU puede procesar un total de 35 instrucciones Cada una de las instrucciones est contenida en una palabra de 14 bits y se ejecutan en un ciclo de instrucci n con excepci n de las instrucciones de JUMP BRANCH y CALL Lo anterior es debido al esquema de pipeline usado en arquitecturas HARVARD y que permiten al procesador realizar el FETCH y el EXECUTE simult neamente con excepci n de las instrucciones de salto referidas En el siguiente diagrama se muestra la ejecuci n del programa con un sistema tipo pipeline Obs rvese que en todos los ciclos de reloj se hace el fecth y execute simult neamente con EDU PIC 16F84 Punto Flotante S A 2009 6 excepci n del ciclo TCY4 en donde se deshecha flush la instrucci n n mero 4 y se contin a con la instrucci n 5 llamada por la subrutina TC YD TC TC Y TCY TCY4 TC Y5 1 MOVLW 55h Execute 2 MOYWF FORTE Fetch2 Execute2 Fetch3 3 CALL SUE 4 BSF PORTA BITS Forced NOP Flush Fetch SUB 1 llExecutesUB 1 FetchSUB 1 1 5 Instruction f address SUB 1 FIGURA 5 El microcontrolador 16F84 contiene los siguientes registros principales el registro W de 8 bits que es el nico acumulador del procesador y el registro PC program counter que es un apuntador de 10
34. ct ICSP Go para ejecutar el programa Inmediatamente deber observar una cuenta binaria en los leds de su tarjeta Tambi n puede oprimir la tecla F9 para hacer que el programa se ejecute Siguiendo el mismo procedimiento cargue y ejecute los programas demof84 hex corrimiento de los leds microsw hex lectura de los microswitches y activaci n del relevador con la combinaci n 1001 Observe que en todos los casos no es necesario realizar el borrado previo de la memoria FLASH sino que sta es borrada autom ticamente antes de ser reprogramada PASO 7 EJECUCION DEL PROGRAMA EN MODO AUTORUN El programa ya cargado en la tarjeta EDU PIC puede ser ahora ejecutado en modo autorun Para esto desconecte el cable serial de la tarjeta y mueva los jumpers S1 S2 S3 hacia la posici n AUTORUN D reset a la tarjeta y el programa se ejecutar ahora en modo autorun En seguida el usuario aprender a editar ensamblar simular y modificar un programa PASO 8 CONFIGURAR MPLAB EDITAR ENSAMBLAR Y SIMULAR UN PROGRAMA EN LA PC MPLAB es un programa que integra numerosas funciones adicionales a las que se cubre en este manual Desde MPLAB se puede por ejemplo compilar archivos 16F84 en lenguajes de alto nivel En el disco CD que acompa a a EDUPIC se incluye el archivo de instalaci n del programa PICCLITE que es un compilador ANSI de C para el 16F84 y que es compatible con MPLAB Sin embargo el presente manual no incluye la puest
35. desde el programa ejecutable del microcontrolador sino directamente debe modificarse el valor en el programa fuente ASM el cual debe ensamblarse junto con el nuevo programa que se env e a la memoria flash del chip Para ello se cuenta con una directiva en el programa ensamblador que realiza esta funci n En seguida se muestra un ejemplo config XT OSC WDT ON PWRTE ON Adem s desde el programa ejecutable el bit 3 del registro OPTION debe de programarse como PSA 1 para asignar el valor del preescalador al WDT Adicionalmente en los bits PSO PS1 PS2 del registro OPTION debe escribirse desde el programa un valor entero del O al 7 Cualquier valor diferente a 0 eleva el per odo de activaci n del WDT a 18 milisegundos multiplicado por 2 elevado a ese valor de acuerdo a la tabla mostrada en la figura Por ejemplo si el valor de los bits PSO PS1 y PS2 es de 5 el per odo de TIMEOUT ser de 18ms x 32 2 576 ms El TIMEOUT m ximo para el WDT es de 2 3 segundos Una vez que el WDT est activado a trav s de la instrucci n CLRWDT se reinicia desde O su per odo de activaci n Entonces dicha instrucci n debe de ejecutarse regularmente dentro de la malla principal en el programa con un per odo que debe de ser MENOR al TIMEOUT programado para el WDT Cuando por alguna causa de malfuncionamiento del 16F84 el programa se sale de su operaci n normal y por consecuencia la instrucci n CLRWDT no se ejecuta entonces al llegar a un
36. do lo pone en W EJEMPLOS DECFSZ 20H W DECFSZ F D Resultado Decrement F Skip if Zero Decrementa el valor de la localidad 20H El resultado lo almacena en el registro W Si el resultado es 0 no ejecuta la siguiente instrucci n sino la inmediata despu s de sta Si el resultado es diferente de 0 entonces ejecuta la siguiente instrucci n EJEMPLO6 DEC 2AH W DEC FED EDU PIC 16F84 Punto Flotante S A 2009 18 Resultado Decrementa la localidad 2AH el resultado lo pone en el registro W EJEMPLO7 ANDWF 2B F ANDWF F D Resultado hace la operaci n l gica AND entre la localidad 2B y el registro W El resultado lo pone en la localidad 2B EJEMPLOS BTFSC 35H 3 BTFSC F B Resultado Bit Test F Skip if Clear Hace una prueba sobre el bit 3 de la localidad 35H Si el valor es 0 no ejecuta la siguiente instrucci n pero s la siguiente Si el valor es 1 entonces ejecuta la siguiente instrucci n 14 2 FORMATO DE LAS INSTRUCCIONES Todas las instrucciones llevan alguno de los siguientes formatos dependiendo de la funci n que desempe en Instrucciones orientadas a byte Instrucciones orientadas a bit Instrucciones de manejo de constantes en la literatura de Microchip las constantes se denominan literals y finalmente instrucciones de salto CALL y GOTO Enseguida se muestra el formato para cada tipo de instrucci n Las palabras son de 14 bits Obviamente el trabajo de decodificaci n de cada formato es realizado por el progra
37. e datos RAM se encuentra mapeada debajo de los registros especiales del 16F84 ver cap tulo que sigue en la direcci n OCH hasta la 4FH el mapa se repite desde la 8CH a la CFH y puede ser accesada a trav s de las instrucciones de MOVWF 6 MOVF en forma directa o indirecta Si se emplea direccionamiento indirecto entonces deben de emplearse los registros especiales FSR como apuntador de la localidad e INDR como destino de la lectura o almacenamiento previo del dato a escribirse La memoria EEPROM no puede ser accesada en forma directa sino solo en forma indirecta a trav s de los registros EEADR EEDATA EECONI y EECONZ y siguiendo un procedimiento especial para lectura y escritura de tal forma de evitar modificaciones accidentales del contenido de la memoria La forma de accesar esta memoria se explica en el cap tulo 10 En el siguiente diagrama se muestran los dos tipos de arquitectura usados en computadoras la arquitectura Harvard y la Von Neumann Harvard von Neumann a dm T cs gt D c m E Ge E E 8 EG cC mE E E ra m t Pre EDU PIC 16F84 Punto Flotante S A 2009 FIGURA 6 8 Registros especiales File Address File Address 02h 82h 03h 83h D4n 84h 05h 85h Em ran D amp 8h aah DS EECON2AN B6 ocn Bich Mapped access in Bank D 4Fh CFh FIGURA 7 Existen 2 bancos de registros denominados SFR Special Function Registers que permiten al programador acceder a alguna
38. e se mandan comandos de inicializaci n al display con la se al RS 0 en estado bajo Los comandos t picos son los 4 mostrados en la tabla Para mandar el comando se escribe su c digo en los 8 bits DBO a DB7 y se le da un pulso BAJO a la se al EN Esta se al debe estar NORMALMENTE ALTA y se pueden manejar pulsos de 50 ms Es importante esperar a que los datos est n estables antes de aplicar el pulso Ho o 2 EN E gt AA poo 6 ofsvs BP EDUPIC 2006 SISTEMA LISTO CONECTOR LCD FIGURA 16 CONEXI N DEL MODULO LCD 8 BITS SELECCIONA INTERFAZ DE 8 BITS PARA TRANSFERENCIAS DE DATOS RENGLONI SELECCIONA ESCRITURA EN EL PRIMER RENGLON DEL LCD RENGLON2 SELECCIONA ESCRITURA EN EL SEGUNDO RENGLON DEL LCD e con RS 1 se escribe los datos ASCII en las 8 l neas DBO a DB7 con el mismo procedimiento se alado arriba Los caracteres van apareciendo en el mismo orden en el que se mandan Para un LCD de dos renglones cada rengl n debe de manejarse con un comando independiente Para escribir en el primer rengl n debe previamente de enviarse el comando 80H y para el segundo rengl n un COH e Las se ales de control RS y EN se manejan por medio de los pines RA1 y RA2 del 16F84 PROGRAMAS DE PRUEBA PARA EL LCD existen dos tipos de displays LCD EDU PIC 16F84 Punto Flotante S A 2009 30 LCD 16 X 2 con dos renglones de 16 caracteres cada uno Se proporcionan los programas de prueba LCD1 LCD2 LCD MENSAJE y L
39. ea en donde ocurri el error para despu s corregirlo en el archivo ASM y volver a repetir el ensamblado LED DE PROGRAMACION CONECTOR LCD e zw PUERTO SERIAL LED PUERTO SERIAL E LED POWER ON EDU PIC 16F84 Punto Flotante S A 2009 21 FIGURA 12 PASO 4 CONEXI N DE LA TARJETA A LA COMPUTADORA Por favor identifique las componentes indicadas en la figura 12 para la tarjeta EDU PIC en particular el microcontrolador 16F84 el conector del eliminador de bater as y el conector del cable serial Observe los letreros de PROGRAMAR y AUTORUN en la tarjeta Ambos indican la posici n que deben de tener los 3 jumpers ya sea para trabajar en modo de programaci n del 16F84 o bien para correr el programa previamente almacenado Coloque los 3 jumpers en su posici n m s cercana al letrero PROGRAMAR Ahora conecte el eliminador de bater as con el selector del voltaje en 7 5 volts y el cable serial a los conectores indicados El conector DB9 del lado opuesto del cable serial debe de conectarse al COMI COM2 de su computadora El led que se encuentra al lado del conector del eliminador deber encenderse El LED que se encuentra junto al conector DB9 se enciende con algunos sistemas operativos y con otros no PASO 5 CONFIGURAR EL PROGRAMA WINPIC Y HACER LA TRANSFERENCIA DEL ARCHIVO Ejecute el programa WINPIC desde su escritorio Para configurarlo seleccione la solapa device config y all la opci n part
40. ecir en su posici n m s cercana al puerto serial Una vez alimentada la tarjeta el programa cargado de f brica en la memoria FLASH del 16F84 que escribe un mensaje en el LCD debe de funcionar en forma inmediata encendiendo y apagando los LEDS en forma secuencial No es necesario que el m dulo LCD est conectado Si el programa funciona correctamente puede usted continuar con la puesta en marcha PASO 2 INSTALACION DE LOS PROGRAMAS DEL DISCO DE SOPORTE Genere una carpeta denominada EDUPIC en el escritorio de su PC Ahora inserte su disco de soporte EDU PIC en su unidad lectora de CD de su computadora Abra el contenido del disco y verifique su contenido Copie desde la unidad lectora del CD todos los archivos hacia la carpeta EDUPIC Hay dos archivos comprimidos MPLAB660 zip y dentro de la carpeta WINPIC winpicpr zip y por esta raz n es que tambi n se anexan en el disco los archivos auxiliares para descomprimir WINZIP PKREADER El resto de los archivos son informaci n did ctica programas tutoriales o manuales de algunos dispositivos programas y est ndares empleados Se incluye tambi n el Acrobat Reader para poder leer los archivos en formato pdf En el archivo readme existe una lista completa de los archivos contenidos en el disco CD y su aplicaci n Ahora ejecute el archivo comprimido MPLAB660 zip y una vez descomprimido ejecute su programa de instalaci n Ponga por favor atenci n en las siguientes ventanas que a
41. emporizador El modo de funcionamiento se selecciona con el bit 5 del registro de OPTION El bit 5 de OPTION debe de ponerse en 1 si se selecciona el modo contador Al mismo tiempo el bit 4 determina como se explic arriba si la cuenta en el registro TMRO se incrementa con el flanco ascendente o descendente del bit externo RA4 TOCLK1 Cuando se selecciona el modo temporizador entonces el bit 5 del registro de OPTION debe de ponerse en un 0 En este modo de operaci n el registro TMRO funciona junto con un PREESCALADOR Este preescalador puede programarse para dividir la cuenta de ciclos de instrucci n entre el valor seleccionado en el registro OPTION en los bits PSO PS1 y PS2 de acuerdo a la tabla mostrada en la secci n 7 2 En total se pueden generar per odos de espera de hasta un m ximo de 256 x 256 ciclos de instrucci n 65 536 microsegundos 65 5 milisegundos operando a 4 Mhz Si el usuario desea manejar el registro con base en el sistema de interrupciones la interrupci n TMRO se genera cuando el registro pasa de una valor de FFH a 00H El mecanismo de operaci n de las interrupciones usa los bits 2 y 5 del registro INTCON y se explica en el cap tulo siguiente Debe de tomarse en cuenta que si el procesador se encuentra en el modo SLEEP entonces la interrupci n TMRO no despertar al procesador ya que es deshabilitada durante ese modo 10 Interrupciones del sistema El chip 16F84 cuenta con 4 posibles fuentes de int
42. errupci n asociadas a la ocurrencia de alguno de los siguientes eventos Lainterrupci n externa en el pin RBO INT del chip con flanco ascendente o descendente Hloverflow en el temporizador del chip Cualquier cambio de nivel en los pines RB4 RB7 Cuando se ha completado la escritura de un dato en la EEPROM El vector de inicio de la subrutina de atenci n a interrupciones es la direcci n 0004H Despu s de la ocurrencia de una interrupci n que se encuentre hablilitada el programa efectuar autom ticamente un llamado a subrutina hacia esa direcci n Si se usan interupciones dentro de su programa es necesario entonces en el programa principal en la direcci n 0000H que es la direcci n de inicio despu s de RESET efectuar un salto a una localidad que se encuentre despu s de la subrutina de atenci n a las interrupciones del sistema El registro INTCON controla la habilitaci n y deshabilitaci n de estas interrupciones del sistema Sus bits tiene las funciones que se indican enseguida REGISTRO INTCON DIRECCION 0BH 8BH GIE EEIE TOIE INTE RBIE TOIF INTF RBIF Bit 7 Bit 0 el BIT 0 es una bandera que se pone en valor 1 si alguno de los bits del puerto RB4 RB7 cambi de valor y en 0 si ninguno de estos bits cambi su valor el BIT 1 es una bandera que se pone en 1 si se activa la interrupci n externa se al RBO INT del 16F84 y tomar un valor de 0 si no se activa dicha se
43. es 0 1 2 3 main movlw 1 en este ejemplo la tabla se encuentra en la p gina 1 movw f PCLATH carga el n mero de p gina en PCLATH dire oin en esta zona del programa debe de inicializarse W con el desplazamiento call TABLA en sta l nea regresa la subrutina TABLA con el dato de la tabla en W TABLA addwf PCL sta instrucci n suma a PCL el contenido de W y carga PCLATH en la parte al ta del contador del programa relw P regresa de la subrutina con el c digo ASCII de la H en W retlw O relw L retlw A 15 Puesta en marcha PASO 1 REVISION DE COMPONENTES Y PRUEBA INICIAL DE LA TARJETA EDUPIC Revise por favor que su kit incluya lo siguiente tarjeta EDU PIC eliminador de bater as cable serial y disco CD de aplicaci n Para poder usar el disco de aplicaci n usted necesita una computadora con Windows98 o bien un sistema operativo m s reciente incluyendo XP con una unidad lectora de CD y un puerto serial con conector DB9 Mueva el selector del eliminador de bater as a 7 5 volts y con ctelo a su tarjeta EDUPIC Tome como auxiliares para la realizaci n de este punto a la figura 12 y la figura 17 foto al final del manual Los jumpers en EDUPIC S1 S2 S3 deben de estar en la posici n AUTORUN Debido a que existen dos se ales de control del LCD compartidas con los microswitches para la realizaci n de esta prueba los SWITCHES A1 y A2 deben de estar en OFF ABIERTOS es d
44. figura se muestran los diagramas del teclado as como de la asignaci n de se ales en el puerto B en el conector de EDUPIC y en el conector del teclado La t cnica de programaci n para detectar qu bot n fue oprimido es escribir en los bits del puerto B en forma secuencial un CERO en las columnas Y1 Y2 Y3 Y4 y leer cada vez los renglones X1 X2 X3 X4 Cuando una tecla es oprimida la lectura en alguno de los renglones ser CERO y el c digo de 8 bits X Y hallado se convierte en el c digo ASCII de la tecla oprimida mediante una tabla La tabla de abajo muestra esta relaci n C digo en B Hexa Tecla C digo en B Hexa Tecla B7 BO B7 BO 11101110 EE 0 10111110 BE 8 11101101 ED 1 10111101 BD 9 11101011 EB 27 10111011 BB A 11100111 E7 ls 10110111 B7 B 11011110 DE 4 01111110 TE C 11011101 DD Ki 01111101 TD D 11011011 DB 6 01111011 7B E 11010111 D7 7 01110111 77 p PROGRAMAS DE PRUEBA PARA EL TECLADO Mediante la tabla de arriba el programa que controla al teclado pasa de la parte de detecci n a otra que identifica el c digo ASCII de la tecla oprimida Por favor abra los archivos que se encuentran en el disco de aplicaci n en el subdirectorio archivos16F84 El nombre de estos archivos es teclado1 teclado2 teclado3 y teclado4 Lea en cada archivo la funci n que desarrolla La secuencia del 1 al 4 est hecha para
45. file registers para que aparezca una ventana con los registros e inicie la simulaci n oprimiendo F6 Avance la simulaci n oprimiendo repetidamente la tecla F7 y observe el contenido del registro 06 que es el puerto B que es en donde est n conectados los LEDS Con la tecla F6 avance paso a paso El registro pasar del valor hexadecimal 01 al 02 04 08 10 20 40 80 que es el patr n de corrimiento de los leds Observe asimismo el contenido de las localidades OEH y OFH que se usan como contadores para los retardos ESCALAMIENTO DEL TIEMPO EN EL SIMULADOR CON RESPECTO AL TIEMPO REAL La velocidad de simulaci n es mucho menor a la velocidad del programa corriendo en tiempo real en la tarjeta EDU PIC Por esta raz n es que en el programa cargado en MPLAB en la subrutina de retraso debe de modificarse el valor decimal de 200 en el registro W poniendo un 4 en su lugar De lo contrario tomar a mucho tiempo hacer la simulaci n de una secuencia completa de corrimientos Una vez conclu da la simulaci n este valor deber reemplazarse de nuevo por un valor de 200 para cargar el programa en la tarjeta y obtener un retraso de 250 ms entre cada corrimiento en tiempo real Para finalizar este punto reemplace como se explic el valor 4 por 200 y vuelva a ensamblar el programa mediante los comandos project y quickbuild Una vez ensamblado el programa sin errores es posible transferir el archivo ejecutable a su tarjeta
46. formar los pulsos Q1 Q2 Q3 y Q4 estos 4 pulsos hacen un ciclo de m quina En el siguiente diagrama se muestra el diagrama b sico de operaci n del reloj en donde se divide el oscilador principal en 4 ciclos por cada ciclo de m quina El circuito impreso de su tarjeta tiene tambi n opci n para la instalaci n de un oscilador del tipo RC componentes R6 y C7 Es importante sefialar que solamente una de estas opciones puede quedar instalada en su tarjeta y es adem s necesario hacer la inicializaci n correcta en el 16F84 indicado en el programa fuente ASM el tipo de oscilador que habr de usarse 1Q1 Q2 Q3 104 101 G2 Q3 Q41091 92 Q3 G4 ee gp EE gp E pp E y E a E a E a E y E a E a E a E a E Qu I7 reo 1 L j4 I 1 p pc X n y BEST i Lazy 4 j FIGURA 4 6 Arquitectura del microcontrolador PIC 16F84 El PIC16F84 pertenece al tipo de procesadores con arquitectura Harvard es decir la memoria de datos y de c digo separadas y arquitectura RISC Reduced Instruction Set Computer El microcontrolador cuenta con los siguientes elementos memoria de programa de 1K del tipo FLASH programable y borrable el ctricamente 64 bytes de memoria EEPROM para el almacenamiento de datos permanentes en memoria 68 bytes de RAM dos puertos de entrada salida el puerto A con 5 se ales y el B con se ales en total 13 se ales de entrada salida Adicionalmente el microcontrolador cuenta
47. icial de 4 x 4 Conector para LCD de 14 contactos est ndar y listo para la conexi n de un LCD Funciones adicionales power on reset temporizador watch dog code protection sleep bajo consumo Temporizador contador de eventos de 8 bits con preescalador de 8 bits Interrupciones 4 fuentes de interrupci n una externa del pin RBO INT una de overflow del temporizador una m s por el cambio en los niveles de las entradas RB4 RB7 y una ltima por escritura completa en la EEPROM Dimensiones 10 cms x 7 5 cms tarjeta de fibra de vidrio thru hole Consumo normal lt 2 ma E 5v y 4 Mhz en SLEEP mode solo 15 uA Fuente de poder eliminador de bater as de 300 ma 6 v 7 5 v Programador del chip 16F84 integrado en la tarjeta la programaci n se realiza desde una computadora PC por puerto serial empleando el freeware WINPIC Software para desarrollo MPLAB freeware de Microchip que incluye editor ensamblador simulador y compilador WINPIC programador de la memoria flash del 16F84 16 2 LAY OUT B 5 5 5 T ea z gH de T4 TM ale co E20 E C4 10 FIGURA 13 EDU PIC 16F84 Punto Flotante S A 2009 25 1000 u F IN4148 IN4148 CONREL u2 vN vour 1 GND ALIM 16 3 DIAGRAMA ELECTRONICO GN 10 V 4K RIS EDU PIC 2006 V 2 0 OSICKIN gt OS2CKOUT RAO RAI RA2 RA3 RATA g PRBOTNT wy PIC16FSA RBI RH RBS RE RBS Punto Flotante SA An de las To
48. ido como ICSP In Circuit Serial Programming que es el est ndar creado por Microchip para la programaci n de sus dispositivos El ISCP usa 3 se ales del 16F84 para su programaci n RB5 RB6 y la se al MCLR Los jumpers S1 S2 y S3 conectan a stas 3 se ales con el programador cuando su posici n es de PROGRAMAR La tarjeta EDU PIC contiene las siguientes funciones y dispositivos en su hardware Microcontrolador 16F84 funcionando con un cristal de 4 Mhz 1K bytes de memoria FLASH 64 bytes de EEPROM 68 bytes de RAM y 1 temporizador Tecnolog a CMOS con muy bajo consumo en funcionamiento normal 2 miliamperes E 5 volts Arquitectura Harvard con un set de instrucciones RISC de solamente 35 instrucciones Programador del 16F84 integrado a la tarjeta conector DB9 para puerto serial para programaci n desde una PC Puerto de salida de 8 bits con leds conectados como testigos para facilitar pruebas por parte del usuario Entradas para 4 sefiales digitales con microswitches conectados para facilitar las pruebas Salida para un relevador de baja potencia integrado a la tarjeta para la activaci n de dispositivos externos Conector de 14 pines para conexi n a LCD Conector de 8 pines para teclado matricial Conector Header de 16x para conexi n a interfaces externas Circuito Watch Dog programable para evitar que el microcontrolador se salga de operaci n Modo de operaci n de bajo consumo SLEEP con un consumo virtual de 0
49. industriales en los cuales se deben activar o desactivar ciertos dispositivos en ciertas horas o en los sistemas de control de acceso en los cuales se deben detectar eventos y conocer la hora en la que ocurrieron Se emplea el temporizador TMRO y el preescalador para generar ciclos de interrupci n cada 65 536 milisegundos Contadores adicionales generados por software realizan la cuenta de segundos decenas de segundos minutos decenas de minutos horas y decenas de horas Una vez que la cuenta alcanza 23 59 59 y se genera la cuenta de un segundo adicional entonces la hora pasa autom ticamente a 00 00 00 Dado que el sistema descrito funciona por interrupciones es posible afiadir al programa principal propuesto rutinas de control adicionales para resolver un problema espec fico sin afectar el funcionamiento de la base de tiempo Si el usuario dispone de un display LCD de 16 x 1 entonces podr hacer uso del programa desarrollado para hacer que en ste se muestre la hora minutos y segundos del d a Por favor cargue desde WINPIC refi rase al cap tulo de Puesta en Marcha el archivo RTC V3 HEX hacia su sistema EDU PIC El archivo original comienza con la hora 00 00 00 Si desea poner la hora actual modifique el archivo RTC V 3 ASM usando MPLAB localizando la subrutina seto y escriba all los contenidos deseados de segundos decenas de segundos minutos decenas de minutos horas y decenas de horas En seguida aplique el comando
50. ivar un relevador integrado en la tarjeta EDU PIC Los datos nominales de este relevador son un polo un tiro activaci n con 12 volts DC y contactos de 127 VCA 10 EDU PIC 16F84 Punto Flotante S A 2009 14 Amperes Este relevador puede ser usado ya sea como un sensor digital ABIERTO CERRADO para alertar a otros dispositivos del estado de alguna alarma o bien como actuador para activar dispositivos externos como focos v lvulas solenoides motores etc 5 6 RELEVADOR BC547 CONECTOR DE TORNILLOS FIGURA 9 CONEXI N DEL RELEVADOR 7 1 l 127 vac 12 v Conector tarjeta relevador auxiliar carga neutro FIGURA 10 CONEXI N DE UN RELEVADOR AUXILIAR 13 3 HEADER DE 16 X CONECTOR PARA UN TECLADO MATRICIAL Las se ales de los puertos descritas en el subcap tulo de arriba como se explic est n disponibles en un conector header 16x En seguida se muestre el diagrama de conexiones de dicho conector Por favor tome nota de que el orden de los pines es diferente a los de un circuito integrado siendo una fila de pines nones y la otra de pines pares Los pines del puerto B est n disponibles en toda una hilera del header para conectar en forma inmediata un teclado matricial de 4 x 4 ver ap ndice 1 RB7 GND RB6 RB5 5v RB4 RA4 RB3 RA3 RB2 RA2 RB1 RAI RBO RAO FIGURA 11 EDU PIC 16F84 Punto Flotante S A 2009 15 13 4 CONECTOR A LCD La tarjeta EDUPIC ofrece un conector est
51. los diferentes dispositivos de la tarjeta EDUPIC Los nombres son los siguientes contador demof84 led microsw Icdmensaje Icd1 lcd2 LCD 16x1 LCD16X1 V 2 LCD16X1 V3 LCD16X1 V4 tecladol teclado2 teclado3 teclado4 RTC RTC V2 RTC V3 Las terminaciones son Terminaci n ASM que son los archivos fuente Estos archivos son solamente de texto y est n escritos en lenguaje ensamblador para el microcontrolador 16F84 Terminaci n LST que son los archivos ensamblados y que incluyen el texto fuente las localidades de memoria con su c digo de m quina y los mensajes de error Los archivos con terminaci n HEX son archivos objeto listos para su transferencia a la tarjeta EDUPIC a trav s del programa WINPIC Existe tambi n un archivo de nombre 16f84 inc el cual contiene las directivas del ensamblador necesarias para escribir r pidamente un programa haciendo referencia a los registros y a los bits individuales de los registros del 16F84 M s abajo se explica con m s claridad el uso de este archivo Cada vez que un archivo ASM es ensamblado por MPLAB se crean autom ticamente 4 nuevos archivos Por ejemplo si el archivo contador ASM es ensamblado al final del proceso aparecer n en el mismo subdirectorio los siguientes archivos contador ASM contador COD contador ERR contador LST y contador HEX Si aparece alg n mensaje de error durante el proceso de ensamblado el usuario deber revisar el archivo LST para encontrar el n mero de l n
52. m ximo la cuenta en el WDT TIMEOUT el circuito genera un RESET que reinicia la operaci n del 16F84 12 5 SLEEP El 16F84 cuenta con una funci n que le permite operar en un modo de muy bajo consumo por ejemplo en el caso de un sistema con alimentaci n de energ a solar pilas Si se tiene una aplicaci n en la cual el microcontrolador no desempe a ninguna funci n til hasta la ocurrencia de alguna interrupci n puede abatirse el consumo promedio del circuito a niveles cercanos a 0 ma 1 uA La funci n de SLEEP se habilita con la instrucci n del mismo nombre A partir de su ejecuci n los circuitos del oscilador maestro cesan de funcionar siendo de esta forma el consumo de corriente de casi cero Solamente la ocurrencia de alguna interrupci n externa en el pin RBO INT la interrupci n por alg n cambio en los niveles de las entradas en el puerto B la interrupci n proveniente de la EEPROM bien un reset en el pin MCLR del 16F84 puede restaurar la operaci n normal del circuito Antes de entrar al estado de SLEEP debe de inhibirse la operaci n del WDT para evitar que ste reactive al circuito a trav s de su reset autom tico 12 6 CODE PROTECT El microcontrolador 16F84 cuenta con una opci n para evitar de ser necesario que alguna persona pueda copiar el c digo del programa contenido en la memoria FLASH del chip Si usted desea proteger su programa entonces deber antes de programar el chip poner en valor 0 los bits del 4
53. ma ensamblador raz n por la cual el programador no requiere de decodificar manualmente cada instrucci n INSTRUCCIONES ORIENTADAS A BYTES 13 7 0 OPCODE d f file register Si d 0 destino es W si d 1 destino es f INSTRUCCIONES ORIENTADAS A BITS 13 9 8 7 0 OPCODE b bit f file register b selecciona el bit del registro f valor de O a 7 INSTRUCCIONES MANEJO DE CONSTANTES 13 8 7 0 OPCODE k literal k es la constante en la instrucci n INSTRUCCIONES CALL Y GOTO 13 11 10 0 OPCODE k literal k es la direcci n inmediata en 11 bits 14 3 MANEJO DE TABLAS Es importante recordar que el microcontrolador 16F84 opera con una arquitectura HARVARD Lo anterior hace que el manejo de tablas sea distinto a procesadores con arquitectura VON NEUMANN en donde la memoria de c digo y datos es compartida y entonces a trav s de direccionamiento indirecto es posible recuperar los datos de la tabla En el caso de la arquitectura Harvard la tabla se encuentra en la memoria de c digo programa y debe entonces de manejarse como parte del programa ejecutable La forma de resolverlo es como se indica en el siguiente ejemplo La tabla forma parte de una subrutina que en este ejemplo lleva predictiblemente la etiqueta TABLA Supongamos que deseamos crear una tabla de 4 datos Y que estos 4 datos son los caracteres ASCII de las letras H O L y A Dentro del programa
54. om subrutine return with literal in w return from interrupt increment f skip if 0 decrement f skip if 0 bit test in f skip if clear bit test in f skip if set EDU PIC 16F84 Punto Flotante S A 2009 17 14 1 OPERANDOS Los operandos pueden asignarse con las letras F W B K D Cada letra tiene el significado siguiente F designa alguna localidad de memoria file register entre 00H y OCH 80H y 8CH de alguno de los dos bancos de los llamados registros especiales o bien alguna de las 68 localidades de memoria RAM ente la OC y la 4F W designa el acumulador del 16F84 B designa alguno de los 8 bits del registro especial o localidad de memoria elegido K designa una constante una direcci n D designa el destino de la operaci n Si D 0 el destino es el registro W Si D 1 entonces el destino es el registro localidad de memoria F Directivas del programa ensamblador Dentro del archivo del programa fuente es decir del programa escrito en lenguaje ensamblador se puede con ayuda de la directiva EQU definir previamente algunos valores para la facilidad de su identificaci n Usualmente algunas de las definiciones son las siguientes W EQU H 0000 PORTA EQU H 0005 F EQU H 0001 PORTB EQU H 0006 STATUS EQU H 0003 TRISA EQU H 0085 RP1 EQU H 0006 TRISB EQU H 0086 RPO EQU H 0005 PCLATH EQU H 000A Estas declaraciones junto con las del resto de los registros as como los bits individuales de cada
55. parecer n durante la instalaci n T tulo de la ventana Usted elige SOFTWARE LICENSE I ACCEPT NEXT SELECT DESTINATION MPLABIDE NEXT SHORTCUTS YES NEXT ADD TO DESKTOP YES NEXT VIEW READ ME FILES NO NEXT Despu s de esta ventana el programa trata de buscar alg n dispositivo de hardware compatible con MPLAB como son programadores y emuladores a trav s del puerto USB para instalar sus drivers Como no es el caso simplemente ignore y cierre todas las ventanas que aparezcan con respecto a estos drivers para USB hasta que aparezcan las siguientes ventanas INSTALATION COMPLETED FINISH EDU PIC 16F84 Punto Flotante S A 2009 20 RESTART SYSTEM OK Aqu la m quina es reiniciada para completar la instalaci n Una vez que se complete el proceso de inicio aparecer autom ticamente en el escritorio un cono de acceso directo de MPLAB IDE MPLAB660 es un programa de desarrollo que integra funciones de edici n ensamblado y simulaci n de programas e incluso puede integrar un compilador de C Una vez que la etapa de desarrollo se ha completado en MPLAB660 los archivos ejecutables HEX generados son usados por otro programa llamado WINPIC para programar la memoria FLASH del procesador 16F84 en la tarjeta EDU PIC a trav s del cable serial de la computadora Para terminar con la instalaci n de programas abra ahora la carpeta WINPIC en donde encontrar el programa comprimido winpicpr zip Abra este archivo y elija la opci n extr
56. rres 33 B 401 Valle Escondido C P 14600 Tlalpan M xico D F 16 4 LISTA DE COMPONENTES EDU PIC 16F84 Punto Flotante S A 2009 26 bolsa antiest tica ensamblado de tarjeta 1 hora M dulo LCD 16 x 1 1 rengl n Referencia Descripcion Tipo Huella Cant P U Subtotal B0 B1 B2 B3 B4 B5 B6 B7 leds anaranjados NARA LUZ 8 C2 Capacitor electrol tico 470 uf CELEG 1 C1 Capacitores Elec 1000 uF CELEG 1 C3 C4 Capacitores Cer 1 nF CAPI 2 C5 Capacitor Elec 10uF CELCH 1 C6 Capacitor Cer 10 nF CAPI 1 C7 C8 C9 Capacitores Cer 22 pF CAPI 3 D1 D2 D3 D4 Diodos 1N4148 DINU 4 J1 Conector DB9 para impreso 500 020 DB9H 1 J2 Conector para eliminador ALIM COCO 1 J3 Conector de tornillos 2X TRT 02 TORA 1 J4 Conector ngulo 8X teclad HEADER 1 J5 Conector 14 pines F 36S CP14 1 L1 led amarillo PROG LUZ 1 L2 led verde PTO LUZ 1 L3 led rojo 5V LUZ 1 L4 led anaranjado RE LUZ 1 R1 R24 resistencias 1 2 w 100K RES 2 R2 resistencia 1 2 w 10K RES 1 R3 resistencia 1 2 w 1 5K RES 1 R5 resistencia 1 2 w 2 2K RES 1 R6 resistencia 1 2 w 15K RES 1 R7 R22 resistencias 1 2 w 5 6K RES 2 R4 R8 a R17 R23 resistencias 1 2 w 1K RES 12 R18 R19 R20 R21 resistencias 1 2 w 47 K RES 4 RL1 relevador RAS 1210 REL 1 RST bot n de reset AU 101 BOT 1 S1 S2 S3 conector jumper 2 pines PUENTE CP3 3 p
57. rry movlw D 200 modificar este valor a 4 para realizar simulaci n movwf J J w jloop movwf K K w kloop decfsz K f K K 1 skip next if zero goto kloop decfsz Jf J J 1 skip next if zero goto jloop goto mloop end Este es un programa cuya funci n es encender uno a uno los leds del puerto B con un patr n de rotaci n Observe cada instrucci n y familiar cese con cada una de las directivas usadas en particular include lt p16f84 inc gt permite incluir dentro del programa y como si fuera parte del mismo al archivo p16f84 inc el cual ya contiene numerosas directivas con equivalencias de los registros y los bits usados por el 16f84 config XT OSC amp WDT OFF amp PWRTE ON permite programar el registro de configuraci n del PIC en la direcci n 2007H En este caso queda programado con el valor 3FF3H J equ H IF permite usar la variable J en lugar del valor hexadecimal asociado a su derecha a trav s de la directiva EQU para facilidad al programar K equ H IE permite usar la variable K en lugar del valor hexadecimal asociado a su derecha a trav s de la directiva EQU para facilidad al programar Una vez con el archivo en la pantalla de su computadora encuentre la l nea en donde se encuentra la instrucci n de carga al registro W que se encuentra con comentarios en letra inclinada Con el objeto de escalar la velocidad de simulaci n que es muy lenta en comparaci n al tiempo real modifique el valor 200
58. rven para seleccionar el modo de operaci n del oscilador CLAVE EN BITS 1 0 TIPO DE OSCILADOR FRECUENCIA DE OPERACION 00 CRISTAL LP 32 KHZ 200 KHZ 01 CRISTAL XT 100 KHZ 4 MHZ 10 CRISTAL HS 4 MEZ 20 MHZ 11 TIPO RC RESISTENCIA CAPACITOR bit 2 sirve para habilitar el WDT watch dog timer Si el valor es de 1 habilita el WDT si es de 0 lo deshabilita bit 3 sirve para habilitar el power up timer PWRT si el bit vale 1 lo deshabilita y si vale 0 lo habilita bits 4 13 sirven para habilitar la protecci n de c digo o deshabilitarla Si los valores de stos bits son de 1 la protecci n queda deshabilitada y si son de 0 entonces la protecci n es habilitada y no puede leerse la memoria de c digo o de programa 12 2 OSCILADOR El circuito 16F84 puede funcionar con un oscilador proveniente de un cristal o bien con oscilador simple proveniente de un arreglo de resistencia capacitor En la tarjeta EDU PIC ya se encuentra instalado el cristal de 4 0 Mhz CRISTAL XT Adem s deben de programarse correctamente los bits del registro de configuraci n de acuerdo a la tabla anotada arriba Recuerde que este registro solo puede modificarse al momento de escribirse el programa fuente ASM 12 3 POWER ON RESET El circuito 16F84 cuenta con un arreglo RC interno independiente del oscilador principal que genera el pulso de reset en el momento que se conecta la energ a a Vdd adem s el pin 4 del 16F84 MC
59. s funciones del microcontrolador En la tabla de abajo se detalla cada registro de estos dos bancos de memoria ubicados en la RAM desde la localidad 00H hasta la OBH y de la 80H a la 8BH El banco se selecciona mediante el bit RPO del registro de STATUS Si RPO 0 se selecciona el banco O y si RPOz 1 entonces se selecciona el banco 1 Muchos de los registros se encuentran repetidos en ambos bancos por lo cual es indistinto leer o escribir sobre ellos desde cualquiera de los 2 bancos La funci n de cada uno de los registro es la siguiente INDF REGISTRO QUE CONTIENE EL DATO LEIDO USANDO DIRECCIONAMIENTO INDIRECTO ver FSR TMRO REGISTRO QUE CONTIENE EL VALOR DEL CONTADOR TEMPORIZADOR 8 BITS OPTION REG REGISTRO QUE PERMITE EL CONTROL DEL CONTADOR TEMPORIZADOR DE LA INTERRUPCION EXTERNA Y DE LAS RESISTENCIAS DE PULL UP DEL PUERTO B PCL PARTE BAJA DEL CONTADOR DEL PROGRAMA 8 BITS STATUS GUARDA EL ESTADO DE LAS BANDERAS C CARRY DC HALF CARRY Z ZERO PD POWER DOWN TO TEMPORIZADOR RPO SELECTOR DE BANCO RP1 NO SE USA RP2 NO SE USA FSR REGISTRO APUNTADOR USADO PARA EL DIRECCIONAMIENTO INDIRECTO DE LA MEMORIA DE DATOS EL DATO UNA VEZ LEIDO SE ALMACENA EN EL REGISTRO INDF PORTA PUERTO A TRISA REGISTRO DE SELECCI N DE BITS DE ENTRADA O SALIDA DEL PUERTO A PORTB PUERTO B TRISB REGISTRO DE SELECCI N DE BITS DE ENTRADA O SALIDA DEL PUERTO B EEDATA ALMACENA EL VALOR LEIDO DE LA EEPROM DE LA LOCALIDAD A DONDE APUNTA
60. trada o salida 1 RA2 Bi Se al de entrada o salida 2 RA3 Bi Se al de entrada o salida 3 RA4 TOCLK1 Bi Sefial de entrada o salida Tambi n puede programarse para ser la entrada de reloj para el registro TMRO 6 RBO INT Bi Sefial de entrada o salida Tambi n puede programarse para funcionar como interrupci n externa 7 RBI Bi Se al de entrada o salida 8 RB2 Bi Se al de entrada o salida 9 RB3 Bi Se al de entrada o salida 10 RB4 Bi Se al de entrada o salida 11 RB5 Bi Se al de entrada o salida 12 RB6 Bi Se al de entrada o salida En modo de programaci n es una entrada de reloj para sincronizar los datos seriales 13 RB7 Bi Se al de entrada o salida En modo de programaci n Es una se al con datos en formato serial 5 Vss 5 V Alimentaci n del circuito 14 Vdd GND _ Tierra del circuito EDU PIC 16F84 Punto Flotante S A 2009 4 Programador de la memoria FLASH La tarjeta EDU PIC cuenta con un programador para la memoria FLASH del circuito 16F84 Este programador usa el est ndar ICSP In Circuit Serial Programmming de Microchip para la transferencia de datos a trav s del puerto serial COMI COM2 de una computadora PC El est ndar ICSP hace uso de las siguientes se ales en el 16F84 las cuales durante el ciclo de programaci n tienen las funciones que se se alan MCLR V dd esta se al es usada como voltaje de programaci n y puede variar entre 13 volts y tierra Normalmente es la se
61. uentes tres jumpers GMJ 2 3 sw microswitches 4P DIP 4P BAS8 1 base para circuito integrado 8 patas 0 T1 T2 T4 Transistores NPN BC337 TR92 3 T3 Transistor PNP BC327 TR92 1 U1 Microcontrolador PIC 16F84A 04P BAS18 1 base para circuito integrado 18 patas 1 U2 Regulador de voltaje 5 V 7805 REG 1 XT Cristal 4 MHz XTAL 1 Z1 Diodo zener 5 6 v Z5V6 DINU 1 Z2 Diodo zener 8 2 v Z8V2 DINU 1 tarjeta circuito impreso EDU PIC 1 fuente eliminador de baterias 300 ma ELI 035 1 DISCO CD disco CD 1 cable cable serial macho hembra DB9 A DB9 1 empaque caja de empaque 1 1 1 1 1 teclado hexadecimal EDU PIC 16F84 Punto Flotante S A 2009 27 16 5 Contenido del disco CD de aplicaci n Los siguientes son los archivos inclu dos en este disco Curso b sico de PICS Documento html debe de ejecutarse con IE6 Curso b sico de PICS carpeta contiene archivos de soporte del archivo del punto 1 Programas de prueba 16F84 carpeta WINPIC carpeta programador para el sistema 16F84 WINZIP carpeta programa para descomprimir archivos ZIP X14 architecture carpeta presentaci n para flash player 6 0 Manual 16F84 documento PDF Watch Dog 16F84 documento PDF Manual PICCLITE compiler documento PDF 10 MPLAB Simulator documento PDF 11 PIC 16F84 EEPROM documento PDF 12 PIC 16F84 instruction set documento PDF 13 PIC Microcontrollers documento PDF 14 PIC Serial programmming ICSP documento PDF 15

Download Pdf Manuals

image

Related Search

Related Contents

Mode d`emploi du Constat amiable  guide de rentrée  CLIMATISEUR  NDOT CDA User`s Manual - Nevada Department of Transportation  No part or assembly which has been subject to accident, alteration  Samsung A+++  Bedienung des Geräts    Roberts Radio CR9946 User's Manual  Workday Employee Self Service User Guide  

Copyright © All rights reserved.
Failed to retrieve file