Home
SISTEMA EB88 MANUAL DEL USUARIO.
Contents
1. e 00090000 al LEDS BO CONTACTOS DEL RELEVADOR CONECTOR TECLADO sensor de temperatura O CONECTOR AUXILIAR PARA EXPANSION x EE lt lt oc oc el Lr 1 CONECTOR DEL BOTON DE RESET ELIMINADOR FIGURA 1 Se hace uso de la versi n de 18 pines del microcontrolador 16F88 con encapsulado dual in line el cual contiene 4096 bytes de memoria FLASH 368 bytes de RAM y 256 bytes de EEPROM 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 E Microcontrolador 16F88 funcionando con un cristal externo de 4 Mhz E Programador Bootloader de la memoria FLASH del 16F88 por v a puerto serial RS232 SISTEMA EB88 Punto Flotante S A 2012 3 4K bytes de memoria FLASH 256 bytes de EEPROM 368 bytes de RAM Tecnolog a CMOS con muy bajo consumo en funcionamiento normal lt 1 miliampere 5 volts Arquitectura Harvard con un set RISC de solamente 35 instrucciones 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 para pruebas y emulaci n de alarmas Un total de 16 bits programables como entradas o salidas digitales Relevador de 127VACO 1A integrado a la tarjeta para la activaci n de dispositivos externos Sensor digital de temperatura DS18B20 integrado al m d
2. OPTION REG REGISTRO QUE PERMITE EL CONTROL DEL CONTADOR TEMPORIZADOR 0 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 SELECTOR DE BANCO FSR 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 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 EEADDR EECON1 REGISTRO DE CONTROL HABILITA LECTURA Y ESCRITURA DE EEPROM EEADDR APUNTADOR QUE ALMACENA LA DIRECCI N QUE HABRA DE LEERSE EN LA EEPROM SISTEMA EB88 Punto Flotante S A 2012 EECON2 PCLATH 8 REGISTRO DE CONTROL DE ESCRITURA PROTEJE CONTRA ALTERACIONES INDESEADAS DEL CONTENIDO DE LA EEPROM PARTE ALTA DEL CONTADOR DEL PROGRAMA 4 BITS QUE JUNTO CON LOS 8 BITS DEL PCL FORMAN LA DIRECCION COMPLETA CON LA CUAL CUAL PUEDEN DIRECCIONARSE 4096 LOCALIDADES DE LA 0000H A LA OFFFH PCLATH PUEDE TAMBIEN VERSE COMO EL REGISTRO QUE CONTIENE EL NUMERO 0 15 DE LA PAGINA DE 256 BYTES EN DONDE HABRA DE DIRECCIONARSE LA MEMORIA Registros nuevos en el circuito 1
3. Abra el subdirectorio y quite la protecci n de solo lectura en los archivos mediante el siguiente procedimiento 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 podr a enviar mensaje de error al intentar editar ensamblar alg n archivo Los distintos tipos de archivo son Terminaci n ASM que son los archivos fuente Estos archivos son de texto y est n escritos en lenguaje ensamblador para el microcontrolador 16F88 Los archivos con terminaci n HEX son los archivos ejecutables listos para su transferencia a la TARJETA EB88 a trav s del programa TINY PASO 5 CONFIGURAR MPLAB EDITAR ENSAMBLAR Y SIMULAR UN PROGRAMA EN LA PC MPLAB es un programa que integra numerosas funciones adicionales a las que se cubren en este manual En esta secci n se ver como cargar y ensamblar un programa Abra desde el escritorio el software MPLAB IDE Para configurarlo elija la opci n configure select device All elija la opci n 16F88 Ahora se ale la opci n file open y despu s elija el path CASistema EB88l
4. DB9 EVOLUPIC Bootloader 16F88 PROGRAMACION DE LA MEMORIA FLASH DEL 16F88 POR CABLE SERIAL DB9 DB9 CABLE DE INTERFAZ USB DB9 FIGURA 12 SISTEMA EB88 Punto Flotante S A 2012 24 PASO 2 COPIA DEL DISCO CD CONEXI N DE LA TARJETA A LA COMPUTADORA Y PROGRAMACI N DE LA MEMORIA FLASH DEL 16F88 Inserte el disco de soporte en la unidad lectora de CD de la computadora Abra el contenido del disco y copie la carpeta completa Sistema EB88 hacia su computadora Para la programaci n de la memoria FLASH del 16F88 consulte y cargue algunos programas hacia el sistema EB88 usando los siguientes documentos incluidos en el disco CD en la carpeta MANUALES SISTEMA EB88 Gu a r pida para la puesta en marcha de 8 proyectos para el sistema EB88 pdf Gu a General para la programaci n del sistema EB88 TINY pdf PASO 3 INSTALACION DE MPLAB IDE En la carpeta MPLAB IDE v 8 50 siga las instrucciones de la siguiente gu a para la instalaci n de MPLAB IDE Gu a para la instalaci n de MPLAB IDE v8 50 pdf PASO 4 A VECES ES NECESARIO QUITAR LA PROTECCION DE SOLO LECTURA A LOS ARCHIVOS En ocasiones no siempre es necesario quitar la protecci n de solo lectura de los archivos de prueba que se encuentran en el subdirectorio ARCHIVOS Sistema EB88 TINY Estos archivos traen a veces esa protecci n debido a que fueron copiados directamente del CD de solo lectura
5. Forced NOP 5 Instruction address SUB 1 Fetch SUB 1 lExecuteSLIB 1 FetchSUB 1 1 FIGURA 5 El microcontrolador 16F88 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 12 bits y que direcciona a la siguiente localidad de memoria de c digo que habr de leerse y ejecutarse La PILA 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 SISTEMA EB88 Punto Flotante S A 2012 7 Memoria La arquitectura HARVARD permite el uso de 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 4096 localidades de 14 bits con direcciones de la 000H a la FFFH Las direcciones 0 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 q
6. 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 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 El bit 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 0 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 SLEEP y tendr un valor de O si el WDT WATCH DOG TIMER activa su se al de alarma Los bits 5 y 6 RPO RP1 seleccionan el banco de memoria que habr de accesarse Si RPO 20 RP1 0 se selecciona el banco 0 Si RP0 1 RP1 0 banco 1 RPO 0 RP1 1 banco 2 RPO 1 RP1 1 banco 3 El bit IRP se usa para direccionamiento indirecto junto con el registro FSR para seleccionar el banco de registros Si IRP 0 se seleccionan los bancos O y 1 si IRP 1 se seleccionan los bancos 2 y 3 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
7. digo est n separadas El microcontrolador cuenta con los siguientes elementos memoria de programa de 4K del tipo FLASH programable y borrable el ctricamente 256 bytes de memoria EEPROM para el almacenamiento de par metros direcciones claves seg n la aplicaci n 368 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 35 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 con la instrucci n 5 llamada por la subrutina 1 MOVLA 55h Execute 2 MOVWF PORTE 3 CALL SUE 1 4 BSF PORTA BITS
8. 4 del sistema 16F88 por lo que se explic en el primer p rrafo SISTEMA EB88 Punto Flotante S A 2012 26 El siguiente byte es un 00 en todas las l neas pero sin informaci n til Los siguientes bytes en cada l nea corresponden a la informaci n que habr de almacenarse en la memoria FLASH Al final de cada l nea est un byte 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 obteniendo luego el complemento a 100H 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 21
9. SS CK L RBA SCK SCL PIC 16F88 FIGURA 3 Casi todos los pines tienen varias funciones en la tabla que sigue se describe cada una de ellas Pin Nombre Tipo Funciones RA2 AN2 CVref Vref RA2 ENTRADA SALIDA PUERTO A AN2 ENTRADA ANALOGICA 2 Vref SALIDA VOLTAJE DE REFERENCIA PARA COMPARADOR Vref VOLTAJE BAJO DE REFERENCIA PARA CONVERTIDOR A D RA3 AN3 Vref Clout RA3 ENTRADA SALIDA PUERTO A AN3 ENTRADA ANALOGICA 3 Vref VOLTAJE ALTO DE REFERENCIA PARA EL CONVERTIDOR A D Clout SALIDA DEL COMPARADOR ANAL GICO 1 RA4 AN4 TOCKI C2out RA4 ENTRADA SALIDA PUERTO A SALIDA ES OPEN DRAIN AN4 ENTRADA ANAL GICA 4 TOCKI ENTRADA DE RELOJ PARA TIMER 0 C2out SALIDA DEL COMPARADOR ANAL GICO 2 SISTEMA EB88 Punto Flotante S A 2012 5 MCLR RA5 Vpp MCLR RESET GENERAL AL CONTROLADOR RA5 ENTRADA PUERTO A Vpp VOLTAJE DE PROGRAMACION ver est ndar ISCP n VSS TIERRA DEL 16F88 RBO INT CCP1 RB0 ENTRADA SALIDA PUERTO B INT INTERRUPCION EXTERNA CCP1 ENTRADA MODULO CAPTURA SALIDA MODULO DE CAPTURA SALIDA DE PWM RB1 SDI SDA RB1 ENTRADA SALIDA PUERTO B SDI DATOS DE ENTRADA DEL SPI SDA DATOS DEL TRASMISOR DC RB2 SDO RX DT RB2 ENTRADA SALIDA PUERTO B SDO DATOS DE SALIDA DEL SPI RX DATOS DE RECEPCION ASINCRONA DEL USART DT DETECCI N SINCRON A DEL USART RB3 PGM CCP1 RB3 ENTRADA SALIDA PUERTO B PGM VOLTAJE DE PROGRAMACI N BAJO DEL I
10. 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 H regresa de la subrutina con el c digo ASCII de la H en w retlw O relw T retlw A 17 Puesta en marcha PASO 1 REVISION DE COMPONENTES Y PRUEBA INICIAL DE LA TARJETA EBSS Revise por favor que el kit incluya lo siguiente tarjeta EB88 eliminador de bater as cable serial teclado hexadecimal display LCD el sensor de temperatura DS18B20 y disco CD de aplicaci n Para poder usar el disco de aplicaci n usted necesita una computadora con Windows XP Vista Windows 7 con una unidad lectora de CD y un puerto serial con conector DB9 bien una salida USB y un cable de interfaz serial USB DB9 S1 y S2 deben estar en la posici n RS232 Los 4 microswitches deben estar en la posici n OFF Inserte el display LCD al conector de 14 pines Posicione el selector de voltaje del eliminador de bater as a 6 0 7 5 volts y con ctelo a la tarjeta EB88 Una vez alimentada la tarjeta el programa cargado de f brica en la memoria FLASH del 16F88 funciona en forma inmediata mostrando un mensaje en el LCD si SW4 0FF mostrando la temperatura ambiente si SWAZON CONECTOR DISPLAY LCD o 00090000 al CONTACTOS DEL LEDS BO RELEVADOR CONECTOR TECLADO sensor de temperatura i se O s d9 CONECTOR AUXILIAR Liz PARA EXPANSION 1 CONECTOR DEL BOTON DE RESET CONECTOR ELIMINADOR
11. 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 instrucci n addwf PCL se est afectando la parte baja PCL 8 bits y tambi n la alta 3 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 a 7 Inain 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 darem en esta zona del programa debe de inicializarse w con el desplazamiento SISTEMA EB88 Punto Flotante S A 2012 23 movlw H l en este ejemplo w 1 call TABLA s ns en sta l nea regresa la subrutina TABLA con el dato de la tabla en w org H 100 origen de la tabla en la p gina 1 100H 1FFH TABLA
12. completada en forma exitosa Si el valor es 1 existi un error y si el valor es de 0 entonces la escritura fue completada sin error EI 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 subrutina para leer dato de EEPROM para usar esta subrutina debe escribirse antes la direcci n deseada en el registro EEADR BANCO2 La rutina regresa con el dato en w EERD BANCO3 BCF EECON1 EEPGD APUNTA HACIA EEPROM DE DATOS BSF EECON1 RD HABILITA EL BIT 0 RD DEL REGISTRO EECONI BANCO2 MOVF EEDATA W TRANSFIERE EL DATO EN EEDATA A W RETURN subrutina para escribir dato en EEPROM para usar esta subrutina debe escribirse antes la direcci n DE LA EEPROM en el registro EEADR BANCOJ2 y el dato en el registro EEDATA BANCO2 la rutina regresa una vez que el dato fue escrito en la localidad deseada EEWR BANCO3 HABILITA EL BANCO 3 BCF EECON1 EEPGD APUNTA HACIA EEPROM DE DATOS BSF EECON1 WREN HABILITA ESCRITURA EN EEPROM BCF INTCON GIE DESHABILITA INTERRUPCIONES MOVLW H 55 PREPARA SECUENCIA DE SEGURIDAD MOVWF EECON2 ESCRIBE PRIMER DATO DE SECUENCIA MOVLW H AA SEGUNDO DATO MOVWF EECON2 ESCRIBE SEGUNDO DATO DE SECUENCIA BSF EECON1 WR INICIA CICLO DE ESCRITURA EW BTFSC EECON1 WR MALLA PARA ESPERAR AL FINAL DEL CICLO
13. f skip if set SISTEMA EBSS Punto Flotante S A 2012 21 16 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 de alguno de los 4 bancos de los llamados registros especiales o bien alguna de las 368 localidades de memoria RAM W designa el acumulador del 16F88 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 Algunas de las definiciones m s utilizadas 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 registro se almacenan en un solo archivo que se denomina 16F88 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 escri
14. 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 16F88 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 Ymax Amplitude Ymin 0 D T T T D T 2T 2T D T 3T 3T D T Time 11 2 Ciclo de Trabajo Duty Cycle El pin CCP1 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 SISTEMA EB88 Punto Flotante S A 2012 13 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 16 programable con los bits del registro T2CON lt 1 0 gt cuyos nemot cnicos son T2CLKPS1 y T2CLKPS0 Si estos bits valen 00 PS 1 si valen 01 PS 4 si valen 10 PS 16 ciclo de trabajo en CCPR1L CCP1CON lt S5 4 gt PS 25 En don
15. 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 EB88 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 BCF STATUS RPO selecciona Banco 0 MOVLW 0x90 receptor habilitado 8 bits MOVWF RCSTA puerto serial habilitado RUTINAS PARA LA TRASMISION RECEPCION DE UN CAR CTER ASCII putchar caracter contenido en w btfss PIRI TXIF goto putchar movwf TXREG return env a el contenido de w getchar btfss PIR1 RCIF goto getchar movfw RCREG return dato listo loop de espera hasta que el dato est listo caracter recibido en w 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 sistemas 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
16. realizando solo cambios m nimos en los programas Gracias a la posibilidad del microcontrolador 16F88 de autoprogramar su memoria FLASH el sistema EB88 no necesita del hardware de programaci n ICSP lo cual simplifica considerablemente su electr nica y permite a trav s del firmware Bootloader precargado de f brica programar el 16F88 v a un cable serial DB9 DB9 cualquier cable de interfaz USB DB9 mediante un software llamado TINY que se ejecuta en la PC Le recomendamos ir directamente al cap tulo 17 p gina 22 Puesta en Marcha para tener el 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 el sistema EB88 Puede tambi n enviar sus emails a atencionaclientes puntoflotante net Juan Mart nez Punto Flotante S A enero de 2012 2 Descripci n General El sistema EB88 fue dise ado para su uso en una amplia gama de aplicaciones como kit para el aprendizaje del microcontrolador 16F88 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 EB88 se muestra en la siguiente figura CONECTOR DISPLAY LCD
17. sleep bajo consumo Temporizadores contador de eventos 3 temporizadores Un generador de PWM Interrupciones fuentes de interrupci n externa del pin RBO INT overflow del temporizador cambio en los niveles de las entradas RB4 RB7 Por escritura completa en la EEPROM Del USART Dimensiones 9 5 cms x 7 9 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 16F88 integrado en la tarjeta la programaci n se realiza desde una computadora PC por puerto serial empleando el firmware Bootloader Software para desarrollo MPLAB que incluye editor ensamblador simulador y compilador Software TINY programador de la memoria flash del 16F88 SISTEMA EB88 Punto Flotante S A 2012 27 18 2 LAY OUT I Be 8 2 x aia alj wo B5 B6 25 2 N 82 B3 B4 e 2 20 al OQQQQQ0Q 78 7 mm FIGURA 13 SISTEMA EB88 Punto Flotante S A 2012 28 18 3 DIAGRAMA ELECTRONICO PIC1686 IA Tile E Evolupic 2010 Sue Number Reinon Letter Date 1 Jan 1990 Shot of File C Program FilesProComiEVOCA ddb DrawnBy Rel Rosales 1 2 3 4 18 4 LISTA DE COMPONENTES MATERIAL PARA Sistema EB88 Referencia Descripcion Tipo Huella Cant 1 BO B7 L2 L3 leds rojos 5 mm NARA LUZ 10 2 C13 C15 Capacitor Elec 10 uF CELCH 2 3 C6 C
18. 6F88 RCREG RCSTA TXREG TXSTA SPBRG PIR1 PIR2 PIE1 PIE2 PCON WDTCON TMRIL TMRIH TICON TMR2 T2CON SSPBUF SSPCON SSPADD SSPSTAT PR2 CCPRIL CCPRIH CCPICON CMCON CVRCON ADRESH ADRESL ADCON0 ADCONI ANSEL OSCCON OSCTUNE REGISTRO DE RECEPCION AS NCRONO DEL USART REGISTRO DE STATUS DE RECEPCION AS NCRONA DEL USART REGISTRO DE TRASMISION AS NCRONA DEL USART REGISTRO DE STATUS DE TRASMISION ASINCRONA DEL USART REGISTRO PARA GENERACION DEL BAUD RATE DEL USART PERIPHERAL INTERRUPT REGISTER REGISTRO DE CONTROL DE INTERRUPCIONES DEL USART EL CCPR1 TEMPORIZADORI TEMPORIZADOR2 Y EEPROM PERIPHERAL INTERRUPT REQUEST FLAG REGISTER PERIPHERAL INTERRUPT ENABLE REGISTER REGISTRO DE HABILITACION DE INTERRUPCIONES DEL USART EL CCPR1 EL TEMPORIZADOR 1 Y LA EEPROM PERIPHERAL INTERRUPT ENABLE REGISTER REGISTRO DE BANDERAS STATUS PARA CONOCER LA FRECUENCIA DE OPERACI N Y EL MODO DE RESET DEL CONTROLADOR POWER ON TIMER BROWN OUT RESET REGISTRO DE CONTROL DEL WATCH DOG TIMER TEMPORIZADOR 1 PARTE BAJA TEMPORIZADOR 1 PARTE ALTA REGISTRO DE CONTROL DEL TEMPORIZADOR 1 REGISTRO TEMPORIZADOR 2 TAMBIEN PUEDE USARSE PARA LA GENERACION DE PWM REGISTRO DE CONTROL DEL TEMPORIZADOR 2 BUFFER DEL PUERTO SERIAL SINCRONO CONFIGURACI N DEL PUERTO SERIAL SINCRONO SYNCRONOUS SERIAL PORT I2C MODE ADDRESS REGISTER SYNCRONOUS SERIAL PORT STATUS REGISTER REGISTRO PARA CONTROL DEL PERIODO DEL TEMPORIZADOR 2 RE
19. 7 C14 Capacitor Cer 10 nF CAPI 3 4 C1 C4 Capacitor Elec 1 uf 4 5 C5 C8 Capacitores Cer 22 pF CAPI 2 6 D1 Diodos 1N4148 DINU 1 7 J1 Conector DB9 para impreso 500 020 DB9H 1 8 J6 Conector para eliminador ALIM COCO 1 9 J5 Conector de tornillos 2X TRT 02 TORA 1 10 J3 Conector ngulo 8X teclado HEADER 1 11 J2 Conector ngulo 6X HEADER 1 12 J4 Conector 14 pines TIPO CAJA CP14 1 SISTEMA EB88 Punto Flotante S A 2012 29 13 R7 resistencia 1 2 w 100K RES 1 14 R8 R16 R20 R5 resistencias 1 2 w 1K RES 11 15 R21 R22 resistencias 1 2 w 5 6K RES 2 16 R1 R4 resistencias 1 2 w 47K RES 4 17 RL1 relevador RAS 0910 REL 1 18 RST bot n de reset AU 101 BOT 1 19 S1 S2 conector jumper 3 pines PUENTE CP3 2 20 puentes jumpers GMJ 2 2 21 SW microswitches 4P DIP 4P BAS8 1 22 T4 Transistores NPN BC337 TR92 1 23 U4 Sensor de temperatura DS18B20 1 24 U2 Interfaz serial MAX232 1 25 U1 Microcontrolador PIC16F88 BAS18 1 26 base para circuito integrado 16 patas 1 27 base tubular para DS18B20 3 patas 1 28 base para circuito integrado 18 patas 1 29 U3 Regulador de vollajje 5V 7805 REG 1 30 XT Cristal miniatura 4 MHz XTAL 1 31 tarjeta circuito impreso EB88 Bootloader 1 32 fuente eliminador de baterias 300 ma ELI 030 1 33 DISCO CD disco CD y etiqueta 1 34 cable cable serial macho hembra DB9 A DB9 1 35 empaque caja de empaque 1 36 bolsa 1 37 ensamblado de tarjeta 1 38 M dulo LCD 16 x 1 1 rengl n 1 39 teclado hexadecimal 1 AVISO IMPORTANTE EL 16F88
20. CSP CCP ENTRADA MODULO CAPTURA SALIDA MODULO DE CAPTURA SALIDA DE PWM 10 RB4 SCK SCL RB4 ENTRADA SALIDA PUERTO B SCK ENTRADA SALIDA SINCRONA DE RELOJ PARA SPI SCL ENTRADA SINCRONA DE RELOJ PARA DC 11 RB5 SS TX CK RB5 ENTRADA SALIDA PUERTO B SS SELECTOR DE MODO ESCLAVO PARA SPI TX DATOS DE TRASMISI N ASINCRONA DEL USART CK RELOJ SINCRONO DEL SPI 12 RB6 AN5 PGC TIOSO TICKI RB6 ENTRADA SALIDA PUERTO B ANS ENTRADA ANAL GICA 5 PGC ENTRADA DE PROGRAMACION CLOCK ISCP T1OSO SALIDA DE OSCILADOR DEL TIMER 1 TICKI ENTRADA DE RELOJ EXTERNO DEL TIMER 1 13 RB7 T1OSI PGD AN6 RB7 ENTRADA SALIDA PUERTO B TI1OSCI ENTRADA OSCILADOR TIMER 1 PGD ENTRADA DE DATOS DE PROGRAMACION ISCP AN6 ENTRADA ANAL GICA 6 14 VDD VOLTAJE 5 VOLTS DEL 16F88 15 OSC2 CLKO RA6 OSC2 ENTRADA OSCILADOR CRISTAL 4 MHZ CLKO SI HAY OSCILADOR RC EXTERNO SALIDA 4 DE FRECUENCIA RA6 ENTRADA SALIDA BIDIRECCIONAL OSCI CLKI RA7 OSC2 ENTRADA OSCILADOR EXTERNO CRISTAL 4 MHZ CLKIN ENTRADA OSCILADOR EXTERNO RA7 ENTRADA SALIDA PUERTO A 17 RA0 ANO RAO ENTRADA SALIDA PUERTO A ANO ENTRADA ANALOGICA 0 18 RA1 ANI RA1 ENTRADA SALIDA PUERTO A ANI ENTRADA ANALOGICA 1 4 Programador Bootloader de la memoria FLASH La tarjeta EB88 cuenta con un programador para su memoria FLASH basado en la capacidad de autoprogramaci n del 16F88 El denominado Bootloader TINY e
21. DEL SISTEMA EB88 TIENE PRECARGADO DE FABRICA UN FIRMWARE BOOTLOADER EN LA ZONA ALTA DE SU MEMORIA FLASH QUE ES EL QUE LE PERMITE AUTOPROGRAMAR EL RESTO DE LA MEMORIA FLASH A TRAVES DEL PUERTO SERIAL EL MICROCONTROLADOR 16F88 CUENTA CON UN MECANISMO DE SEGURIDAD PARA EVITAR ESCRITURAS ACCIDENTALES EN LA ZONA DE MEMORIA FLASH EN DONDE SE ENCUENTRA RESIDENTE EL FIRMWARE BOOTLOADER MENCIONADO ESTE MECANISMO ES SIMILAR AL UTILIZADO PARA PROTEGER EL CONTENIDO DE SU MEMORIA EEPROM SIN EMBARGO SI BIEN ES UN EVENTO DE MUY BAJA PROBABILIDAD PUDIESE OCURRIR QUE EL SISTEMA REALICE UNA ESCRITURA ACCIDENTAL EN ESTA ZONA LO QUE HARIA NECESARIO REPROGRAMAR EL 16F88 CON EL FIRMWARE BOOTLOADER ORIGINAL ES NECESARIO EN ESTE CASO USAR UN PROGRAMADOR ICSP NO INCLUIDO CON EL KIT SISTEMA EBS88 LAS INSTRUCCIONES PARA HACERLO SE ENCUENTRAN EN LA CARPETA MANUALES SISTEMA EBSS EN EL ARCHIVO GUIA GENERAL PARA LA PROGRAMACI N DEL SISTEMA EB88 SISTEMA EBSS Punto Flotante S A 2012
22. GISTRO 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 LOS BITS DEL PUERTO A ESTAN MULTIPLEXADOS CON EL COMPARADOR Y LAS FUNCIONES DEL VOLTAJE DE REFERENCIA LOS REGISTROS CMCON COMPARATOR CONTROL Y CVRCON VOLTAGE REFERENCE CONTROL SE USAN PARA SELECCIONAR ESTAS FUNCIONES PARTE ALTA DEL REGISTRO CON EL RESULTADO DE LA CONVERSION PARTE BAJA DEL REGISTRO CON EL RESULTADO DE LA CONVERSION REGISTRO DE CONTROL DE CONVERTIDORES A D REGISTRO DE CONTROL DE CONVERTIDORES A D REGISTRO DE SELECCI N DEL CONVERTIDOR A D OSCILATOR CONTROL REGISTER REGISTRO DE CONTROL DEL OSCILADOR OSCILATOR TUNING REGISTER REGISTRO DE AJUSTE DEL OSCILADOR NOTA IMPORTANTE EN ESTE MANUAL SOLO SE DESCRIBEN CON DETALLE LOS REGISTROS CON LETRAS RESALTADAS FAVOR DE USAR COMO REFERENCIA EL 16F88 DATA SHEET PARA LA INFORMACI N COMPLETA DEL RESTO DE LOS REGISTROS SISTEMA EB88 Punto Flotante S A 2012 FIGURE 2 3 Address Indirect addr PCL PCLATH INTCON PIR1 PR2 T1CON TMR2 T2CON SSPBUF SSPCON1 CCPR1L CCPR1H CCP1CON RCSTA TXREG RCREG ADRESH ADCON0 General Purpose Register 96 Bytes Bank 0 PIC16F88 REGISTER FILE MAP File 00h 01h 02h 03h 04h o5h 06h Address TRISB PCLATH INTCON PEI PCON OSCCON OSCTUNE gt PR SSPADD SSPSTAT AAA EAN TXSTA
23. GOTO EW SIWR 1 CICLO DE ESCRITURA AUN NO TERMINA BCF EECON1 WREN DESHABILITA ESCRITURA BSF INTCON GIE HABILITA INTERRUPCIONES RETURN SISTEMA EB88 Punto Flotante S A 2012 15 14 Eunciones especiales 14 IREGISTRO DE CONFIGURACION El 16F88 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 como son la frecuencia del oscilador el WATCH DOG el POWER ON TIMER el MASTER CLEAR el BROWN OUT RESET la programaci n LOW VOLTAGE PROGRAMMING y la funci n CODE PROTECT para memoria de datos EEPROM y para memoria de c digo El c digo usualmente empleado es el 3F69H Por favor lea el documento Gu a General para la programaci n del SISTEMA EBS8 pdf ORG 0x2007 DATA 3F69H para EB88 Bootloader 4 MHZ EXTERNO REGISTER 15 1 CONFIG1 CONFIGURATION WORD 1 REGISTER ADDRESS 2007h R P 1 R P R IP l RP R P 1 R P 1 R P 1 RP RPA RP 1 R P4 RP A RP 1 RP 14 2 POWER UP TIMER ENABLE PWRTE Al seleccionar en el registro de configuraci n la opci n power up timer y con el objeto de permitir la estabilizaci n del oscilador 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 ticament
24. H 368 localidades 8 bits de RAM 128 localidades 8 bits de EEPROM Bootloader firmware precargado de f brica con capacidad de autoprogramaci n de la memoria FLASH 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 generar source hasta 25 miliamperes Entradas digitales a microswitches un total de 4 en el puerto A Salida a relevador relevador modelo RAS 0910 contactos de 127 V E 1 A Salida a conector de tornillos Header auxiliar de 6 contactos se ales RA1 RA4 disponibles tierra y 5 v Puede extenderse junto con el conector del teclado para hacer un solo header de expansi n de 14 se ales Conector para teclado 8 se ales RBO RB7 inclu das en el header 8x 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 Puertos seriales USART compatible RS232 con su propio puerto DB9 SSP Puerto serial s ncrono Convertidores AD 7 canales 10 bits de resoluci n Funciones adicionales power on reset power up timer watch dog code protection
25. H del chip Si usted desea proteger su programa entonces deber a adir en la l nea de configuraci n el comando CP ON 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 16F88 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 EB88 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 encuentran disponibles en varios conectores LCD TECLADO y AUX en la tarjeta de tal manera que el usuario pueda conectar dispositivos externos PUERTO PIN EN HEADER 16
26. H 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 EB88 Bootloader 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 200 ms aprox 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 puede transferir el archivo ejecutable a la TARJETA EB88 mediante el software TINY 18 Informaci n t cnica 18 1 CARACTERISTICAS GENERALES Procesador microcontrolador PIC16F88 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 4K localidades 14 bits de FLAS
27. Indice 9o XQ UA qx torba ES 12 13 14 15 16 17 SISTEMA EB88 Manual del Usuario Introducci n Descripci n general Definici n de los pines en el 16F88 Programador Bootloader de la memoria FLASH El ciclo de m quina del 16F88 Arquitectura del microcontrolador 16F88 Organizaci n de 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 as ncrono USART PWM Pulse Wide Modulation 11 1 Aplicaciones de PWM 11 2 Ciclo de trabajo Duty Cycle Interrupciones del Sistema Programaci n de la EEPROM 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 Conector para Teclado y AUX 15 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 AVISO IMPORTANTE SISTEMA EBSS Punto Flotante S A 2012 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 a un costo m nimo El sistema EB88 conserva la compatibilidad con los microcontroladores 16F628 y 16F84
28. 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 12 11 0 OPCODE k literal k es la direcci n inmediata en 12 bits 16 3 MANEJO DE TABLAS Es importante recordar que el microcontrolador 16F88 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 est en la memoria de c digo y debe entonces de manejarse como parte del programa ejecutable La forma de resolverlo es a trav s instrucciones RETLW 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
29. SPBRG ANSEL CMCON CVRCON ADRESL ADCON1 General Purpose Register 80 Bytes accesses 70h 7Fh File 80h 9 Address Indirect addr TMRO PCL STATUS S WDTCON PORTB PCLATH INTCON EEDATA EEADR EEDATH EEADRH General Purpose Register 16 Bytes General Purpose Register 80 Bytes accesses TOh 7Fh Bank 2 E Unimplemented data memory locations read as o Not a physical register Note 1 SISTEMA EB88 Punto Flotante S A 2012 This register is reserved maintain this register clear File 100h 101h 102h 103h 104h 105h 106h 107h 108h 109h 10Ah 10Bh 10Ch 10Dh 10Eh 10Fh 110h Rss TRISB PCLATH Reserved General Purpose Register 16 Bytes General Purpose Register 80 Bytes accesses 70h 7Fh 10 8 1 Registros PCL y PCLATH 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 nine n salto en el flujo del programa El registro PCL puede ser accesado 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
30. ader de 14x para su conexi n a interfaces externas 5 v 47k RBO RB7 RA1 RA2 1k RA3 RA4 L3 L10 SW4 Si FIGURA 8 DIAGRAMA DE LOS LEDS Y LOS MICROSWITCHES 15 2 RELEVADOR Mediante el manejo del bit RAO del puerto A el procesador 16F88 puede activar un relevador integrado en la tarjeta EB88 Los datos nominales de este relevador son un polo un tiro activaci n con 9 volts DC y contactos de 127 VCA 1 Ampere 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 SISTEMA EBSS Punto Flotante S A 2012 CONECTOR DE TORNILLOS FIGURA 9 CONEXI N DEL RELEVADOR 127 vac Conector tarjeta relevador auxiliar carga neutro FIGURA 10 CONEXI N DE UN RELEVADOR AUXILIAR 15 3 CONECTORES PARA EL TECLADO Y HEADER AUXILIAR El conector para el teclado tiene 8 se ales marcadas con los n meros del 1 al 8 correspondientes a RB0 RB7 respectivamente para insertar el teclado matricial Existe tambi n un header auxiliar con 6 se ales marcadas con los n meros del 1 al 6 Las se ales son respectivamente RA1 RA4 5 volts Y GND Favor de ver el diagrama en la siguiente hoja 15 4 CONECTOR A LCD Este conector dispone de 14 se ales mostradas en la tabla de abajo LCD EB FUNCION LCD E FUNCION 1 poo j Te
31. archivos Sistema EB88 TINYMANEJO DE LEDS MICROSWITCHES Y RELEVADOR TIN YMemoF88TINY asm processor 16f88 include p16f88 inc BANCOO MACRO BCF STATUS RPO BCF STATUS RPI ENDM BANCOI MACRO BSF STATUS RPO BCF STATUS RPI ENDM J equ H 20 K equ H 21 org 0 clrf PCLATH SISTEMA EBSS Punto Flotante S A 2012 25 goto WEB org 4 WEB BANCOO bcf RCSTA SPEN DESHABILITA UART BANCOI movlw 7 movwf CMCON clrf CVRCON clrf ANSEL DESHABILITA CONVERTIDORES A D clrf TRISA clrf TRISB BANCOO inicio clrf PORTB clrf PORTA movlw B 00000001 movwf PORTB port B 1 bcf STATUS C carry 0 mloop rlf PORTB f rotate left PORT B incluye carry movlw D 200 sretraso antes de seguir rotaci 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 La directiva include lt p16F88 inc gt contiene equivalencias entre los nombres y las direcciones de los registros y los bits usados por el 16F88 Observe 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 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 o
32. bir dentro del programa fuente en lenguaje ensamblador la directiva include lt p16F88 inc gt Una vez establecidas estas equivalencias podemos poner algunos ejemplos con instrucciones Observe que en todas ellas es posible 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 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 FED Resulta
33. ces 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 TRMT es el bit de status del registro de trasmisi n l registro vac o O registro lleno BRGH bit de selecci n de velocidad de baud rate en modo as ncrono 1 alta velocidad 0 baja velocidad SYNC modo de trasmisi n del USART 1 modo s ncrono 02modo as ncrono TXEN bit de habilitaci n de trasmi
34. chip 16F88 posee 256 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 FF H El acceso a esta memoria es a trav s de direccionamiento indirecto utilizando 4 de los registros SFR special fuction registers EECONI 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 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 EECON 1 DIRECCION 9CH a EEIF WRERR WREN WR RD 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 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
35. ctiva 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 0BH 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 O 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 16F88 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 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 u
36. de CCPR1L CCPICON 5 4 es un valor de 10 bits con CCP1L aportando los 8 bits m s significativos y 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 16F88 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 Algunas de estas fuentes de interrupci n son La interrupci n externa en el pin RBO INT del chip con flanco ascendente o descendente El overflow en el temporizador 0 el temporizador 1 el temporizador 2 Cuando en 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 por 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 programador debe primeramente leer los registros de status de las interrupci nes habilitadas para conocer cual est a
37. do 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 SISTEMA EB88 Punto Flotante S A 2012 22 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 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 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
38. e 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 16F88 14 5 SLEEP El 16F88 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 16F88 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 14 6 CODE PROTECT El microcontrolador 16F88 cuenta con esta opci n para evitar de ser necesario que alguna persona pueda copiar el c digo del programa contenido en la memoria FLAS
39. e 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 16F88 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 BOREN ON El bit 0 BOR del registro especial PCON es una bandera que indica O ocurri un reset BROWN OUT RESET y 1zno 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 16F88 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 co
40. ichas 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 T0CLK1 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 enton
41. mo 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 0 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 576 ms El TIMEOUT m ximo para el WDT es de 2 3 segundos SISTEMA EB88 Punto Flotante S A 2012 16 Una vez que el WDT est activado a trav s de la instrucci n CLRWDT se reinicia desde 0 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 16F88 el programa se sal
42. n 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 d move f movwf f move w to f movlw k move literal to w clrf f clear f clrw clear w swapf f d swap nibbles in f ARITHMETIC GROUP addwf d add w and f addlw k add literal to w subwf d substract w from f sublw k substract w from literal indf fd increment f incfsz f increment f skip if 0 decf d decrement f decfsz f decrement f skip if 0 LOGIC GROUP andwf d and w and f andlw k and literal to w iorwf fd inclusive or w and f iorlw k inclusive or literal to w xorwf d exclusive or w and f xorlw k exclusive or literal to w comf d complement f rlf d rotate left f through carry rrf d rotate right f through carry BIT GROUP bcf fb bit clear in f bsf fb bit set in f btfsc fb bit test in f skip if clear btfss fb bit test in f skip if set CONTROL GROUP clrwdt clear watchdog timer 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 fb bit test in f skip if clear btfss fb bit test in
43. n 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 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 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 SISTEMA EB88 Punto Flotante S A 2012 14 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 La instrucci n RETFIE habilita de nuevo la bandera GIE 13 Programaci n de la EEPROM La memoria EEPROM residente en el
44. ra 8DBI RBI DATOS 2 1 vi 0 9 D2 RB DATOS i 3INT ConmoldeIntensidad 10DB3 RB DATOS SISTEMA EBSS Punto Flotante S A 2012 19 ASIGNACION DE SE ALES DE LOS PUERTOS A Y B FN LOS CONECTORES DE EVOLUPIC Bootloader 16F88 J2 1 RAI gt RA2 3 RA3 RA4 ko i gt O 2 6 INT 3 ps RS 4 AUX EM 5 EN 6 PBO 7 n PB1 8 3 PB2 9 Y1 PB3 BE 4 RB3 PB5 Ya RB4 PB6 3 1 557 A PB1 E K A X3 RB6 LCD X4 8 RB7 TECLADO CONECTOR DISPLAY LCD A 9 20000000 8l CONTACTOS DEL B7 LEDS B0 RELEVADOR CONECTOR TECLADO sensor de temperatura 1 Sa Ah MICRO O 2 s q SWITCHES 6 39 i E CONECTOR AUXILIAR EE pa PARA EXPANSION S1 m LE 1 CONECTOR DEL BOTON DE RESET CONECTOR ELIMINADOR 9 o DR9 o SISTEMA EB88 Punto Flotante S A 2012 20 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 operandos 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 u
45. registro de opci n REGISTRO OPTION DIRECCION 81H RBPU Bit 7 INTEDG TOCS TOSE PSA PS2 PSI PSO Bit 0 los bits 0 1 y 2 toman un valor del 0 al 7 binario y programan el divisor del temporizador y del WATCH DOG TIMER de acuerdo a la siguiente tabla PS2 PSI PSO DIVISOR TMR0 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 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 T0CK1 del chip 16F88 El bit 5 determina si la fuente de incremento del temporizador es la transici n en el pin RA4 T0CLK1 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 16F88 RBO INT Cuando su valor es de 0 entonces la interrupci n se genera con el flanco descendente de la misma se al SISTEMA EBSS Punto Flotante S A 2012 11 El bit 7 determina cuando su valor es de 1 que las resistencias de PULL UP en las entradas del puerto B estar n DESHABILITADAS Si su valor es de 0 entonces d
46. s un firmware precargado de f brica en la parte alta de la memoria de c digo del 16F88 A trav s del Bootloader y de un software llamado tinybldWin exe se programa en forma r pida y sencilla la memoria FLASH sin necesidad de usar un programador ICSP ni de circuiter a electr nica adicional La programaci n se realiza desde la computadora PC a trav s de un cable serial DB9 DB9 bien por medio de un cable de interfaz USB DB9 cuyo driver de instalaci n crea un puerto virtual COM SISTEMA EBSS Punto Flotante S A 2012 5 El ciclo de m quina del 16F88 El 16F88 puede funcionar con un oscilador interno tambi n puede usarse un cristal externo para aplicaciones que requieran una base de tiempo precisa En el caso de la tarjeta EB88 un cristal externo de 4 MHz se encuentra ya instalado El oscilador principal es dividido entre 4 para 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 para cada ciclo de m quina Q1 Q2 1 Q3 1 Q4 Q1 G2 Q3 Q4 Q1 Q2 Q3 Q4 9501 PAP LIP TT 2 f LL I L l LL Q3 nn r 1 mA Ad Q4 PC X Los y nci X BIal y FIGURA 4 6 Arquitectura del microcontrolador PIC 16F88 El PIC16F88 pertenece al tipo de procesadores con arquitectura Harvard es decir la memoria de datos y de c
47. si n 1 trasmisi n habilitada O trasmisi n deshabilitada TX9 bit de selecci n de formato 1 formato de 9 bits O formato de 8 bits CSRC 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 1 ocurri un error de overrun 0 no hay error de overrun FERR bander ade error de formato 1 ocurri un error de formato 0 no hay error de formato ADEN bit 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 16F88 para funcionar como se ales del USART I habilita USART O deshabilita USART SISTEMA EB88 Punto Flotante S A 2012 12 PROGRAMACION DEL BAUD RATE el baud
48. tros el archivo demof88 TINY hex El archivo HEX contiene solamente el c digo ejecutable que habr de almacenarse en el 16F88 FORMATO DEL ARCHIVO DEMOFSSTINY HEX 020000040000FA 040000008A01042845 08000800831203139813831601 10001000031307309C009D019B018501860183121B 10002000031386018501013086000310860DCA3056 0E003000A000A 100A 10B1A28A00B 1928162869 00000001FF Es importante antes de pasar a explicar el formato del archivo aclarar que la longitud de palabra de las instrucciones en el 16F88 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 8 bits de longitud de tal forma que el n mero total de bytes en el archivo HEX es el doble para el 16F88 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 02 lo cual significa que habr 2 bytes de informaci n En la segunda l nea hay un 04 lo que significa que habr 4 bytes de informaci n En la cuarta un 10 16 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 0008 en la tercera que corresponde a la direcci n n mero
49. ue se encuentre habilitada el contador del programa apuntar a la direcci n 4 La memoria de datos es de localidades de 8 bits e incluye 368 localidades de RAM y 256 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 16F88 Las direcciones disponibles de RAM son BANCO 0 20H A 7FH 96 bytes BANCO 1 AOH a EFH 80 bytes BANCO 2 110H a 16FH 96 bytes y BANCO 3 190 a 1EF 96 bytes Las localidades pueden ser accesadas con direccionamiento directo o indirecto En el siguiente diagrama se muestran los dos tipos de arquitectura usados en computadoras la arquitectura Harvard y la Von Neumann Harvard von Neumann m m U T gt t T Program an Program memory FIGURA 6 8 Registros especiales SER 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 16F88 similares al 16F84 INDF REGISTRO USADO JUNTO CON EL APUNTADOR FSR PARA DIRECCIONAMIENTO INDIRECTO TMRO REGISTRO QUE CONTIENE EL VALOR DEL CONTADOR TEMPORIZADOR 8 BITS
50. uede 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 SOFTWARE Se proporciona junto con el sistema un disco CD Se incluye en dicho disco el programa MPLAB IDE ejecutable desde una PC con cualquier plataforma WINDOWS el cual incluye funciones de editor macroensamblador simulador y compilador de C Tambi n se incluye el software Free Open Source llamado TINY para la programaci n de la memoria FLASH del 16F88 a trav s de su puerto serial RS232 y un firmware precargado llamado Bootloader TINY Decenas de programas ejemplo para prueba u desarrollo de los perif ricos y cada una de las funciones del sistema SISTEMA EBSS Punto Flotante S A 2012 ue E E ea m Wu o 3 2 COMPA 1 SALIDA TEMPORI RADORES ri ZADORES ANALOGICOS 7 CANALES 1 MODULO CONVERS SLAVE 368 BYTES MEMORIA MEMORIA DOR BOOT DE DATOS DE CODIGO LOADER WATCH DOG 256 BYTES DIAGRAMA DE BLOQUES DEL MICROCONTROLADOR 16F 88 3 Definici n de los pines en el 16F88 RA2 AN2 CVref Vref RA3 AN3 CMPI Vref RA4 AN TOCLKI CMP2 MCLR RAS Vpp VSS L RBO INT CCP1 RB1 SDI SDA RB2 RX SDO DT RB3 CCPI PGM 9 URAIANI L RA0 ANO L OSCI CLKIN RA7 LJOSC2 CLKOUT RA6 JVDD RB7 AN6 TLIOSI PGD L RB6 AN5 T1OSO TICLKI PGC U RBS TX
51. ulo 3 Temporizadores de 8 16 bits para la generaci n de retrasos reloj de tiempo real contadores de eventos Puerto serial USART para comunicaci n as ncrona est ndar RS232 con salida de conector DB9 SSP Syncronous Serial Port Puerto serial s ncrono con 2 modos de operaci n SPI Serial Peripheral Interface modos Master Slave e 2C Integrated Integrated Circuit Modo Slave 1 Voltaje de referencia anal gico de salida 2 comparadores anal gicos 1 m dulo de captura comparaci n digital 1 salida especial para generar PWM pulse wide modulation con 10 bits de resoluci n 7 canales de conversi n ADC con 10 bits de resoluci n Conector de 14 pines para conexi n a display LCD de 16 x 1 16 x 2 Conector de 8 pines para teclado matricial de 16 teclas Conector Header auxiliar de 6x para conexi n a interfaces o 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 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 las se ales en los puertos el temporizador y el USART la escritura en la EEPROM En cuanto a su alimentaci n EB88 p
52. x FUNCION PUERTO A RAO PIN 1 ACTIVA DESACTIVA RELEVADOR RAI PIN 3 MICROSWITCH A1 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 B0 TECLADO YI RBI PIN 4 LED B1 TECLADO Y2 RB2 PIN 6 LED B2 TECLADO Y3 RECEPCION SERIAL RX RB3 PIN 8 LED B3 TECLADO Y4 RB4 PIN 10 LED B4 TECLADO XI RB5 PIN 12 LED B5 TECLADO X2 TRASMISION SERIAL TX 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 SISTEMA EBSS Punto Flotante S A 2012 17 MACROS PARA SELECCIONAR EL BANCO BANCOO MACRO BCF STATUS RPO BCF STATUS RPI ENDM BANCOI MACRO BSF STATUS RPO BCF STATUS RPI ENDM PARA INCIALIZAR LOS PUERTOS A Y B RAO SALIDA RA1 RA4 ENTRADAS RBO RB7 SALIDAS BANCOI MOVLW H IE MOVWF TRISA CLRF TRISB BANCO0 15 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 se ales de los puertos est n disponibles en en conector he
Download Pdf Manuals
Related Search
Related Contents
AIRREX AIR CONDITIONER - Ballast Nedam Hama Rossano User Manual FUGABELLA 3-20_es 三重県防災行政無線設備保守点検業務委託特記仕様書 Clou Plastique Ø 90 mm avec catadioptre D-ー02ACM 取扱説明書 Tivoli Data Protection for Informix Installation and User's Guide Copyright © All rights reserved.
Failed to retrieve file