Home
Manual EVOLUPIC 2009
Contents
1. 20n General 120 Purpose Apost 88 uar Register iai 80 Bytes NN 16Fh 16 Bytes ee 70n 7Fh 17Fh Bank 0 Bank 1 Bank 2 EVOLUPIC 16F628 Punto Flotante S A 2009 8 Los denominados SFR Special Function Registers permiten al programador seleccionar las distintas opciones de las funciones del microcontrolador En seguida se detalla la funci n de cada registro de estos 4 bancos de memoria El banco se selecciona mediante los bits RPO y RP1 del registro de STATUS Algunos de los registros se encuentran repetidos en los bancos Registros en el 16F628 similares al 16F84 INDF TMRO OPTION REG PCL STATUS FSR PORTA TRISA PORTB TRISB EEDATA EECON1 EEADDR EECON2 PCLATH REGISTRO USADO JUNTO CON EL APUNTADOR FSR PARA DIRECCIONAMIENTO INDIRECTO REGISTRO QUE CONTIENE EL VALOR DEL CONTADOR TEMPORIZADOR 8 BITS REGISTRO QUE PERMITE EL CONTROL DEL CONTADOR TEMPORIZADOR 0 DE LA INTERRUPCION EXTERNA Y DE LAS RESISTENCIAS DE PULL UP DEL PUERTO B PARTE BAJA DEL CONTADOR DEL PROGRAMA 8 BITS GUARDA EL ESTADO DE LAS BANDERAS C CARRY DC HALF CARRY Z ZERO PD POWER DOWN TO TEMPORIZADOR RPO SELECTOR DE BANCO RP1 SELECTOR DE BANCO REGISTRO APUNTADOR USADO PARA EL DIRECCIONAMIENTO INDIRECTO DE LA MEMORIA DE DATOS SE USA JUNTO CON INDF PARA LEER O ESCRIBIR SOBRE UNA LOCALIDAD DE MEMORIA PUERTO A REGISTRO DE SELECCI N DE BITS DE ENTRADA O SALIDA
2. ENTRADA OSCILADOR TIMER 1 PGD ENTRADA DE DATOS DE PROGRAMACION ISCP 14 VDD VOLTAJE 5 VOLTS 15 OSC2 CLKOUT RA6 OSC2 ENTRADA OSCILADOR CRISTAL 4 MHZ CLKOUT SI HAY OSCILADOR RC EXTERNO SALIDA DE FRECUENCIA 6 ENTRADA SALIDA BIDIRECCIONAL 16 OSCI CLKIN RA7 OSC2 ENTRADA OSCILADOR CRISTAL 4 MHZ CLKIN ENTRADA OSCILADOR EXTERNO RC RA7 ENTRADA SALIDA PUERTO A 17 RAO ANO RAO ENTRADA SALIDA PUERTO A ANO ENTRADA ANALOGICA 0 18 RAI AN1 1 ENTRADA SALIDA PUERTO A AN1 ENTRADA ANALOGICA 1 4 Programador de la memoria FLASH La tarjeta EVOLUPIC cuenta con un programador para la memoria FLASH del circuito 16F628 Este programador usa el est ndar ICSP In Circuit Serial Programmming de Microchip para la transferencia de datos a trav s del puerto serial COM1 6 2 de una computadora PC El estandar ICSP hace uso de las siguientes sefiales en el 16F628 las cuales durante el ciclo de programaci n tienen las funciones que se se alan MCLR Vpp esta se al es usada como voltaje de programaci n y puede variar entre 13 volts y tierra Normalmente es la se al de RESET general para el 16F628 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 16F628 Cuando se opera el microcontrolador en mod
3. 16F628 RB2 TX RBS 9 10 FIGURA 3 Casi todos los pines tienen varias funciones en la tabla que sigue se describe cada una de ellas Pin Nombre Tipo Funciones 1 RA2 AN2 Vref RA2 ENTRADA SALIDA PUERTO A AN2 ENTRADA ANALOGICA 2 Vref SALIDA VOLTAJE DE REFERENCIA PARA COMPARADOR 2 RA3 AN3 CMP1 RA3 ENTRADA SALIDA PUERTO A AN3 ENTRADA ANALOGICA 3 CMP1 SALIDA DEL COMPARADOR ANALOGICO1 3 RA4 TOCLKI CMP2 RA4 ENTRADA SALIDA PUERTO A SALIDA ES OPEN DRAIN TOCLKI ENTRADA DE RELOJ PARA TIMER 0 CMP2 SALIDA DEL COMPARADOR ANALOGICO2 4 MCLR RAS Vpp MCLR RESET GENERAL AL CONTROLADOR RAS ENTRADA PUERTO Vpp VOLTAJE DE PROGRAMACION ver estandar ISCP 5 VSS TIERRA 6 RBO INT RBO ENTRADA SALIDA PUERTO B INT INTERRUPCION EXTERNA 7 RB1 ENTRADA SALIDA PUERTO B RX PIN DE RECEPCION DE PUERTO SERIAL ASINCRONO 8 RB2 TX RB2 ENTRADA SALIDA PUERTO B TX PIN DE TRASMISION DE PUERTO SERIAL ASINCRONO 9 RB3 CCP1 RB3 ENTRADA SALIDA PUERTO B CCP1 FUNCION CAPTURA COMPARA PWM 10 RB4 PGM RB4 ENTRADA SALIDA PUERTO B PGM SE AL DE PROGRAMACION DE BAJO VOLTAJE EVOLUPIC 16 628 Punto Flotante S A 2009 5 11 5 5 ENTRADA SALIDA PUERTO B 12 RB6 T10SCO T1CLK1 PGC RB6 ENTRADA SALIDA PUERTO B T1OSCO SALIDA DE OSCILADOR DE TIMER 1 PGC ENTRADA DE PROGRAMACION CLOCK ISCP 13 RB7 T1OSC1 PGD ENTRADA SALIDA PUERTO
4. k EVOLUPIC 2009 SISTEMA LISTO FIGURA 16 CONEXI N DEL MODULO LCD 8 BITS SELECCIONA INTERFAZ DE 8 BITS PARA TRANSFERENCIAS DE DATOS RENGLON1 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 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 16F628 PROGRAMAS DE PRUEBA PARA EL LCD existen dos tipos de displays LCD LCD 16 X 2 con dos renglones de 16 caracteres cada uno Se proporcionan los programas de prueba LCD1 LCD2 LCD MENSAJE y LCD 16 X 2 escribe un mensaje y hace scrolling hacia la izquierda la prueba del dispositivo Dichos programas se encuentran en el subdirectorio archivos16F628 EVOLUPIC 16 628 Punto Flotante S A 2009 33 LCD 16 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
5. 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 contenido de PCLATH Es necesario entonces inicializar tambi n el registro PCLATH para que contenga el valor de la p gina en donde se encuentra la tabla que pueden ser los valores 0 126 3 Main movlw 1 sen este ejemplo la tabla se encuentra en la p gina 1 movw f PCLATH carga el n mero de p gina en PCLATH esta zona del programa debe de inicializarse w con el desplazamiento movlw HI sen este ejemplo w 1 call TABLA sen sta l nea regresa la subrutina TABLA con el dato de la tabla w org H 100 origen de la tabla en la p gina 1 100H 1FFH TABLA addwf PCL sta instrucci n suma a PCL el contenido de y carga PCLATH en la parte al del contador del programa relw regresa de la subrutina con el c digo ASCII de la H en w retlw relw retlw 17 Puesta en marcha PASO 1 REVISION DE COMPONENTES Y PRUEBA INICIAL DE LA TARJETA EVOLUPIC Revise por favor que su kit incluya lo siguiente tarjeta EVOLUPIC eliminador de bater as cable serial teclado hexadecimal display LCD y disco CD de aplicaci n Para poder usar el disco de aplicaci n usted necesita una computadora con Windows 98 XP o bien un sistema operativo m s reciente con una unidad lectora de CD y un puerto serial con conector DB9 Posic
6. BSF STATUS RP1 HABILITA EL BANCO 1 BCF INTCON GIE DESHABILITA INTERRUPCIONES BSF EECON1 WREN HABILITA ESCRITURA EN EEPROM MOVLW 55H PREPARA SECUENCIA DE SEGURIDAD EECON2 ESCRIBE PRIMER DATO DE SECUENCIA MOVLW AAH SEGUNDO DATO EVOLUPIC 16 628 Punto Flotante S A 2009 14 MOVWEF EECON2 ESCRIBE SEGUNDO DATO DE SECUENCIA BSF EECON1 WR INICIA CICLO DE ESCRITURA BSF INTCON GIE HABILITA INTERRUPCIONES 14 Funciones especiales 14 IREGISTRO DE CONFIGURACION El 16F628 cuenta con un registro de configuraci n de 14 bits que solamente puede accesarse durante el ciclo de programaci n del chip Su direcci n es la 2007H El valor de los bits del registro de configuraci n controlan la operaci n de diversas funciones especiales la frecuencia del oscilador el WATCH DOG el POWER ON TIMER el MASTER CLEAR el BROWN OUT RESET la programaci n en LOW VOLTAGE PROGRAMMING y la funci n CODE PROTECT para memoria de datos EEPROM y para memoria de c digo La l nea que usualmente se usa como header en los archivos fuente para programar el registro es _config _XT_OSC amp _WDT_OFF amp _PWRTE_ON amp _LVP_OFF amp REGISTRO CONFIGURACION DIRECCION 2007H CPD LVP BOREN MCLRE FOSC2 PWRTE WDTE_ FOSC1 FOSCO Bit 13 Bit 0 14 2 POWER ON TIMER Al seleccionar en el registro de configuraci n la opci n power up timer y con
7. a un costo m nimo EVOLUPIC emplea el procesador 16F628 de Microchip El m dulo integra el hardware y software necesarios para programar el 16F628 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 EVOLUPIC se ofrece en forma de KIT junto con los dispositivos auxiliares de hardware y software necesarios para su inmediata puesta en marcha teclado hexadecimal m dulo LCD eliminador de bater as cable serial y 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 16F628 as como con la herramienta WINPIC para programar el circuito 16F628 desde la PC Le recomendamos ir directamente al cap tulo 17 p gina 21 Puesta en Marcha para tener su sistema operando r pidamente Este manual se acompa a de la especificaci n t cnica y diagramas electr nicos completos del m dulo as como de diagramas 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 EVOLUPIC Puede tambi n enviar sus emails a atencionaclientes puntoflotante net Juan Martinez Punto Flotante S A enero de 2009 2 Descripci n G
8. b bit test in f skip if clear btfss f b bit test in f skip if set CONTROL GROUP clrwdt clear watchdog timer EVOLUPIC 16F628 Punto Flotante S A 2009 19 sleep go into sleep mode nop no operation BRANCH GROUP goto k goto address call k call soubrutine return return from subrutine retlw k return with literal in w retfie return from interrupt incfsz f increment f skip if 0 decfsz f decrement f skip if 0 btfsc f b bit test in f skip if clear btfss f b bit test in f skip if set 15 1 OPERANDOS Los operandos pueden asignarse con las letras F W B K D Cada letra tiene el significado siguiente designa alguna localidad de memoria file register entre OCH 6 80H y 8CH de alguno de los 4 bancos de los llamados registros especiales o bien alguna de las 224 localidades de memoria RAM ente la OC y la 4F W designa el acumulador del 16F628 designa alguno de los 8 bits del registro especial localidad de memoria elegido designa una constante 6 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 6 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 la
9. como ICSP In Circuit Serial Programming que es el est ndar creado por Microchip para la programaci n de sus dispositivos El ICSP usa 3 se ales del 16F628 para su programaci n 5 RB6 y la se al MCLR Los jumpers 51 S2 y S3 conectan a stas 3 se ales al programador cuando su posici n es de PROGRAMAR La tarjeta EVOLUPIC contiene las siguientes funciones y dispositivos en su hardware Microcontrolador 16F628 funcionando con un cristal externo de 4 Mhz 2K bytes de memoria FLASH 128 bytes de EEPROM 224 bytes de RAM Tecnolog a CMOS con muy bajo consumo en funcionamiento normal lt 1 miliampere E 5 volts Arquitectura Harvard con un set de instrucciones RISC de solamente 35 instrucciones Programador del 16F628 integrado a la tarjeta conector DB9 para programaci n desde el puerto COM de una PC Puerto de salida de 8 bits con leds conectados como testigos para facilitar pruebas por parte del usuario Entradas para 4 se ales digitales con microswitches conectados para facilitar las pruebas Un total de 13 bits programables como entradas o salidas Relevador de 127VAC 1A integrado a la tarjeta para la activaci n de dispositivos externos Sensor digital de temperatura DS18B20 integrado al m dulo 3 Temporizadores para la generaci n de retrasos reloj de tiempo real contador de eventos Puerto serial USART para comunicaci n est ndar RS232 con salida de conector DB9 1 Voltaje de referencia de salida y 2 c
10. 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 7 0 7 0 11101110 EE 0 10111110 8 11101101 ED 1 10111101 BD 0 11101011 2 10111011 11100111 E7 10110111 7 11011110 DE 4 01111110 TE 11011101 DD 9 01111101 7 11011011 6 01111011 7 11010111 D7 7 01110111 77 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 archivos16F628 El nombre de estos archivos es teclado1 teclado2 teclado3 teclado4 Lea en cada archivo la funci n que desarrolla La secuencia del 1 al 4 est hecha para 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 EVOLUPIC usando los diagramas de las figuras 1 11 y 15 se conectan las se ales de los renglones y columnas del teclado a los pines nones 1 3 5 7 9 11 13 15 en el HEADER 16X del sistema EVOLUPIC Recuerde que este diagrama est hec
11. de escritura Si vale 1 se habilita y si vale 0 se deshabilita EI 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 RP1 ELIJE EL BANCO 1 DE LOS REGISTROS ESPECIALES MOVLW 1AH PREPARA LA DIRECCI N EEADR ESCRIBE VALOR EN EL REGISTRO EEADR BSF STATUS RPO ELIGE EL BANCO 1 BSF EECON1 RD HABILITA EL 0 RD DEL REGISTRO EECON1 BCF STATUS RPO HABILITA EL BANCO 0 MOVF EEDATA W LEE EL DATO EN EL REGISTRO EEDATA USANDO DIRECCIONAMIENTO INDIRECTO Ahora supongamos que deseamos escribir en la direcci n 2BH el dato 1AH previamente almacenado en W El 16F628 cuenta con un mecanismo para proteger a la EPROM contra escrituras accidentales mediante el cual deben primero escribirse los valores 55H en el registro EECON2 para habilitar el ciclo de escritura ESCRITURA
12. 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 16F628 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 nea en donde ocurri el error para despu s corregirlo en el archivo ASM y volver a repetir el ensamblado PASO 4 CONEXI N DE LA TARJETA A LA COMPUTADORA Por favor identifique las componentes indicadas en la figura 12 para la tarjeta EVOLUPIC en particular el microcontrolador 16F628 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 16F628 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 CABLE SERIAL al
13. el formato fue dise ado para computadoras con localidades de memoria de 8 bits de longitud de tal forma que el n mero total de bytes en el archivo HEX es el doble para el 16F628 que para otros microcontroladores de 8 bits 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 la tercera un 02 6 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 6 16 decimal corresponde a la direcci n n mero 8 del sistema 16F628 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 16F628 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 EVOLUPIC 16F628 Punto Flotante S A 2009 26 Al final de la l nea est un byte
14. 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 IDE es un programa que integra numerosas funciones adicionales a las que se cubre en este manual Desde MPLAB se puede por ejemplo compilar archivos 16F628 en lenguajes de alto nivel En el disco CD que acompa a a EVOLUPIC se incluye el archivo de instalaci n del programa PICCLITE que es un compilador ANSI de para el 16F628 y que es compatible con MPLAB Sin embargo el presente manual no incluye la puesta en marcha de este compilador Se deja al usuario el estudio de dicho lenguaje y su utilizaci n dentro del MPLAB En el subdirectorio archivos16F628 se incluye una carpeta especial para proyectos desarrollados en C 66 Abra desde el escritorio el archivo ejecutable MPLAB IDE Para configurarlo elija la opci n configure select device All elija la opci n 16F628 Ahora se ale la opci n file open y despu s elija el path CAEVOLUPICIPROGRAMAS DE PRUEBA EVOLUPIC 16F628 All elija el archivo demof628 asm El listado del archivo fuente demof628 asm es el siguiente File DEMOF628 ASM Assembly code for PIC16F628 microcontroller Enciende leds del puerto con un patr n de corrimientos Oscilador Cris
15. 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 GND RB6 RAS RB7 RA4 RB5 RA3 RB4 RA2 RB3 RAI RB2 RAO RBI Sv RBO FIGURA 11 15 4 CONECTOR A LCD La tarjeta EVOLUPIC ofrece un conector est 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 del LCD Es importante se alar que las se ales RA1 RA2 y RBO RB7 un total de 10 se ales se encuentran tambi n disponibles en el conector 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 EVOLUPIC FUNCION LCD FUNCION 1 Tierra BE DATOS 2 S volts foma RB2 DATOS SINT Control de Intensidad 008 RB3 DATOS 16 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 operan
16. programador debe primeramente leer los registros de status de las interrupci nes habilitadas para conocer cual est activa en ese momento y efectuar un salto al subprograma correspondiente Para regresar de la subrutina de interrupci n se ejecuta la instrucci n RETFIE la cual habilita autom ticamente el bit de interrupci n global GIE El registro INTCON controla la habilitaci n y deshabilitaci n de algunas interrupciones del sistema Sus bits tiene las funciones que se indican enseguida REGISTRO INTCON DIRECCION 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 16F628 y tomar un valor de 0 si no se activa dicha se al En el registro de OPCION debe programarse si la interrupci n se genera con al flanco ascendente o descendente el BIT2es una bandera que se pone en 1 si el contador del temporizador 0 del circuito sufre un overflow es decir excede su cuenta m xima Y en 0 si dicho contador no excede su cuenta m xima el BIT 3 deber escribirse un valor de 1 para habilitar la interrupci n de los bits RB4 RB7 ver bit 0 y de 0 para deshabilitar dicha interrupci n 1 BIT 4 deber escribirse un valor de 1 par
17. 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 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 20H y 21H 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 EVOLUPIC Por esta raz n es que en el programa cargado en MPLAB en la subrutina de retraso debe de modificarse el valor decimal d
18. 007H equ H 20 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 21 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 Encuentre en el archivo la linea 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 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 demof628 1st y demof628 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 16F628 en este caso en la tarjeta EVOLUPIC FORMATO DEL ARCHIVO HEX El archivo demof628 hex producido en el ejemplo anterior es el siguiente 1000000000306600013086000310860D32309F00FC 0C0010009E009E0B09289F0B0828052865 02400E00F33F7E 00000001 Es importante antes de pasar a explicar el formato del archivo aclarar que la longitud de las instrucciones el 16F628 es de 14 bits es decir que cada localidad de memoria ocupa 2 bytes de almacenamiento en un archivo Originalmente
19. 1 y T2CLKPSO Si estos bits valen 00 PS 1 si valen 01 PS 4 si valen 10 PS 16 ciclo de trabajo en CCPRIL CCP1CON lt 5 4 gt PS 25 En donde CCPRIL CCP1CON lt 5 4 gt es un valor de 10 bits con CCPIL aportando los 8 bits m s significativos CCP1CON lt 5 4 gt los dos bits menos significativos Dicho valor debe ser convertido a decimal para ingresarlo en la f rmula 12 Interrupciones del sistema El chip 16F628 cuenta con m ltiples fuentes de interrupci n asociadas a la ocurrencia de alguno de los siguientes eventos y que permiten implementar un software del tipo multitareas en su aplicaci n interrupci n externa en el pin RBO INT del chip con flanco ascendente o descendente overflow el temporizador 0 el temporizador 1 6 el temporizador 2 Cuando el USART el registro de recepci n est lleno o el de trasmisi n vac o Cualquier cambio de nivel en los pines RB4 RB7 Cuando se ha completado la escritura de un dato en la EEPROM Interrupci n del m dulo CCP CAPTURA COMPARA PWM Interrupci n del m dulo comparador Interrupci n generada el ciclo de escritura 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 habilitada el programa efectuar autom ticamente un llamado a subrutina en esa direcci n En esta subrutina de atenci n a interrupciones el
20. AMBIEN PUEDE USARSE PARA LA GENERACION DE PWM REGISTRO DE CONTROL DEL TEMPORIZADOR 2 REGISTRO PARA CONTROL DEL PERIODO DEL TEMPORIZADOR 2 REGISTRO PARA EL MODULO CCP CAPTURA COMPARA PWM PARTE BAJA REGISTRO PARA EL MODULO CCP CAPTURA COMPARA PWM PARTE ALTA REGISTRO DE CONTROL PARA EL MODULO CCP CAPTURA COMPARA PWM REGISTRO DE RECEPCION DEL USART REGISTRO DE STATUS DE RECEPCION DEL USART REGISTRO DE TRASMISION DEL USART REGISTRO DE STATUS DE TRASMISION DEL USART REGISTRO PARA GENERACION DEL BAUD RATE DEL USART LOS BITS DEL PUERTO A ESTAN MULTIPLEXADOS CON EL COMPARADOR Y LAS FUNCIONES DEL VOLTAJE DE REFERENCIA LOS REGISTROS CMCON COMPARATOR CONTROL Y VRCON VOLTAGE REFERENCE CONTROL SE USAN PARA SELECCIONAR ESTAS FUNCIONES NOTA IMPORTANTE EN ESTE MANUAL SOLO SE DESCRIBEN CON DETALLE LOS REGISTROS CON LETRAS RESALTADAS FAVOR DE USAR COMO REFERENCIA EL 16F628 DATA SHEET PARA LA INFORMACION DEL RESTO DE LOS REGISTROS EVOLUPIC 16F628 Punto Flotante S A 2009 8 1 Registros PCL y PCLATH En general estos registros son manipulados nicamente cuando se emplean tablas de datos Look Up Tables PCLATH 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 accesado por las instrucciones MOVWF 6 ADDWF Su ejecuci n mo
21. DEL PUERTO A PUERTO B REGISTRO DE SELECCI N DE BITS DE ENTRADA O SALIDA DEL PUERTO B ALMACENA EL VALOR LEIDO DE LA EEPROM DE LA LOCALIDAD A DONDE APUNTA EEADDR REGISTRO DE CONTROL HABILITA LECTURA Y ESCRITURA DE EEPROM APUNTADOR QUE ALMACENA LA DIRECCI N QUE HABRA DE LEERSE EN LA EEPROM REGISTRO DE CONTROL DE ESCRITURA PROTEJE CONTRA ALTERACIONES INDESEADAS DEL CONTENIDO DE LA EEPROM PARTE ALTA DEL CONTADOR DEL PROGRAMA 3 BITS QUE JUNTO CON LOS 8 BITS DEL PCL FORMAN LA DIRECCION COMPLETA CON LA CUAL CUAL PUEDEN DIRECCIONARSE 2048 LOCALIDADES DE LA 0000H A LA 07FFH PCLATH PUEDE TAMBIEN VERSE COMO EL REGISTRO QUE CONTIENE EL NUMERO 0 7 DE LA PAGINA DE 256 BYTES EN DONDE HABRA DE DIRECCIONARSE LA MEMORIA Registros nuevos en el circuito 16F628 PIR1 PIE1 PCON TMRIL TMR2 T2CON PR2 CCPRIL RCSTA TXREG TXSTA SPBRG CMCON VRCON PERIPHERAL INTERRUPT REGISTER REGISTRO DE CONTROL DE INTERRUPCIONES DEL USART EL CCPR1 TEMPORIZADOR1 TEMPORIZADOR2 Y EEPROM PERIPHERAL INTERRUPT ENABLE REGISTER REGISTRO DE HABILITACION DE INTERRUPCIONES DEL USART EL CCPR1 EL TEMPORIZADOR 1 Y LA EEPROM REGISTRO DE BANDERAS STATUS PARA CONOCER LA FRECUENCIA DE OPERACION Y EL MODO DE RESET DEL CONTROLADOR POWER ON TIMER BROWN OUT RESET TEMPORIZADOR 1 PARTE BAJA TEMPORIZADOR 1 PARTE ALTA REGISTRO DE CONTROL DEL TEMPORIZADOR 1 REGISTRO TEMPORIZADOR 2 T
22. EN OFF USO DEL PUERTO SERIAL RS232 NO SE DEBE USAR EL TECLADO CABLE SERIAL EN CONECTOR COM 54 55 EN POSICION USAR RS232 RECORDAR QUE LAS SE ALES RB1 Y RB2 SE USAN EN ESTE CASO COMO TRASMISION Y RECEPCION TECLADO Y LCD UTILIZADOS SIMULTANEAMENTE PUEDE HACERSE SIN PROBLEMA PERO RECORDAR QUE SW1 SW2 DEBERAN ESTAR EN OFF Y 54 55 EN POSICION CERCANA AL 16F628 18 3 DIAGRAMA ELECTRONICO EVOLUPIC 16 628 Punto Flotante S A 2009 U4 5100 RAO ANO RAI ANI RAZ AN2 Vref RAS MCLRMV pp RB3 0CP1 RBAPGM RB4 RBS RB6 PIC16F628 BOTON HEADER CORRER RBO RBI RB2 RBS RBS RBS RB Coen VIN VOUT VOLTA GND Evolupic 2009 1 an 19 0 Shet of C Program Files ProCom Procopw Ddb Drawn By Raul Rosales EVOLUPIC 16F628 Punto Flotante S A 2009 22002000 a ee ree Oe Rot RBS NO O O JO Un UN gt _ TO FW 29 18 4 LISTA DE COMPONENTES EVOLUPIC 16 628 Referencia BO a B7 Cl a C4 C5 C8 C6 C7 C9 C10 Cll C12 C13 C14 D1 a D5 J1 J3 J2 nones J2 pares J4 J5 J6 L1 12 14 51 55 jumpers Rla R4 R5 R8 a R17 R6 R20 R7 R18 R19 R21 R22 R23 RST SW T1 T3 T4 T2 U1 U2 U3 U4 XT Z1 Z2 para U1 gt
23. Indice NS 12 Programaci n de la EEPROM 14 15 16 17 EVOLUPIC M dulo 16F628 Manual del Usuario Introducci n Descripci n general Definici n de los pines en el 16F628 Programador de la memoria FLASH El ciclo de m quina del 16F628 Arquitectura del microcontrolador 16F628 Memoria Registros especiales SFR 8 1 Registros PCL y PCLATH 8 2 Registro de Status 8 3 Registro de Opci n Registro temporizador contador TMRO 10 11 El puerto serial sincrono asincrono USART PWM Pulse Wide Modulation 11 1 Aplicaciones de PWM 11 2 Ciclo de trabajo Duty Cycle Interrupciones del Sistema Funciones especiales 14 1 Registro de configuraci n 14 2 Power on timer 14 3 Brown out Reset 14 4 Watch Dog Timer 14 5 SLEEP 14 6 Code protect Puertos digitales 15 1 Leds y microswitches 15 2 Relevador 15 3 Header 16x conector a teclado 4 x 4 13 4 Conector a LCD El set de instrucciones 16 1 Operandos 16 2 Formato de las instrucciones 16 3 Manejo de tablas Puesta en marcha 18 Informaci n T cnica 18 1 Caracter sticas generales 18 2 Lay out 18 3 Diagrama electr nico 18 4 Lista de componentes 18 5 Contenido del disco CD Ap ndice 1 Proyectos Teclado matricial LCD y Real Time Clock EVOLUPIC 16F628 Punto Flotante S A 2009 O amp 1 Introducci n La filosof a de dise o de este m dulo se centr en maximizar el n mero de funciones disponibles al usuario
24. 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 archivos16F628 CONEXI N DEL LCD AL SISTEMA EVOLUPIC tome como auxiliares a los diagramas de las figuras 13 y 17 NOTA IMPORTANTE Las se ales de control correspondientes a RAI y RA2 est n compartidas por el puerto del LCD y los microswitches 1 y 2 Entonces es muy importante que al operar el LCD los SWITCHES 1 y 2 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 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 a
25. a comprensi n EJEMPLO3 BTFSS STATUS RP1 BTFSS Resultado Bit Test F Skip if Set Si el bit 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 El resultado 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 Resultado Decrementa la localidad 2AH el resultado lo pone en el registro 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 EJEMPLO8 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 16 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 Instru
26. a 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 0 para deshabilitar dicha interrupci n Enel BIT 6 deber escribirse un valor de 1 para habilitar la interrupci n escritura de un dato en la EEPROM completado y un valor de 0 para deshabilitar dicha interrupci n El bit 4 del registro es la bandera correspondiente que maneja la interrupci n y se pone en un valor de 1 cuando est activa EVOLUPIC 16F628 Punto Flotante S A 2009 13 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 0 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 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 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
27. a 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 activaci n del WDT debe de hacerse desde el registro de configuraci n La direcci n del registro es la 2007H Debe recordarse que el registro de configuraci n no puede accesarse desde el programa ejecutable del microcontrolador sino directamente debe programarse en el programa fuente ver ejemplo en 13 1 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 O 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 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 d
28. ap tulo siguiente Debe de tomarse en cuenta que si el procesador se encuentra en el modo SLEEP entonces la interrupci n TMRO no activar al procesador ya que es deshabilitada durante ese modo 10 El puerto serial s ncrono as ncrono USART El USART Universal Syncronous Asyncronous Receiver Transmitter es un puerto serial que se puede comfigurar en modo as ncrono full d plex bien s ncrono en modo half d plex pudiendo operar como MASTER o como SLAVE Los registros que intervienen en su operaci n son TXSTA RCSTA TXREG RCREG y SPBRG TXSTA es un registro de status para programar el formato y leer banderas de la se al de trasmisi n RCSTA es un registro de status para programar el formato y leer banderas de la se al de recepci n TXREG es el registro de trasmisi n All se carga el dato que habr de trasmitirse RCREG es el registro de recepci n All se carga el dato recibido para ser le do por el CPU SPRBG es el registro de Baud Rate All se carga un dato de 0 255 que define la velocidad de trasmisi n recepci n TXSTA D7 CSRC TX9 TXEN SYNC BRGH TRMT TX9D TX9D solo se usa cuando se selecciona formato de 9 bits es el noveno bit de la palabra trasmitida es el bit de status del registro de trasmisi n 1 registro vac o O registro BRGH bit de selecci n de velocidad de baud rate en modo 1 alta velocidad O baja velocida
29. be 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 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 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 la derecha de la instrucci n alguno de los c digos ASCII de la H O L 6 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
30. cceso directo de MPLAB IDE EVOLUPIC 16 628 Punto Flotante S A 2009 23 MPLAB810 es un programa de desarrollo que integra funciones de edici n ensamblado y simulaci n de programas e incluso puede integrar un compilador de Una vez que la etapa de desarrollo se ha completado MPLAB810 los archivos ejecutables HEX generados son usados por otro programa llamado WINPIC para programar la memoria FLASH del procesador 16F628 en la tarjeta EVOLUPIC 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 extract 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 EVOLUPIC ARCHIVOS EVOLUPIC 16F628 Estos archivos traen esa protecci n debido a que fueron copiados directamente del CD de solo lectura Abra el subdirectorio y observe los archivos all contenidos Ahora quite la protecci n de solo lectura en los archivos mediante el siguiente proce
31. cciones 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 programa 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 16 3 MANEJO DE TABLAS Es importante recordar que el microcontrolador 16F628 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 EVOLUPIC 16 628 Punto Flotante S A 2009 21 compartida y entonces trav s de direccionamiento indirecto es posible recuperar los datos de la tabla En el caso de la arquitectura Harvard la tabla est en la memoria de c digo y de
32. cias de PULL UP en las entradas del puerto 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 temporizador 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 c
33. con la instrucci n 5 llamada por la subrutina TOY TCY4 TOYS 1 MOVLW 65h 2 MOWWE PORTE 3 CALL SUB_ Execute2 Fetch 4 BSF PORTA BITS Forced NOP Fetch Flush Fetch SUB 1 5 1 FetchSUB_1 1 Instruction address SUB_1 FIGURA 5 El microcontrolador 16F628 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 11 bits y que direcciona a la siguiente localidad de memoria de c digo que habr de leerse y ejecutarse Tambi n existe una PILA 6 STACK que se usa para el manejo de las instrucciones de GOTO 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 En el siguiente diagrama se muestran los dos tipos de arquitectura usados en computadoras la arquitectura Harvard y la Von Neumann Harvard von Neumann NA 2 aes 4 a PU TE 4 E FIGURA 6 7 Memoria EVOLUPIC 16F628 Punto Flotante S A 2009 7 La arquitectura HARVARD permite el uso de dos buses de datos separados para la memor
34. conector con el letrero PROG El conector DB9 del lado opuesto del cable serial debe de conectarse al 6 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 16F628A y luego seleccione oscillator XT XTAL code protection off power up timer disabled y watch dog enable JDM programmer on port COM1 disabled En la solapa interface interface type 297 Observe que la tarjeta existen 5 jumpers Ponga 51 52 y S3 en posici n de PROGRAMAR Los jumpers 54 y S5 deben estar en su posici n m s cercana al chip 16F628 EVOLUPIC 16 628 Punto Flotante S A 2009 24 Nota los jumpers 51 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 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 se ales RB6 y RB7 as como MCLR quedan completamente desconectadas de los circuitos del programador de la tarjeta ver diagra
35. d SYNC modo de trasmisi n del USART 1 modo s ncrono 0 modo as ncrono TXEN bit de habilitaci n de trasmisi n 1 trasmisi n habilitada O trasmisi n deshabilitada 9 bit de selecci n de formato 1 formato de 9 bits O formato de 8 bits se usa solo en modo s ncrono Selecciona la fuente de la se al de reloj 1 reloj generado internamente modo MASTER O reloj generado en forma externa modo SLAVE RCSTA SPEN RX9 SREN CREN ADEN FERR OERR RX9D RX9D solo se usa cuando se selecciona formato de 9 bits es el noveno bit de la palabra recibida OERR bandera de error de overrun ocurri un error de overrun 0 hay error de overrun FERR bander ade error de formato 1 un error de formato hay error de formato para habilitar la detecci n de direcci n en redes de comunicaci n con varios dispositivos Solo se usa en modo as ncrono y con formato de 9 bits 1 detecci n de direcci n habilitada O detecci n deshabilitada CREN bit de habilitaci n de recepci n continua 1 habilita recepci n continua O deshabilita recepci n continua SREN SINGLE RECEIVE ENABLE BIT solo se usa en modo s ncrono MASTER 1 habilita modo de recepci n O deshabilita RX9 bit de selecci n de formato de recepci n 1 selecciona formato de 9 bits O seleccionaformato de 8 bits SPEN configura los bits RB1 y RB2 en el circuito 16F628 para funcionar como se ale
36. 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 se ales de los puertos est n disponibles en en conector header de 14x para su conexi n a interfaces externas 5 47k RBO RB7 RAI RA2 1k RA3 RA4 L3 L10 SW4 Swi FIGURA 8 DIAGRAMA DE LOS LEDS Y LOS MICROSWITCHES 15 2 RELEVADOR Mediante el manejo del bit RAO del puerto A el procesador 16F628 puede activar un relevador integrado en la tarjeta EVOLUPIC Los datos nominales de este relevador son un polo un tiro activaci n con 12 volts DC y contactos de 127 VCA 10 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 CONECTOR DE TORNILLOS FIGURA 9 CONEXI N DEL RELEVADOR relevador auxiliar EVOLUPIC 16F628 Punto Flotante S A 2009 17 FIGURA 10 CONEXI N DE UN RELEVADOR AUXILIAR 15 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
37. dicional entonces la hora pasa autom ticamente a 00 00 00 Dado que el sistema descrito funciona por interrupciones es posible a adir 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 EVOLUPIC 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 quickbuild y despu s desde WINPIC vuelva a cargar el programa en EVOLUPIC EVOLUPIC 16F628 Punto Flotante S A 2009 34 y e EVOLUPIC 16F628 Punto Flotante S A 2009
38. difica 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 8 2 Registro de Status REGISTRO STATUS DIRECCION 03H IRP RP1 RPO TO PD Z DC Bit 7 Bit 0 105 bits 0 1 y 2 son el CARRY HALF CARRY Y ZERO son banderas que se activan con un valor igual 1 cuando el resultado de una operaci n o instrucci n genera un carry un half carry o un valor igual a cero respectivamente bit 3 se llama POWER DOWN y su valor es de 1 despu s de una instrucci n CLRWDT CLEAR WATCH DOG 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 105 bits 5 y 6 RPO seleccionan el banco de memoria que habr de accesarse Si RPO 0 RP1 0 se selecciona el banco 0 Si RPO 1 RP1 0 banco 1 RPO 0 RP1 1 banco 2 RPO 1 RP1 1 banco 3 8 3 Registro OPTION Este registro controla varias funciones del temporizador bits 0 5 de la interrupci n externa bit 6 a
39. dimiento con la carpeta archivos16F628 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 archivos16F628 son programas de prueba para los diferentes dispositivos de la tarjeta EVOLUPIC Los nombres son los siguientes contador628 demof628 inter628 y programas de prueba para el LCD y el teclado Existe una carpeta especial para una aplicaci n de chapa electr nica y otra de puerto serial Terminaci n que son los archivos fuente Estos archivos son de texto y est n escritos en lenguaje ensamblador para el microcontrolador 16F628 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 EVOLUPIC a trav s del programa WINPIC Existe tambi n un archivo de nombre P16F628 inc
40. dor 16F628 El PIC16F628 pertenece al tipo de procesadores con arquitectura Harvard es decir la memoria de datos y de c digo est n separadas El microcontrolador cuenta con los siguientes elementos memoria de programa de 2K del tipo FLASH programable y borrable el ctricamente 128 bytes de memoria EEPROM para el almacenamiento de par metros direcciones 6 claves seg n la aplicaci n 224 bytes de RAM dos puertos de entrada salida el puerto A con 8 se ales y el B con 8 se ales en total 16 se ales de entrada salida Adicionalmente el microcontrolador cuenta con 3 temporizadores Gracias a un set de instrucciones RISC Reduced Instruction Set Computer el CPU procesa solo 33 instrucciones Todas las instrucciones tienen una longitud de palabra de 14 bits y se ejecutan en un ciclo de instrucci n con excepci n de las instrucciones que modifican el contenido del contador del programa JUMP BRANCH CALL RETURN RETFIE RETLW 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 de ejemplo con un sistema tipo pipeline Obs rvese que en todos los ciclos de reloj se hace el fecth y execute simult neamente con excepci n del ciclo TCY4 en donde se deshecha flush la instrucci n n mero 4 y se contin a
41. dos 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 ejecutan 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 para el ejemplo a 4 Mhz El grupo de 35 instrucciones es el siguiente MOVE GROUP movf move f movwf f move w tof EVOLUPIC 16F628 Punto Flotante S A 2009 18 movlw k move literal to w clrf f clear f clrw clear w swapf f d swap nibbles in f ARITHMETIC GROUP addwf add w and f addlw k add literal to w subwf substract from f sublw k substract w from literal indf increment f incfsz f increment f skip if 0 decf decrement f decfsz f decrement f skip if 0 LOGIC GROUP andwf w f andlw k and literal to w iorwf f d inclusive or w and f iorlw k inclusive or literal to w xorwf f d exclusive or w and f xorlw k exclusive or literal to w comf f d complement f rif f d rotate left f through carry rf f d rotate right f through carry BIT GROUP bef f b bit clear in f bsf f b bit set inf btfsc f
42. e 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 EVOLUPIC a trav s del programa WINPIC seg n se explic en los pasos anteriores 18 Informaci n t cnica 18 1 CARACTERISTICAS GENERALES Procesador microcontrolador PIC16F628 cristal de 4 Mhz con tecnolog a CMOS de bajo consumo 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 2K localidades 14 bits de FLASH 224 localidades 8 bits de RAM 128 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 de 8 bits un total de 13 bits programables como entradas o como salidas Resistencias de pul
43. e 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 16F628 el programa se sale de su Operaci n normal y por consecuencia la instrucci n CLRWDT no se ejecuta entonces al llegar a un m ximo la cuenta en el WDT TIMEOUT el circuito genera autom ticamente un RESET que reinicia la operaci n del 16F628 EVOLUPIC 16 628 Punto Flotante S A 2009 15 14 5 SLEEP El 16F628 cuenta con una funci n que le permite operar en un modo de muy bajo consumo ejemplo 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 6 bien un reset el pin MCLR del 16F628 puede restaurar la operaci n normal del circuito Antes de entrar al estado de SLEEP debe de inhibirse la operaci
44. e 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 16F628 EVOLUPIC 16F628 Punto Flotante S A 2009 27 18 2 LAY OUT lt u3 05 io w USAR 25232 L4 c10 gt 1 less ES 51 H 52 53 min Je va 98 48 za FIGURA 13 TABLA PARA LA CONEXI N DEL CABLE SERIAL MICROSWITCHES Y EL SENSOR DE TEMPERATURA Y LA CONFIGURACION DE LOS JUMPERS LOS APLICACION INSTRUCCIONES PROGRAMAR LA MEMORIA FLASH DE EVOLUPIC CABLE SERIAL EN CONECTOR PROG S1 52 53 EN POSICION DE PROG S4 S5 EN POSICION MAS CERCANA AL 16F628 SENSOR DS18B20 EN SU BASE O FUERA DE ELLA MICROSWITCHES EN CUALQUIER POSICION CUALQUIER APLICACI N DISTINTA A PROGRAMAR S1 52 53 EN POSICION DE AUTORUN MOSTRAR TEXTO EN EL LCD MICROSWITCHES SW1 SW2 EN POSICION OFF S4 S5 EN POSICION MAS CERCANA AL 16F628 SENSOR DS18B20 EN SU BASE O FUERA DE ELLA APLICACION USANDO EL SENSOR DS18B20 Y EL LCD MICROSWITCHES SW1 SW2 SW3 EN POSICION OFF S4 S5 EN POSICION MAS CERCANA AL 16F628 SENSOR DS18B20 EN SU BASE LECTURA DE LOS MICROSWITCHES RECORDAR QUE SI SE USA EL LCD SW1 Y SW2 DEBERAN ESTAR EN OFF Y SI SE USA EL DS18B20 SW3 DEBERA ESTAR
45. el objeto de permitir la estabilizaci n del voltaje de alimentaci n 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 2048 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 14 3 BROWN OUT RESET El 16F628 integra un novedoso circuito de protecci n autom tico el cual genera un RESET al detectar picos de voltaje en la fuente de alimentaci n Vdd de 5v Estos picos son generalmente inducidos a trav s del eliminador de bater as por efecto de variaciones bruscas del voltaje de alimentaci n 127 VCA bien por ruido inducido a trav s de los cables que conectan las entradas y salidas digitales del microcontrolador cuando stas no se encuentran adecuadamente aisladas a sensores o actuadores remotos La funci n es especialmente til en ambientes industriales y garantiza la operaci n continua del microcontrolador Para activar esta funci n especial se usa el comando El bit 0 BOR del registro especial PCON es una bandera que indica O ocurri un reset BROWN OUT RESET y 1 ocurri un BOR 14 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 16F628 se salga de operaci n por algun
46. eneral El sistema EVOLUPIC fue dise ado para su uso en una amplia gama de aplicaciones como kit para el aprendizaje del microcontrolador 16F628 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 sistemas de seguridad El diagrama general de la tarjeta EVOLUPIC se muestra en la siguiente figura CONECTOR LCD lige eae 16 15 BO oo HEADER 16X 000000001 sensor de temperatura TECLADO 4X4 CONTACTOS XTAL4 MHZ 85 RELEVADOR go EVOLUPIC 16 628 N 24 24 lt N PROGRAMACION DB9 ELIMINADOR PUERTO SERIAL RS 232 FIGURA 1 EVOLUPIC 16F628 Punto Flotante S A 2009 3 Se hace uso de la versi n de 18 pines del microcontrolador 16F628 con encapsulado dual in line el cual contiene 2048 bytes de memoria FLASH 224 bytes de RAM y 128 bytes de y El dise o 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 16F628 que est dise ado con base en 4 transistores capacitores y diodos y el microcontrolador 16F628 con sus diversas opciones conectados a sus puertos El programador es controlado por se ales desde el puerto serial desde la computadora PC mediante el esquema conocido
47. es 8 pines 14 LUZ LUZ LUZ LUZ CP3 RES RES RES RES RES RES RES REL BOT BAS8 TR92 TR92 BAS18 BAS16 REG TR92 XTAL DINU DINU 30 50 bolsa Bolsa antiest tica 1 51 caja de empaque 1 18 5 Contenido del disco CD de aplicaci n Curso b sico de PICS Documento html debe de ejecutarse con IE6 Curso b sico de PICS carpeta archivos de soporte Programas de prueba EVOLUPIC 16F628 carpeta Programas de prueba EDUPIC 16F84 carpeta WINPIC carpeta programador para el sistema 16F628 ICPROG carpeta programador para el sistema 16F628 WINZIP carpeta programa para descomprimir archivos ZIP X14 architecture carpeta presentaci n para flash player 6 0 Carpeta DATASHEETS manuales de programas y dispositivos 10 EVOLUPIC APLICACIONES 2009 documento WORD 11 EVOLUPIC SPEC 2009 documento WORD 12 EVOLUPIC KIT 2009 documento PPT 13 EVOLUPIC Manual 2009 V 1 documento PDF 14 MPLAB IDE 6 60 archivo ZIP debe descomprimirse e instalarse 15 MPLAB IDE 8 10 archivo ZIP descomprimirse e instalarse 16 PICCLITE Setup ANSI C Compiler archivo de instalaci n 17 AdBdRdr 60 archivo ajecutable de instalaci n del Adobe Reader 18 Pk Reader archivo ejecutable de instalaci n 19 FOR THE PIC 10 12 16 Compilador Programa de instalaci n 20 SDCC COMPILER Carpeta Compilador C Open Source 21 Universal Toolsuite 1 27 patch para integrar HITECH a MPLAB 22 Control de Mo
48. es de la interfaz y 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 EVOLUPIC este voltaje ya viene preajustado con un divisor de resistencias formado por R26 y R25 de 2K 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 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 la tabla Para mandar el comando se escribe su c digo los 8 bits DBO DB7 y se le da un pulso EVOLUPIC 16 628 Punto Flotante S A 2009 32 BAJO la se al EN Esta se al debe estar NORMALMENTE ALTA y pueden manejar pulsos de 50 ms Es importante esperar a que los datos est n estables antes de aplicar el pulso FUNCION 5 A A A EXT 9 2
49. 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 PUERTO PIN EN HEADER 16x FUNCION PUERTO A RAO PIN 1 ACTIVA DESACTIVA RELEVADOR 1 3 MICROSWITCH 1 CONTROL LCD RA2 PIN 5 MICROSWITCH A2 CONTROL LCD RA3 PIN 7 MICROSWITCH A3 SENSOR DE TEMPERATURA RA4 PIN 9 MICROSWITCH A4 PUERTO B RBO PIN 2 LED 0 TECLADO PIN 4 LED B1 TECLADO Y2 RECEPCION SERIAL RX RB2 PIN 6 LED B2 TECLADO Y3 TRASMISION SERIAL TX RB3 PIN 8 LED B3 TECLADO Y4 RB4 PIN 10 LED B4 TECLADO 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 5 PROGRAMA LA DIRECCI N DE LOS BITS PUERTOB BSF STATUS RPO ELIGE EL BANCO DE REGISTRO ESPECIALES 1 MOVLW 0x00 RBO RB7 SALIDAS 5 I15 ILEDS Y MICROSWITCHES EVOLUPIC 16F628 Punto Flotante S A 2009 16 Una vez inicializados los puertos de la forma mostrada se puede desde el programa escribirse los LEDS o leer desde los microswitches considerando los
50. ho 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 El LCD puede tambi n emplearse para 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 la distribuci n de se al
51. ia 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 2048 localidades de 14 bits con direcciones de la OOOH la 7FFH 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 0 y despu s de la ocurrencia de una interrupci n que se encuentre habilitada el contador del programa apuntar a la direcci n 4 La memoria de datos es de 8 bits e incluye 224 localidades de RAM y 128 localidades de EEPROM con capacidad de programar y borrar hasta 10 millones de veces La memoria de datos RAM est organizada en 4 bancos y se encuentra debajo de los registros especiales SFR del 16F628 Las direcciones disponibles de RAM son BANCO 0 20H A 7FH 96 bytes BANCO 1 AOH a EFH 80 bytes y BANCO 2 120H a 14FH 48 bytes Las localidades pueden ser accesadas con direccionamiento directo o indirecto 8 Registros especiales SFR indirect addr con Indirect ada 1004 om 1min can 102 on 103 on FSA 19 cn E 106n a e o 107 _ fx FF CAN 10An cen 108n och soon cen J E to om 000 om ma A om ee en tan 18 EEADR
52. ione el selector de voltaje del eliminador de bater as a 7 5 volts y con ctelo a su tarjeta EVOLUPIC 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 EVOLUPIC S1 52 53 deben de estar la posici n AUTORUN 54 y 55 deben estar en la posici n m s cercana al circuito 16F628 Los SWITCHES 1 y 2 deben de estar en OFF ABIERTOS Una vez alimentada la tarjeta el programa cargado de f brica en la memoria FLASH del 16F628 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 EVOLUPIC 16 628 Punto Flotante S A 2009 22 CONECTOR LCD 16 15 BO 0 HEADER 16X 00606660 Pl ensor de temperatura TECLADO 4X4 CONTACTOS XTAL4 MHZ S5 Q RELEVADOR 2 gt O EVOLUPIC 822 16F628 PROGRAMACION MAX 232 ELIMINADOR DB9 PUERTO SERIAL RS 232 FIGURA 12 PASO 2 INSTALACION DE LOS PROGRAMAS DEL DISCO DE SOPORTE Genere una carpeta denominada EVOLUPIC en el escritorio de su PC Ahora inserte su disco de soporte EVOLUPIC 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 EVOLUPIC Hay dos archivos comp
53. l 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 matricial de 4 x 4 Conector para LCD de 14 contactos est ndar y listo para la conexi n de un LCD u otras interfaces Puerto serial USART compatible RS232 con su propio puerto DB9 Funciones adicionales power on reset temporizador watch dog code protection sleep bajo consumo Temporizadores contador de eventos 3 temporizadores Un generador de PWM Interrupciones numerosas 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 Por escritura completa en la EEPROM Del USART Dimensiones 10 cms x 10 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 O 6 67 5 v Programador del chip 16 628 integrado en la tarjeta la programaci n s
54. ma 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 CAEVOLUPICIARCHIVOS EVOLUPIC 16F628 All elija el archivo contador628 hex El archivo llena los datos en el buffer de WINPIC y al mismo tiempo se transfiere a la memoria FLASH del 16F628 en la tarjeta EVOLUPIC 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 EVOLUPIC Seleccione la opci n device reset disconnect 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 demof628 hex corrimiento de los leds inter628 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 EVOLUPIC puede ser ahora ejecutado en modo autorun Para esto desconecte el cable serial de la tarjeta y mueva los jumpers 51 52 S3
55. n del WDT para evitar que ste reactive al circuito a trav s de su reset autom tico 14 6 CODE PROTECT El microcontrolador 16F628 cuenta con esta 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 a adir en la l nea de configuraci n el comando Sin embargo debe de tenerse cuidado de no manipular indebidamente este bit 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 Si desea proteger nicamente los datos de la memoria EEPROM entonces se usa el comando _CPD_ON_ 15 Puertos digitales El sistema 16F628 cuenta con dos puertos digitales el puerto A con 8 bits y el puerto B con 8 bits disponibles Ambos puertos son bidireccionales sto es pueden programarse como entradas o como salidas de acuerdo a los 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 EVOLUPIC 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
56. o de programaci n 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 El hardware de este programador opera junto con el software denominado WINPIC mediante el cual es posible transferir y programar archivos desde el puerto serial de una computadora PC hacia la memoria FLASH del microcontrolador y 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 El ciclo de m quina del 16F628 El 16F628 puede funcionar con un oscilador interno a 4 tolerancia de 1 6 a 48 khz Pero tambi n puede usarse un cristal externo para aplicaciones que requieran una base de tiempo precisa En el caso de la tarjeta EVOLUPIC un cristal externo de 4 se encuentra ya instalado El oscilador principal es dividido entre 4 para formar los pulsos Q1 Q2 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 para cada ciclo de m quina 2 193 194 101 192 193 04 191 102103164 mal mal mA 5 Mm he Ed Bost A 232 FIGURA 4 EVOLUPIC 16F628 Punto Flotante S A 2009 6 Arquitectura del microcontrola
57. omparadores anal gicos para implementar funciones de conversi n A D 1 salida especial para generar PWM pulse wide modulation con 10 bits de resoluci n Conector de 14 pines para conexi n a display LCD de 16 x 1 6 16 x 2 Conector de 8 pines para teclado matricial de 16 teclas Conector Header de 16x para a interfaces aplicaciones externas Circuito vigilante Watch Dog programable para evitar que el microcontrolador se salga de operaci n Circuito de protecci n Brown Out Reset el cual genera un reset autom tico al detectar picos en el voltaje de 5 v Modo de operaci n de bajo consumo SLEEP con un consumo virtual de 0 lt 1 ua Opci n de protecci n de c digo CODE PROTECTION para evitar posible copia del firmware del circuito Sistema de interrupciones generadas desde varios dispositivos entre ellos el temporizador y el USART En cuanto a su alimentaci n EVOLUPIC puede activarse mediante un eliminador de bater as externo el cual 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 MEMORIA DATOS MEMORIA DATOS MEMORIA CODIGO RAM 224 EEPROM 128 FLASH 2 3 TEMPORIZADORES 1 SALIDA PWM 2 COMPARADORES ANALOGICOS 1 SALIDA ANALOGICA PUERTO B 8 BITS PUERTO SERIAL USART PUERTO A 8 BITS FIGURA 2 EVOLUPIC 16F628 Punto Flotante S A 2009 SOFTWARE Se proporci
58. ona junto con el sistema un disco CD Se incluye en dicho disco el programa MPLAB ejecutable desde una PC con cualquier plataforma WINDOWS desde WINDOWS 98 y WINDOWS XP 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 EVOLUPIC se conecta mediante un cable al puerto serial de una computadora PC para la programaci n del 16F628 DOCUMENTACION El usuario recibe en el 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 Se incluyen tambi n los archivos PDF con las data sheets completas del chip 16F628 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 16F628 Finalmente el disco CD incluye tambi n una carpeta con programas de prueba para el sistema 3 Definici n de los pines en el 16F628 RA2 AN2 VrefHA 1 D RA4 TOCLKI CMP2 MCLR RAS Vpp OSC1 CLKIN RA7 5 2 6 VSS 0 VDD RBO INTD ORB7 T 10S 1 PGD RBI RX 6
59. para U2 tarjeta fuente disco CD cable teclado pantalla Descripcion Led Capacitor Capacitor Capacitor Capacitor Capacitor Capacitor Capacitor Capacitor Diodo Conector DB9 para impreso Conector para teclado 8x Conector para expansi n 8x Conector 14x para LCD Conector de tornillos Conector para eliminador Led Led Led Led CONECTOR conector jumper Resistencia Resistencia Resistencia Resistencia Resistencia Resistencia Resistencia Relevador Bot n de reset Microswitches 4X Transistor NPN Transistor PNP Microcontrolador Interfaz RS232 Regulador 5 volts Sensor temperatura Cristal miniatura Diodo Zener Diodo Zener Base Base Circuito impreso Eliminador de baterias Disco Cable Serial 1 8 mts hexadecimal 16 teclas LCD de un rengl n Tipo NARA 1 uF 22 pF 10 nF 1 nF 1000 uF 470 uF 10 uF 15 nF 1N4148 500 020 Pines en ngulo Pines Vertical color negro TRT 02 ALIM PTO ENC RE PROG 3 PINES GMJ 2 1 5 100 10K 5 6 K 2 2K RAS 1210 AU 101 DIP 4P BC337 BC328 PIC16F628 MAX232 7805 DS18B20 4 MHz Z5V6 Z8V2 18 patas 16 patas EVOLUPIC ELI 030 300ma CD DB9M DB9H EDU KEY 2007 16X1 EVOLUPIC 16F628 Punto Flotante S A 2009 8 1 SO Os Rh e e hhh hd pa a A A QQ Cantidad Huella LUZ CELCH CAPI CAPI CAPI CELEG CELEG CELCH CAPI DINU DB9H 8 pin
60. rimidos MPLAB810 zip y dentro de la carpeta WINPIC winpicpr zip y 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 los dispositivos programas de prueba 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 abra el archivo comprimido MPLAB810 zip y una vez descomprimido ejecute su programa de instalaci n Ponga por favor atenci n en las siguientes ventanas que aparecer 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 intenta identificar 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 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 a
61. s 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 PS1 PSO Bit 7 Bit 0 105 bits 0 1 y 2 toman un valor del 0 al 7 binario y programan el divisor del temporizador del WATCH DOG TIMER de acuerdo a la siguiente tabla PS2 PS1 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 128 1 32 110 1 128 1 128 111 1 256 1 128 el bit 3 determina si el valor anterior se asigna al temporizador 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 16F628 El bit 5 determina si la fuente de incremento del temporizador es la transici n en el pin RA4 TOCLK1 1 o el clock interno que maneja el ciclo de instrucci n CLKOUT 0 EVOLUPIC 16F628 Punto Flotante S A 2009 10 bit 6 determina cuando su valor es de 1 que la interrupci n externa se genera con el flanco ascendente del 6 del 16F628 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 resisten
62. s del USART 1 habilita USART O deshabilita USART EVOLUPIC 16 628 Punto Flotante S A 2009 11 PROGRAMACION DEL BAUD RATE el baud rate de operaci n del USART se programa cargando un valor en el registro SPRBG y seleccionando el bit BRGH A 4 Mhz que es la frecuencia de operaci n de EVOLUPIC deben de seguirse los datos de la siguiente tabla para operar en modo as ncrono BAUD RATE bps REGISTRO SPRBG decimal BIT BRGH en registro TXSTA 1200 51 0 2400 25 0 9600 25 1 19200 12 1 RUTINA DE INICIALIZACION DEL USART PARA TRASMISION ASINCRONA 8 BITS 2400 BPS cristal 4 Mhz BSF STATUS RPO selecciona Banco 1 MOVLW D 25 baud rate 2400 MOVWF SPBRG carga en el registro de baud rate MOVLW 0x20 habilitar trasmisi n 8 bits MOVWF TXSTA modo as ncrono baja velocidad STATUS RPO selecciona Banco 0 MOVLW 0x90 receptor habilitado 8 bits MOVWE RCSTA puerto serial habilitado RUTINAS PARA LA TRASMISION RECEPCION DE UN CAR CTER ASCII putchar caracter contenido en w btfss PIR1 TXIF goto putchar movwf TXREG env a el contenido de w return getchar btfss PIR1 RCIF dato listo goto getchar loop de espera hasta que el dato est listo movfw RCREG caracter recibido w return 11 PWM Pulse Wide Modulation 11 1 Aplicaciones de PWM La modulaci n de se ales por ancho del pulso es una t cnica que se ha usado extensivamente durante d cadas en los sis
63. s 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 EQU H 0006 TRISB EQU H 0086 RPO EQU 0005 EQU H 000A Estas declaraciones junto con las del resto de los registros asi como los bits individuales de cada registro se almacenan en un solo archivo que se denomina 16F628 inc y que es parte de las librerias ya incluidas 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 p16F628 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 EVOLUPIC 16F628 Punto Flotante S A 2009 20 Etiqueta Instrucci n Operando Forma general EJEMPLO1 BCF STATUS RPO BCF 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 l
64. tal de 4 Mhz Cada LED enciende durante 0 5 seg Configuraci n del CPU 16F628 Oscilador cristal 4 Mhz watchdog timer off power up timer on incluye archivo p16F628 inc processor 16F628 include lt 16 628 1 gt config _XT_OSC amp _WDT_OFF amp _PWRTE_OFF amp _MCLRE_ON amp _BODEN_OFF amp _LVP_OFF J equ 20 localidad es J K equ H 21 localidad 1E es K Programa org 0 origen de memoria flash 0 movlw 00000000 w 00000000 EVOLUPIC 16 628 Punto Flotante S A 2009 25 tris PORTB puerto B 0 bits son salidas movlw 00000001 movwf port 1 bef STATUS C carry 0 mloop rlf srotate left PORT incluye carry D 200 modificar este valor a 4 para realizar simulaci n movwf J movwf K K w kloop decfsz K 1 skip next if zero goto decfsz J f J J 1 skip next if zero goto goto mloop end Observe cada instrucci n y familiar cese con cada una de las directivas usadas en particular include lt p16F628 inc gt permite incluir dentro del programa y como si fuera parte del mismo al archivo p16F628 inc el cual ya contiene numerosas directivas con equivalencias de los registros y los bits usados por el 16F628 __config XT_OSC _WDT_OFF amp _PWRTE_OFF MCLRE_ ON BODEN OFF LVP_OFF permite programar el registro de configuraci n del en la direcci n 2
65. temas de control Se trata de una se al digital que permite implementar un control de tipo anal gico en sistemas lineales Su aplicaci n m s t pica es el control proporcional de velocidad en motores de DC raz n por la cual es muy usado en aplicaciones de rob tica Tambi n se emplea en la implementaci n de dimmers es decir controles proporcionales de intensidad en l mparas incandescentes y en general para la generaci n de se ales en frecuencias de audio El microcontrolador 16F628 puede generar se ales PWM con una resoluci n de 10 bits y a una frecuencia de operaci n programable de acuerdo a las necesidades del usuario Y max Amplitude Y min 0 D T T D T 2T 2T D T 3T 3T D T Time EVOLUPIC 16F628 Punto Flotante S A 2009 12 11 2 Ciclo de Trabajo Duty Cycle El pin genera la se al PWM Este pin se encuentra multiplexado con el bit RB3 raz n por la cual el bit 3 del registro TRISB debe ser previamente puesto en cero para habilitar CCP1 Hay dos par metros que definen a la se al PWM la frecuencia de operaci n y el ciclo de trabajo duty cycle El per odo de operaci n de la se al as como el ciclo de trabajo se programan usando las siguientes f rmulas Frec Xtal 4 Mhz frecuencia de operaci n PWM khz 1000 valor decimal en PR2 1 PS En donde PS es el valor de preescalamiento 1 4 6 16 programable con los bits del registro T2CON lt 1 0 gt cuyos nemot cnicos son T2ZCLKPS
66. tores de Corriente Directa Carpeta ON IS 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 15 13 11 9 7 5 3 1 lt CONECTOR DEL TECLADO EN EVOLUPIC HEADER DE 16X RB7 RB6 RB5 RB4 RB2 FIGURA 15 DIAGRAMA DEL TECLADO Y SU INTERFAZ CON EVOLUPIC EVOLUPIC 16 628 Punto Flotante S A 2009 31 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 figura se muestran los diagramas del teclado as como de la asignaci n de se ales en el puerto B en el conector de EVOLUPIC 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 Y2 Y4 y leer cada vez los renglones 2 X3 X4 Cuando una tecla es oprimida la lectura en alguno de los renglones ser CERO y el c digo
67. y otra vez La instrucci n RETFIE habilita de nuevo la bandera GIE 13 Programaci n de la EEPROM La memoria EEPROM residente en el chip 16F628 posee 128 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 O a la 7F H El acceso a esta memoria es a trav s de direccionamiento indirecto utilizando 4 de los registros SFR special fuction registers EECON1 EECON2 EEDAT y EEADR EEDAT guarda el dato que habr de escribirse en la EEPROM mientras que EEADR guarda la direcci n EECON1 es un registro cuyos bits permiten al usuario habilitar o deshabilitar la lectura y escritura en la EEPROM EECON2 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 REGISTRO EECON 1 DIRECCION 9CH 5 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 El BIT 2 habilita o deshabilita el ciclo
Download Pdf Manuals
Related Search
Related Contents
Aquatic ai6032SvhS User's Manual Manual German SharpSchool User Manual BEL-AIR THERMO- HYGROMÈTRE RADIO-PILOTÉ Bionaire BMT014D fan Analyse du cycle de vie de structures routières Copyright © All rights reserved.
Failed to retrieve file