INGENIERIA DE MICROSISTEMAS
PROGRAMADOS S.L.
C/ Alda. Mazarredo Nº 47 - 1º Dpto. 2
48009 BILBAO - BIZKAIA
Tel/Fax: 94 4230651
Email: [email protected]
www.microcontroladores.com
Entrenador para F87X
PIC Laboratory
MANUAL DE USUARIO
Indice de materias
TEMA 1: El Hardware de PIC Laboratory
1.1 INTRODUCCION 1-1
1.2 CARACTERISTICAS 1-2
1.3 ARQUITECTURA DE PIC LABORATORY 1-3
1.3.1 La Fuente de Alimentación 1-3
1.3.2 Los microcontroladores 1-4
1.3.3 El Oscilador 1-6
1.3.4 Las entradas digitales 1-7
1.3.5 El generador analógico 1-8
1.3.6 El generador lógico 1-9
1.3.7 El teclado 1-10
1.3.8 Las salidas digitales 1-12
1.3.9 Salida a display de 7 segmentos 1-13
1.3.10 La pantalla LCD 1-14
1.3.11 El canal serie RS232 1-15
1.3.12 El conector de interface Smart Card 1-17
1.3.13 La tarjeta de memoria Memory Card 1-19
TEMA 2: El monitor PICMOS’7X y el software Real_PIC
2.1 INTRODUCCION 2-1
2.2 EL PICMOS’7X 2-1
2.3 RECURSOS EMPLEADOS POR EL PICMOS’7X 2-1
2.3.1 Restricciones en la memoria FLASH de programa 2-2
2.3.2 Restricciones en la memoria RAM de datos 2-3
2.3.3 Restricciones en la memoria EEPROM de datos 2-3
2.3.4 Restricciones de periféricos 2-4 2.4 SECUENCIA DE INICIO 2-4 2.5 EL SOFTWARE Real_PIC 2-6 2.5.1 El menú principal 2-7 2.5.1.1 Archivo 2-7 2.5.1.2 Edición 2-9 2.5.1.3 Herramientas 2-9 2.5.1.4 Ejecución 2-10 2.5.1.5 Ayuda 2-11 2.5.2 El área de EDITOR 2-11
2.5.3 El área Mem Programa 2-12
Indice de materias
2.5.5 El área RAM de datos 2-14
2.5.6 Operaciones con la tarjeta de memoria “Memory Card” 2-15
2.5.7 Ejecución 2-15
TEMA 3: Módulos OEM y aplicaciones
3.1 INTRODUCCION 3-1 3.2 EL MODULO OEMPICMOS’76 3-1 3.2.1 Esquema eléctrico 3-3 3.2.2 Aplicaciones 3-4 3.3 EL CIP PICMOS’76 3-6 3.4 RESUMEN 3-8
TEMA 4: Tutorial
4.1 INTRODUCCION 4-1 4.2 INSTALACION 4-1 4.3 MANOS A LA OBRA 4-34.3.1 Editando el programa fuente 4-3
4.3.2 Ensamblando 4-4
4.3.3 Grabando el programa 4-5
4.3.4 Ejecutando 4-6
4.3.5 Modificando 4-6
4.4 EDICION DE REGISTROS 4-7
4.4.1 Editando la memoria RAM 4-7
4.4.2 Editando la EEPROM de datos 4-10
4.5 LAS TARJETAS DE MEMORIA 4-11
4.6 EJEMPLOS 4-13
4.6.1 Simple manejo de las E/S 4-13
4.6.2 Función lógica NOT 4-13
4.6.3 Decodificador combinacional 4-13
4.6.4 Automatismo secuencial, simulando una maniobra de torneado 4-14 4.6.5 Automatismo secuencial, simulando una maniobra de taladrado 4-14
4.6.6 Automatismo secuencial, máquina de envasar 4-14
4.6.7 Máquina de envasar, versión mejorada 4-15
4.6.8 Juego de luces 4-15
4.6.9 La interrupción del TMR0 4-15
4.6.10 La interrupción externa RB0/INT 4-16
4.6.11 El display de 7 segmentos 4-16
4.6.12 Decodificador BCD a 7 segmentos 4-17
4.6.13 Contador decimal UP/DOWN 4-17
4.6.15 La memoria EEPROM de datos, la máquina “Su Turno” 4-18
4.6.16 Introducción al manejo de la pantalla LCD 4-18
4.6.17 Seguimos con la pantalla LCD 4-18
4.6.18 Visualizando mas mensajes 4-19
4.6.19 El teclado 4-19
4.6.20 El teclado y el LCD 4-19
4.6.21 Interrupción por cambio de estado 4-20
4.6.22 El TMR1, interrupción periódica 4-20
4.6.23 El TMR1 como contador de eventos externos 4-21
4.6.24 El TMR1 como divisor de frecuencias 4-21
4.6.25 Frecuencímetro 4-21
4.6.26 El TMR2, interrupción periódica 4-22
4.6.27 El TMR2, temporizaciones ajustables 4-22
4.6.28 Capturas con el módulo CCP1, midiendo periodos 4-22
4.6.29 Capturas con el módulo CCP1, midiendo la anchura de un pulso 4-23 4.6.30 Capturas con el módulo CCP1, midiendo el tiempo entre un pulso y el siguiente 4-23 4.6.31 Comparación con el módulo CCP1, contador de eventos ajustable 4-24 4.6.32 Modulación de anchura de pulsos (PWM) mediante el módulo CCP1 4-24
4.6.33 PWM mediante el módulo CCP1, variando la anchura 4-25
4.6.34 El convertidor ADC 4-25
4.6.35 Modulación PWM mediante el convertidor ADC 4-25
4.6.36 El USART, Transmitiendo caracteres 4-26
4.6.37 El USART, recepción/transmisión de caracteres 4-26
4.6.38 Saludos 4-27
4.6.39 Juego, Adivina el número 4-27
ANEXO 1: El módulo LCD
AN1.1 INTRODUCION AN1-1
AN1.2 CONEXIÓN CON “PIC Laboratory” AN1-1
AN1.3 JUEGO DE INSTRUCCIONES AN1-2
AN1.4 JUEGO DE CARACTERES AN1-5
AN1.5 CARACTERES GRAFICOS AN1-6
AN1.6 SECUENCIA DE INICIALIZACION AN1-7
AN1.7 DIAGRAMA DE TIEMPOS AN1-8
AN1.8 RUTINAS DE CONTROL AN1-9
AN1.9 DIMENSIONES DEL MODULO LCD AN1-12
ANEXO 2: CARACTERISTICAS GENERALES DEL PIC16F876/877
AN2.1 INTRODUCCION AN2-1
AN2.2 CARACTERISTICAS GENERALES AN2-1
Indice de materias
AN2.4 ORGANIZACIÓN DE LA MEMORIA FLASH DE PROGRAMA AN2-4
AN2.5 LA MEMORIA RAM DE DATOS AN2-5
AN2.6 CONDICIONES INICIALES TRAS EL RESET AN2-8
Tema 1: El Hardware de PIC Laboratory
1.1 INTRODUCCIONBienvenido al fascinante mundo de los microcontroladores PIC. Ingeniería de Microsistemas Programados
S.L. pone en tus manos el nuevo entrenador “PIC Laboratory”. Se trata de un entrenador diseñado para el
aprendizaje y diseño de aplicaciones con los microcontroladores PIC16F876/877 de Arizona Microchip.
A pesar de pertenecer a la gama media, estos microcontroladores son de los mas potentes y flexibles que hay en el mercado, gracias a la gran cantidad de recursos hardware internos que poseen. Entre estos recursos cabe citar los siguientes:
• Memoria FLASH de programa y EEPROM de datos. Pueden ser borrados y re utilizados en numerosas ocasiones. Disponen también de 368 bytes de RAM para datos de tipo variable.
• Disponen de hasta un máximo de 33 líneas de entrada/salida (en el caso de emplear el PIC16F877). Permiten el control de gran cantidad de periféricos.
• Incluyen circuito conversor A/D con hasta 8 canales de entrada y 10 bits de resolución que permiten procesar variables o señales de tipo analógico.
• Tres circuitos temporizadores o “Timers” totalmente independientes entre sí y con diversos modos de funcionamiento para cada uno de ellos.
• Puerta Serie Síncrona Master (MSSP) que permite el control y conexión con dispositivos SPI e I2C diseñados al efecto.
• Receptor/transmisor universal (USART) que permite comunicaciones serie tanto síncronas como asíncronas.
• Dos circuitos CCP para la captura, comparación y modulación de anchura de pulsos que permiten el diseño de aplicaciones donde se requiera muestreo de señales, medidas y regulación.
• Puerto paralelo esclavo (PSP) de 8 bits que permite rápidas transferencias de información (sólo el PIC16F877).
• Además y, como otros miembros de la numerosa familia PIC, estos dispositivos disponen de temporizador Watchdog, Power On Reset, Power Up Timer, etc.
• Toda la información técnica, “Data Sheets” y notas de aplicación están a disposición de los usuarios en el sitio web que Microchip dispone al efecto: www.microchip.com
El objetivo de Ingeniería de Microsistemas Programados S.L. ha sido desarrollar una herramienta sencilla, potente y de bajo coste que facilite al usuario el aprendizaje y aprovechamiento de todos los recursos anteriormente expuestos.
El resultado de ello es el presente entrenador "PIC Laboratory". Se trata de una herramienta versátil que dispone de gran cantidad de periféricos para el diseño, control y comprobación de aplicaciones así como el soporte necesario para la grabación final del microcontrolador. Posteriormente el usuario podrá incorporar dicho microcontrolador en el hardware propio que haya diseñado al efecto.
Tema 1: El Hardware de PIC Laboratory
1.2 CARACTERISTICAS
Las características más relevantes del entrenador "PIC Laboratory" se muestran a continuación.
• Alimentación única desde un transformador AC/DC de 12V. El entrenador dispone de su propio sistema de rectificación, filtrado y estabilización a +5Vcc.
• Soporta al PIC16F876 o al PIC16F877. El PIC 16F876 viene incorporado de serie. El PIC16F877 es opcional y se puede adquirir por separado. Ambos modelos de PIC vienen grabados de serie con el programa monitor PICMOS’76 o PICMOS’77 que facilita el interface del usuario con el PC.
• Canal serie RS232 a 38.400 baudios para conexión con el PC. El PC dotado del software “Real PIC” incluido en "PIC Laboratory" , permite un cómodo interface con el usuario quien podrá grabar el PIC, ejecutar programas de aplicación, editar/modificar la memoria, etc. • El usuario dispone de 4K de memoria FLASH de programa, 352 bytes de RAM para datos
y 246 de EEPROM para datos no volátiles.
• Alta velocidad de trabajo controlada por cristal de cuarzo a 20 MHz. El tiempo de ejecución es de 200nS por instrucción (excepto las instrucciones de salto que es de 400nS).
• Seis entradas digitales mediante conmutadores deslizantes que están asociadas a las líneas RA0-RA5.
• Dos pulsadores permiten generar la señal RESET de inicio y la de interrupción externa INT.
• Tensión de entrada analógica variable asociada al canal AN0. Esta tensión es seleccionable mediante Jumper y puede proceder de un potenciómetro o bien de un foto transistor sensible a la luz ambiente.
• Generador lógico de frecuencia variable mediante potenciómetro que permite aplicar pulsos de entrada a los diferentes temporizadores/contadores del PIC.
• Teclado matricial de 4 x 4 gobernado desde las líneas RB0-RB7 de la puerta B
• Ocho salidas digitales asociadas a RB0-RB7 y que están representadas mediante diodos leds y display de 7 segmentos.
• Salida a pantalla LCD de 2 x 16 caracteres alfa numéricos.
• Conector de la serie Smart Card de 8 contactos que permite la inserción de tarjetas de memoria externa para salvar aplicaciones y/o tarjetas de expansión vía SPI, I2C, etc.. • Conector de expansión PIC-BUS 2 de 40 pines que transporta todas las señales del PIC y
que permite conectar periféricos externos al "PIC Laboratory" , según las necesidades y aplicaciones del usuario.
• Todos los periféricos que incorpora "PIC Laboratory" pueden ser inhabilitados mediante sus correspondientes jumpers con objeto de que no interfieran con los periféricos externos que pudiera conectar el usuario a través del PIC-BUS 2.
• El "PIC Laboratory" se suministra completamente montado y comprobado e incluye el
cable serie, el microcontrolador 16F876 grabado con el monitor PICMOS’76, disco con ejemplos y el programa de interface Real-PIC. También se incluye el presente manual de usuario.
1.3 ARQUITECTURA DE PIC LABORATORY
En este apartado se explicará la arquitectura completa del entrenador "PIC Laboratory" presentado en la fotografía de la figura 1-1. Mediante los correspondientes esquemas eléctricos el usuario podrá comprender la conexión de los diferentes periféricos de que consta así como las consideraciones que se deben tener sobre los mismos. Estas explicaciones pueden ayudar al usuario ha realizar su propio hardware en sus aplicaciones a medida.
Figura 1-1. Imagen del entrenador "PIC Laboratory" 1.3.1 La Fuente de Alimentación
Se encarga de obtener la tensión general de +5Vcc con la que se alimenta el entrenador "PIC Laboratory" en su totalidad. Su ubicación se muestra en la figura 1-2.
Tema 1: El Hardware de PIC Laboratory
El esquema eléctrico de dicha fuente se presenta en la figura 1-3.
+5Vcc J1 12 VAC INPUT D13 1A - + C13 100uF + C11 100n R3 330 C14 100uF + D10 VCC ON U5 UA7805 IN 1 G N D 2 OUT 3
Figura 1-3. Esquema de la fuente de alimentación
El entrenador "PIC Laboratory" trabaja con una única tensión de alimentación de +5Vcc. Esta se obtiene
en el propio entrenador a partir de una tensión de entrada de 12VAC o de +12VDC que se aplica por el conector J1. El puente D13 formado por 4 diodos se encarga de rectificar la tensión alterna de entrada. Esta se filtra mediante C13 y se estabiliza a +5Vcc mediante el regulador UA7805 (U5). El diodo led D10 monitoriza la tensión de trabajo obtenida.
1.3.2 Los microcontroladores
El sistema es capaz soportar dos modelos de PIC diferentes: el 16F876 de 28 patillas y el 16F877 de 40. tal y como se muestra en la fotografía de la figura 1-4, se puede apreciar que existen sendos zócalos para insertar uno de los dos microcontroladores. El entrenador "PIC Laboratory" incorpora de serie el PIC16F876 que viene grabado con el programa monitor PICMOS’76. En la imagen también se puede apreciar el conector de expansión PIC-BUS 2, gracias al cual el usuario puede conectar los periféricos que le interese en cada aplicación. Ingeniería
de Microsistemas Programados S.L. vende estos dos modelos de PIC grabados con el software que luego se
describe y para identificarlos les denomina PICMOS’76 y PICMOS’77, respectivamente.
El esquema de la figura 1-5 muestra el patillaje de ambos modelos de PIC así como la distribución de señales que transporta el conector de expansión PIC-BUS 2 (J4).
+5Vcc +5Vcc J4 PIC-BUS 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 U2 PICMOS'77 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 15 RC1/TCKO 16 RC2/CCP1 17 RC3/SCK/SCLRC4/SDI/SDA 18 23 RC5/SDORC6/TX 24 25 RC7/RX 26 RB0/INT 33 RB1 34 RB2 35 RB3 36 RB4 37 RB5 38 RB6 39 RB7 40 MCLR 1 OSC1 13 OSC2 14 Vss 12 Vss 31 Vdd 11 Vdd 32 RD7/PSP7 30 RD0/PSP0 19 RD1/PSP1 20 RD2/PSP2 21 RD3/PSP3 22 RD4/PSP4 27 RD5/PSP5 28 RD6/PSP6 29 RE0/AN5/RD 8 RE1/AN6/WRRE2/AN7/SS 9 10 U1 PICMOS'76 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 11 RC1/TCKO 12 RC2/CCP1 13 RC3/SCK/SCLRC4/SDI/SDA 14 15 RC5/SDO 16 RC6/TX 17 RC7/RX 18 RB0/INT 21 RB1 22 RB2 23 RB3 24 RB4 25 RB5 26 RB6 27 RB7 28 MCLR 1 OSC1 9 OSC2 10 Vss 8 Vss 19 Vdd 20 RD0 RB4 RB5 RD5 RA2 RC1 RD6 RD7 RB3 RD1 RC6 RD4 NC RB6 RC7 RB7 RC2 RA5 RA1 RE1 RB1 RD2 RB2 RC3 RE2 RE0 RA4 MCLR RD3 RC5 RB0 NC RC0 RC4 RA0 RA3
Figura 1-5. Conexiones de los PIC y del conector PIC-BUS 2
Las patillas de los microcontroladores PICMOS’76 y PICMOS’77 se corresponden exactamente con el patillaje de los PIC16F876 y 16F877 respectivamente. Están debidamente documentadas en los manuales y Data Sheets de Microchip.
Por su parte el conector PIC-BUS (J4) consiste en un conector macho para cable plano de 40 vías. Pone a disposición del usuario de todas las señales del microcontrolador (excepto OSC1 y OSC2). De esta manera es posible desarrollar hardware a medida de la aplicación y hacerlo funcionar desde el entrenador "PIC Laboratory" .
Tema 1: El Hardware de PIC Laboratory
1.3.3 El oscilador
La sección del oscilador se muestra en la fotografía de la figura 1-6. Consta de un cristal de cuarzo y de dos condensadores.
Figura 1-6. El oscilador
Su esquema eléctrico se muestra en la figura 1-7. Consiste en un cristal de cuarzo de 20MHz y dos condensadores de 27 pF que se conectan a las entradas OSC1 y OSC2 del microcontrolador.
U1 PICMOS'76 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 11 RC1/TCKO 12 RC2/CCP1 13 RC3/SCK/SCLRC4/SDI/SDA 14 15 RC5/SDORC6/TX 16 17 RC7/RX 18 RB0/INTRB1 21 22 RB2 23 RB3 24 RB4 25 RB5 26 RB6 27 RB7 28 MCLR 1 OSC1 9 OSC2 10 Vss 8 Vss 19 Vdd 20 Y 1 20MHz C1 27p C2 27p
Figura 1-7. Esquema eléctrico del circuito oscilador
En el diseño se ha elegido una velocidad de trabajo de 20MHz. El PIC viene programado por defecto con la versión HS de su oscilador. Trabajando a esta velocidad el ciclo de reloj es de 50nS. Teniendo en cuenta que una instrucción se ejecuta siempre en cuatro ciclos de reloj, el tiempo de ejecución o ciclo de instrucción es de 200nS por instrucción. Todas las instrucciones se ejecutan en el mismo lapsus de tiempo excepto todas aquellas que impliquen algún tipo de salto o desplazamiento del PC. En este caso se emplean 2 ciclos de instrucción y tardan en ejecutarse 400nS.
Esta alta velocidad permite un eficaz rendimiento en el trabajo del entrenador "PIC Laboratory". Igualmente el usuario podrá desarrollar aplicaciones que requieran una elevada tasa en su ejecución.
Aunque es relativamente fácil modificar la velocidad por parte del usuario, no se aconseja hacerlo ya que también se modificaría la velocidad de comunicación entre el canal serie de "PIC Laboratory" y el PC con su software de interface Real-PIC.
1.3.4 Las entradas digitales
Básicamente están formadas por 6 interruptores deslizantes y dos pulsadores, tal y como se muestra en la figura 1-8.
Figura 1-8. Las entradas digitales
Tal y como se puede apreciar en el esquema de la figura 1-9, los interruptores SW1-SW6 están asociados respectivamente a las líneas RA0-RA5. Por su parte el pulsador SW7 puede emplearse para provocar la interrupción externa INT asociada a la línea RB0/INT del PIC. Finalmente el pulsador SW8 provoca, al accionarlo, un RESET general del sistema. En este caso el PIC inicia la ejecución del programa monitor PICMOS’XX con el que viene grabado de serie.
+5Vcc
+5Vcc +5Vcc
T0CKI
RA0 AN0 RA4
INT RB0 Desde la entrada analógica Desde el generador lógico Línea de E/S general SW4 RA3 SW5 RA4 SW1 RA0 R34 4K7 R38 4K7 SW3 RA2 R37 4K7 SW2 RA1 R33 4K7 R36 4K7 R35 4K7 JP5 JP6 R21 220 R20 220 R19 220 R18 220 R17 220 SW6 RA5 R22 220 U1 PICMOS'76 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 11 RC1/TCKO 12 RC2/CCP1 13 RC3/SCK/SCLRC4/SDI/SDA 14 15 RC5/SDORC6/TX 16 17 RC7/RX 18 RB0/INTRB1 21 22 RB2 23 RB3 24 RB4 25 RB5 26 RB6 27 RB7 28 MCLR 1 OSC1 9 OSC2 10 Vss 8 Vss 19 Vdd 20 SW7 RB0/INT RESET SW8 JP4 R23 470 R0 100 R25 470 R42 47K RA5 RA4 RA3 RA2 RA1 RA0
Tema 1: El Hardware de PIC Laboratory
Por su parte la línea RA0 puede actuar como entrada analógica AN0. El usuario puede seleccionar, mediante el jumper JP5 si esta señal procede del interruptor SW1 (entrada digital) o bien del generador de tensión analógica (entrada analógica AN0).
De la misma forma, la entrada RA4 puede actuar como entrada de pulsos para el TMR0 del PIC (T0CKI). El usuario puede seleccionar, mediante el jumper JP6 si esta señal procede del interruptor SW5 (entrada digital) o bien desde el generador lógico (entrada de pulsos T0CKI).
La línea RB0 puede actuar como entrada/salida digital o bien como entrada de interrupción externa INT. En este caso la interrupción es sensible al flanco descendente cada vez que se acciona el pulsador SW7. El jumper JP4 permite seleccionar una de las dos modalidades.
Las resistencias pull-up y pull-down asociadas a los interruptores SW1-SW6 permiten que las señales RA0-RA5 procedan de otros periféricos externos sin que el estado lógico de dichos interruptores prevalezca sobre las señales generadas por esos periféricos.
1.3.5 El generado analógico
Con objeto de poder experimentar con el convertidor AD que integran los PIC16F87X, el entrenador "PIC
Laboratory" dispone de dos generadores de tensión variable que permiten el estudio, diseño y comprobación de
aplicaciones relacionadas con medidas y procesos de variables analógicas. Se pueden apreciar en la figura 1-10.
Figura 1-10. Los generadores de tensión analógica variable
Tal y como se muestra en el esquema eléctrico de la figura 1-11 se puede comprobar que es un circuito muy simple.
La señal RA0/AN0 del PIC puede, al igual que otras señales, programarse como entrada digital (RA0) o entrada analógica (AN0). Además el usuario puede y debe seleccionar el origen de esa señal mediante el jumper JP5. Cuando se coloca en la posición RA0 la señal aplicada al PIC procede del interruptor SW1 como ya se explicó anteriormente. Se supone que dicho PIC ha sido programado para que RA0 actúe como entrada digital. Si el jumper se coloca en la posición AN0 la señal que entra a la patilla 2 del PIC procede de uno de los dos generadores analógicos disponibles en "PIC Laboratory".
Uno de los generadores analógicos está formado por el foto transistor BPW40 (Q1). Este mide la luz ambiente que incide sobre él y genera una tensión analógica proporcional (VA1). El otro generador es un simple potenciómetro (P1) que proporciona la tensión VA2 en función del recorrido de su cursor. Mediante el jumper JP7 se selecciona entre VA1 y VA2 como señal de entrada al canal 0 del PIC (AN0).
+5Vcc RA0 RA4 AN0 VA1 VA2 Desde el interruptor SW1 JP5 JP7 R40 10K R1 100 Q1 BPW40 1K P1 U1 PICMOS'76 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 11 RC1/TCKO 12 RC2/CCP1 13 RC3/SCK/SCLRC4/SDI/SDA 14 15 RC5/SDORC6/TX 16 17 RC7/RX 18 RB0/INTRB1 21 22 RB2 23 RB3 24 RB4 25 RB5 26 RB6 27 RB7 28 MCLR 1 OSC1 9 OSC2 10 Vss 8 Vss 19 Vdd 20 RA0
Figura 1-11. Esquema eléctrico de los generadores analógicos 1.3.6 El generador lógico
Algunas de las funciones implementadas en los PIC requieren de una señal externa que pueda ser empleada como entrada para los distintos circuitos contadores, de captura y de comparación. El entrenador "PIC
Laboratory" dispone de un sencillo pero eficaz generador lógico que proporciona una señal de onda cuadrada
asimétrica y con una frecuencia ajustable entre 1 y 150 Hz aprox. Mediante su empleo el usuario podrá realizar numerosas experiencias relativas a contar pulsos, medir la anchura de los mismos, periodos, etc. Se puede observar en la figura 1-12.
Figura 1-12. El generador lógico
La figura 1-13 muestra el esquema eléctrico del generador lógico del entrenador "PIC Laboratory". Está construido en torno al popular Timer 555 trabajando como multivibrador inestable.
Mediante el potenciómetro P2 se ajusta la frecuencia de la señal de salida, presente en la patilla 3 del NE555 (U4), en un rango que va desde 1 hasta 150Hz aproximadamente. El diodo led D8 da una idea visual de la frecuencia de salida.
Tema 1: El Hardware de PIC Laboratory
Dicha frecuencia se aplica a los jumpers JP6, JP8 y JP9 que el usuario manipulará según le convenga. Cerrando JP6 con la posición T0CKI la señal de salida del generador se aplica a la entrada RA4/T0CKI. Esto permite desarrollar aplicaciones en las que el TMR0 del PIC trabaje como contador de eventos externos.
+5Vcc T0CKI RA4 T1CKI CCP1 Desde el interruptor SW5 JP6 JP8 JP9 U4 NE555 TR 2 CV 5 Q 3 DIS 7 THR 6 R 4 C3 10n R2 100 P2 1M R41 10K C12 1000n D8 GEN.ON R12 330 C4 100n U1 PICMOS'76 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 11 RC1/TCKO 12 RC2/CCP1 13 RC3/SCK/SCLRC4/SDI/SDA 14 15 RC5/SDORC6/TX 16 17 RC7/RX 18 RB0/INTRB1 21 22 RB2 23 RB3 24 RB4 25 RB5 26 RB6 27 RB7 28 MCLR 1 OSC1 9 OSC2 10 Vss 8 Vss 19 Vdd 20
Figura 1-13. Esquema eléctrico del generador lógico
Si se cierra el jumper JP8 la salida del generador va a parar a la entrada RC0/T1CKI lo que igualmente permite el desarrollo de aplicaciones en las que el TMR1 del PIC actúe como contador de eventos externos o bien con base de tiempos externa para las temporizaciones.
Mediante el jumper JP9 se aplica, si se cierra, señal a la patilla RC2/CCP1. De esta forma es posible emplear el módulo CCP1 del PIC para realizar aplicaciones de captura y comparación de pulsos externos, medir la anchura de estos, el periodo, etc.
Por último cabe indicar que, si los tres jumpers mencionados quedan abiertos, la salida del generador se inutiliza. Las respectivas patillas del PIC quedan libres para otra tipo de aplicaciones.
1.3.7 El teclado
Tal y como se muestra en la fotografía de la figura 1-14, el entrenador "PIC Laboratory" va provisto de un teclado matricial de 16 teclas. Se trata del periférico de entrada por excelencia que va a permitir introducir todo tipo de datos para su posterior procesamiento.
El control del mismo va suponer tener que utilizar una serie de técnicas y conceptos que se emplean en las más diversas aplicaciones de tipo industrial y comercial. Manejar conceptos tales como “barrido del teclado”, “tecla pulsada”, “interrupción al pulsar”, “rebotes”, etc., darán la posibilidad al usuario de acometer ambiciosos proyectos de carácter profesional.
Figura 1-14. Imagen del teclado de "PIC Laboratory"
Un dato a tener en cuenta es que, a pesar de tener 16 teclas, tan sólo son necesarias 8 líneas del microcontrolador para su total control. Ello es debido a su distribución matricial. En el caso que nos ocupa el teclado está conectado a las 8 líneas de la puerta B (RB0-RB7) tal y como se muestra en el esquema eléctrico de la figura 1-15. R27-R30 4x2K2 U1 PICMOS'76 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 11 RC1/TCKO 12 RC2/CCP1 13 RC3/SCK/SCLRC4/SDI/SDA 14 15 RC5/SDO 16 RC6/TX 17 RC7/RX 18 RB0/INT 21 RB1 22 RB2 23 RB3 24 RB4 25 RB5 26 RB6 27 RB7 28 MCLR 1 OSC1 9 OSC2 10 Vss 8 Vss 19 Vdd 20 SW9 SECME ECO 16250 06_2 1 2 3 A 4 5 6 B 7 8 9 C * 0 # D C0 C1 C3 F1 F2 F3 C2 F0 C0 1 C1 2 C2 3 C3 4 F0 5 F1 6 F2 7 F3 8 RB3 RB1 RB2 RB0 RB7 RB6 RB4 RB5
Figura 1-15. Esquema de conexiones del teclado
Está organizado en 4 filas (F0-F3) que se conectan a RB4-RB7 y otras 4 columnas (C0-C3) que se conectan a RB0-RB3. La intersección fila-columna da lugar a una tecla en concreto. Es decir, si se pulsa por ejemplo la tecla 4, supone unir eléctricamente la fila F1 con la columna C0, que es tanto como decir que las líneas RB0 y RB5 del PIC se han unido.
La rutina software encargada de explorar el teclado tiene que determinar qué tecla se ha pulsado. Para ello, por ejemplo, configura las líneas RB0-RB3 (las columnas) como salidas y RB4-RB7 (las filas) como entradas. Secuencialmente va activando cada una de las columnas al tiempo que lee el estado de las filas. Cuando se detecta que una fila esté activada es porque se pulso una tecla. Basta conocer qué columna se activó en ese momento para sacar la relación fila-columna que define a cada tecla. Esta tarea conocida como “barrido del
teclado” ha de repetirse de forma constante y periódica. De esta manera y, a la velocidad de trabajo del PIC, será
Tema 1: El Hardware de PIC Laboratory
Haciendo uso de algunas de las prestaciones que ofrece un PIC, es posible desarrollar rutinas más sofisticadas y eficaces. Efectivamente, programando los registros oportunos de un PIC podemos hacer que las entradas RB4-RB7 (las filas) se conecten a unas resistencias pull-up internas que hacen que esas líneas, en estado de reposo, estén a nivel “1”. Por otra parte también podemos habilitar la interrupción por cambio de estado en cualquiera de esas líneas de entrada.
Al mismo tiempo, las salidas RB0-RB3 (las columnas) las ponemos a nivel “0”. Esta situación de reposo se mantiene en caso de no pulsarse ninguna tecla. El microcontrolador puede dedicarse a otras tareas o quedarse en standby reduciendo el consumo hasta que haya un suceso. Dicho suceso puede ser la pulsación de cualquier tecla. Efectivamente, puesto que RB0-RB3 (columnas) están a “0” y RB4-RB7 (filas) están a nivel “1” gracias a las resistencias pull-up internas, cuando se pulse cualquier tecla se produce una interrupción por cambio de estado en cualquiera de las líneas RB4-RB7 (filas).
Esa interrupción provoca el fin del standby (wake-up) y la inmediata atención al programa de tratamiento que se encargará de averiguar qué tecla se pulsó.
1.3.8 Las salidas digitales
Están formadas por un conjunto de 8 diodos tipo led que sirven para representar el estado lógico de las líneas a las que estén conectados. Ver la figura 1-16.
Figura 1-16. Las salidas digitales
En el entrenador "PIC Laboratory" esos leds están conectados a las 8 líneas de la puerta B (RB0-RB7) que son líneas de propósito general. El esquema de la figura 1-17 muestra las conexiones eléctricas.
R4-R11 8x330 RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 INT RB0 D1 D2 D3 D4 D5 D6 D7 Desde el pulsador SW7 JP1 LED ON JP4 U1 PICMOS'76 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 11 RC1/TCKO 12 RC2/CCP1 13 RC3/SCK/SCL 14 RC4/SDI/SDA 15 RC5/SDO 16 RC6/TX 17 RC7/RX 18 RB0/INT 21 RB1 22 RB2 23 RB3 24 RB4 25 RB5 26 RB6 27 RB7 28 MCLR 1 OSC1 9 OSC2 10 Vss 8 Vss 19 Vdd 20 RB1 RB2 RB3 RB4 RB5 RB6 RB7 RB0
Las líneas de salida de un PIC pueden activar directamente cargas de hasta 25mA. Sin necesidad de una circuitería adicional las líneas de la puerta B activan directamente a los leds asociados a través de sendas resistencias de absorción.
Un nivel lógico “1” por cualquiera de esas líneas provoca el encendido del led correspondiente. Un nivel “0” lo apaga. Es una forma muy simple y económica de reflejar el estado binario de las líneas de salida, donde cada led simula la carga que se desea controlar.
Abriendo el jumper JP1 todos los cátodos de los leds quedan desconectados. De esta manera las líneas de la puerta B quedan libres y se evita un consumo extra, pudiendo ser empleadas por los periféricos que el usuario de "PIC Laboratory" desee conectar a través del PI-BUS 2.
Según la posición en que se cierre el jumper JP4 la línea RB0/INT puede ser empleada como línea de E/S de propósito general o bien como entrada de interrupción externa INT activada desde el pulsador SW7.
1.3.9 Salida a display de 7 segmentos
Como periférico destacado, el entrenador "PIC Laboratory" incluye el clásico display de 7 segmentos como el que se muestra en la fotografía de la figura 1-18.
Figura 1-18. El display de 7 segmentos
Se trata de un periférico de salida que permite la visualización de valores numéricos. Tal y como se muestra en el esquema de la figura 1-19, los segmentos del display están también conectados a las 8 líneas de la puerta B (RB0-RB7). Se trata de un display de cátodo común. Cada uno de los segmentos, que a efectos prácticos consisten en diodos led, necesita un nivel lógico “1” en la salida correspondiente, para su correcta iluminación.
El usuario tiene control sobre cada segmento individual y pude visualizar cualquier tipo de símbolo que el display sea capaz de representar. También puede diseñar las clásicas rutinas de conversión BCD a 7 segmentos para poder hacer representaciones numéricas.
Tanto las salidas digitales como los segmentos del display están conectados en paralelo a las mismas líneas de la puerta B y a las mismas resistencias de absorción. Mediante el jumper JP2 se puede desconectar el display cuando no vaya a emplearse evitando así un consumo extra sobre las líneas RB0-RB7.
Tema 1: El Hardware de PIC Laboratory
R4-R11 8x330 INT RB0 Desde el pulsador SW7 JP4 U7 SC43-11HWA a b c d e f g dp cc 1 13 10 8 7 2 11 9 14 JP2 DISPLAY ON U1 PICMOS'76 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 11 RC1/TCKO 12 RC2/CCP1 13 RC3/SCK/SCL 14 RC4/SDI/SDA 15 RC5/SDO 16 RC6/TX 17 RC7/RX 18 RB0/INT 21 RB1 22 RB2 23 RB3 24 RB4 25 RB5 26 RB6 27 RB7 28 MCLR 1 OSC1 9 OSC2 10 Vss 8 Vss 19 Vdd 20 RB2 RB3 RB4 RB5 RB6 RB7 RB1 RB0Figura 1-19. Conexión eléctrica del display a 7 segmentos 1.3.10 La pantalla LCD
Se trata de uno de los periféricos más versátiles e interesantes que dispone el entrenador "PIC
Laboratory". Se presenta en la figura 1-20 y es capaz de visualizar dos líneas de 16 caracteres alfanuméricos cada
una.
Figura 1-20. La pantalla LCD
Este potente periférico de salida va a permitir representar cualquier tipo de mensaje compuesto de letras, números y símbolos produciendo además diferentes efectos de visualización como desplazamientos a izquierda y derecha, parpadeos, scrolls, etc.
La transferencia de información entre la pantalla LCD y el microcontrolador se realiza en paralelo en conjuntos de cuatro u ocho bits. En el entrenador "PIC Laboratory" las transferencias se realizan en 8 bits, es por ello que las 8 líneas de datos del módulo LCD se conectan con las 8 líneas RB0-RB7 de la puerta B, tal y como se muestra en el esquema de conexiones de la figura 1-21.
+5Vcc R39 10K JP3 LCD ON R26 1K U1 PICMOS'76 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 11 RC1/TCKO 12 RC2/CCP1 13 RC3/SCK/SCL 14 RC4/SDI/SDA 15 RC5/SDO 16 RC6/TX 17 RC7/RX 18 RB0/INT 21 RB1 22 RB2 23 RB3 24 RB4 25 RB5 26 RB6 27 RB7 28 MCLR 1 OSC1 9 OSC2 10 Vss 8 Vss 19 Vdd 20 U6 LCD-WM-C1602 D0 D1 D2 D3 D4 D5 D6 D7 VSS VCC VEE RS R/W E MODULO LCD 2 x 16 7 8 9 10 11 12 13 14 1 2 3 4 5 6 RB6 RB3 RB4 RB1 RA1 RB0 RB5 RB2 RB7 RA2
Figura 1-21. Conexiones eléctricas entre el módulo LCD y el PIC
A través de la puerta B el PIC transfiere tanto los códigos ASCII de los caracteres a visualizar como los códigos de instrucción gracias a los cuales se establecen diferentes modos de visualización sobre la pantalla. El estado interno de ésta también puede ser leído a través de la misma puerta del PIC. De este modo el microcontrolador puede conocer si la pantalla está o no ocupada, la posición actual del cursor, el carácter que hay en dicha posición, etc.
Además de la puerta B de datos, se emplean otras 3 señales de control. Mediante la señal RS conectada a RA1 el PIC indica si está enviando un código ASCII de datos o un código de instrucción. Con la señal R/W conectada a RA2 el PIC establece si va a escribir datos/instrucciones o bien si va a leer el estado interno de la pantalla. Finalmente mediante la señal E conectada a RA3 mediante el jumper JP3 el PIC habilita o no el funcionamiento general del módulo. Cuando esta señal se pone a nivel “0”, el módulo LCD queda desconectado en estado de alta impedancia. En esta situación todas las líneas pueden ser empleadas por otros periféricos.
Si el usuario deja abierto el jumper JP3 la señal E de habilitación queda permanentemente a nivel “0” gracias a la resistencia pull-down R39. En este caso la pantalla queda desconectada y en alta impedancia independientemente del nivel lógico presente en RA3.
Por las patillas 1 y 2 del módulo se aplica la tensión de alimentación de +5Vcc que alimenta a toda la electrónica interna del mismo. Por la patilla 3 (VEE) se puede aplicar una tensión variable entre 0 y +5Vcc que permite ajustar el contraste de la pantalla. En el caso de "PIC Laboratory" se ha puesto a tierra a través de la resistencia R26 de 1K con la que se consigue un buen contraste. Variando el valor de la resistencia se puede variar el mismo.
En el ANEXO 1 del presente manual de usuario se proporcionan más detalles técnicos de la pantalla LCD así como una serie de rutinas genéricas que permiten al usuario el desarrollo de sus propias aplicaciones.
1.3.11 El canal serie RS232
El entrenador "PIC Laboratory" incorpora los circuitos necesarios para adaptar niveles lógicos a niveles
RS232, con lo que se dispone así de un canal serie. Es posible por tanto, que el usuario pueda diseñar aplicaciones relacionadas con la comunicación serie y, conectar "PIC Laboratory", con un PC, un terminal, modem, impresora, etc. Se muestra en la figura 1-22.
Tema 1: El Hardware de PIC Laboratory
Figura 1-22. El canal serie RS232
El mircocontrolador que incorpora el entrenador "PIC Laboratory" viene grabado de fábrica con el sistema operativo denominado PICMOS’xx y que se explicará en el TEMA 2 del presente manual. Este sistema operativo emplea el canal serie para comunicarse con un PC dotado del software Real-PIC también incluido. Entre ambos se dispone de una potente herramienta con la que el usuario podrá descargar sus aplicaciones sobre el PIC, ejecutarlas, visualizar/modificar registros de RAM, de EEPROM y mucho más.
En la figura 1-23 se muestra el esquema eléctrico de conexiones entre el PIC y el canal serie. El circuito de adaptación de niveles está basado en el popular MAX232 (U3). Este circuito de alimentación única y con muy pocos componentes externos es capaz de obtener niveles RS232 de ± 12V a partir de niveles lógicos TTL y viceversa.
El conector J2 de comunicaciones consiste en un conector DB9 hembra estándar que se conecta directamente al puerto serie del PC mediante el correspondiente cable (incluido). Por su patilla 3 (TxD) se reciben los datos que transmite el PC. Estos se convierten a niveles TTL y se aplican al PIC por la patilla RC7/RX. El PIC transmite datos por la patilla RC6/TX que, convertidos a niveles RS232, llegan al PC por la patilla 2 (RxD) del conector J2.
El programa Real-PIC del PC puede provocar un RESET al entrenador "PIC Laboratory". Efectivamente, esto ocurre cuando se activa la señal de la patilla 7 de J2 (RTS). Una vez convertida a nivel TTL, esa señal se aplica mediante D14 y R24 a la patilla MCLR del PIC reiniciando todo el sistema.
Los diodos led D11 y D12 se iluminan mostrando actividad por el canal serie tanto durante la transmisión como durante la recepción de datos.
+5Vcc +5Vcc +5Vcc Red Green TxD RxD RxD TxD RTS CTS U3 MAX232 V+ 2 T1IN 11 T1OUT 12 T2IN 10 T2OUT 9 C1+ 1 C1-3 C2- 5 C2+ 4 R2IN 8 R2OUT 7 R1IN 13 R1OUT 14 V- 6 VCC 16 GND 15 C8 100n C5 100n C9 100n R24 470 R25 470 R42 47K D14 1N4148 SW8 RESET R16 330 D12 TxD R14 330 C6 100n R15 330 J2 RS-232 5 9 4 8 3 7 2 6 1 D11 RxD U1 PICMOS'76 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 11 RC1/TCKO 12 RC2/CCP1 13 RC3/SCK/SCL 14 RC4/SDI/SDARC5/SDO 15 16 RC6/TX 17 RC7/RX 18 RB0/INTRB1 21 22 RB2 23 RB3 24 RB4 25 RB5 26 RB6 27 RB7 28 MCLR 1 OSC1 9 OSC2 10 Vss 8 Vss 19 Vdd 20 C7 100n MCLR RC7 RC6
Figura 1-23. Esquema de conexiones del canal serie RS232 1.3.12 El conector de interface smart card
El entrenador "PIC Laboratory" está dotado de un conector smart card éstándar de 8 pines que permite
otra forma de expansión además del conector PIC-BUS 2 ya estudiado. Este conector está situado debajo del teclado tal y como se muestra en la fotografía de la figura 1-24.
Figura 1-24. El conector Smart Card
Se trata de un conector estándar que admite tarjetas chip de tamaño normalizado. Efectivamente, se trata de otra forma de expansión del entrenador que abre numerosas posibilidades y aplicaciones. Tal y como se muestra en la figura 1-25 podremos conectar tarjetas de expansión de memoria donde poder almacenar datos y
Tema 1: El Hardware de PIC Laboratory
programas, tarjetas de expansión de periféricos que permita trabajar con diferentes dispositivos, tarjetas chip o tarjetas monedero con las cuales desarrollar distintas aplicaciones, tarjetas de diseño propio que incorporen aquellos elementos específicos que deseemos gobernar, etc.
Figura 1-25. Expansión de "PIC Laboratory" mediante diferentes tipos de tarjetas
La figura 1-26 muestra el esquema de conexiones eléctricas entre el PIC y el conector smart card J3. Un simple análisis de las señales que transporta nos permite apreciar que corresponden con las 6 líneas de menos peso de la puerta C (RC0-RC5). Estas líneas en principio son líneas de E/S de propósito general y a disposición del usuario. +5Vcc R32 +5Vcc 2K2 R31 2K2 D9 BUS BUSY R13 330 SW10 CARD ON J3 INTERFACE CARD 1 2 3 4 5 6 7 8 U1 PICMOS'76 RA0/AN0 2 RA1/AN1 3 RA2/AN2 4 RA3/AN3 5 RA4/T0CKI 6 RA5/AN4 7 RC0/TCKI 11 RC1/TCKO 12 RC2/CCP1 13 RC3/SCK/SCL 14 RC4/SDI/SDARC5/SDO 15 16 RC6/TX 17 RC7/RX 18 RB0/INTRB1 21 22 RB2 23 RB3 24 RB4 25 RB5 26 RB6 27 RB7 28 MCLR 1 OSC1 9 OSC2 10 Vss 8 Vss 19 Vdd 20 RC1 RC3 RC5 RC2 RC4 RC0
Figura 1-26. Conexiones eléctricas del conector smart card
Si entramos en detalle podemos apreciar que las líneas RC3, RC4 y RC5 corresponden con las señales SCK, SDI y SDO empleadas por el estándar del bus SPI, y/o también se corresponden con las señales SCL y SDA correspondientes al estándar del bus I2C. El control de ambos buses está implementado en el propio hardware de los microcontroladores PIC16F876 y 16F877 que admite el entrenador "PIC Laboratory".
Si añadimos el echo de que la mayoría de las tarjetas chip existentes así como gran cantidad de dispositivos, se gobiernan mediante el protocolo SPI o I2C, es fácil intuir las grandes posibilidades de expansión y de aplicación del entrenador.
La distribución de las señales sobre el conector smart card J3 se ha hecho de acuerdo con la distribución de los pines de las tarjetas más empleadas. Así, por la patilla 1 se introduce la tensión +5Vcc de alimentación. Esta tensión se aplica a través del interruptor SW10 que está situado físicamente sobre el propio conector y cuyos contactos se cierran cada vez que se introduce una tarjeta. La patilla 5 corresponde con tierra o GND.
La patilla 3 está conectada con RC3/SCK/SCL. Por esta patilla se aplica la señal de reloj necesaria en la mayor parte de tarjetas existentes. Esta señal de reloj la puede generar el PIC trabajando en el modo SPI o I2C.
La señal presente en la patilla 7 está conectada con RC4/SDI/SDA. Corresponde con la entrada de datos (SDI) para tarjetas SPI o similares. También puede ser una señal bi-direccional de entrada/salida de datos (SDA) empleada por los dispositivos con protocolo I2C.
En la patilla 2 disponemos de la señal RC5/SD0. Corresponde con la salida de datos (SDO) de tarjetas controladas mediante protocolo SPI o similares.
Finalmente las patillas 8, 6 y 4 del conector smart card transportan las señales RC0, RC1 y RC2 del PIC. En principio no tienen ninguna asignación concreta por lo que el usuario las puede emplear o no según su propio criterio. No obstante algunas tarjetas chip pueden necesitar señales auxiliares como RESET, habilitación, bussy, etc. que pueden ser generadas fácilmente, con el software adecuado, empleando las mencionadas RC0, RC1 y RC2.
1.3.13 La tarjeta de memoria Memory Card
Con objeto de almacenar sobre una memoria externa los programas de aplicación del usuario, Ingeniería
de Microsistemas Programados S.L. pone a su disposición la tarjeta de memoria “Memory Card” que se presenta
en la figura.
Figura 1-27. Las tarjetas Memory Card
Se basan en la memoria EEPROM 24LC64 de 64Kbits de capacidad de almacenamiento. En esta memoria es posible almacenar los 4K de memoria de programa disponibles para el usuario en los microcontroladores PIC16F876 y 16F877 dotados del sistema operativo PICMOS’7X y soportados por el entrenador "PIC Laboratory".
La figura 1-28 muestra el esquema eléctrico de la tarjeta. El conector J1 corresponde con el conector Smart Card del entrenador y contiene las señales RC0-RC6 del PIC así como las de alimantación de +5Vcc. Algunas de estas señales se emplean en el bus I2C para el control de la memoria 24LC64 (U1).
Tema 1: El Hardware de PIC Laboratory
+5Vcc J2 INTERFACE + 1 + 3 + 5 + 7 + 9 + 2 + 4 + 6 + 8 + 10 C1 100n U1 24LC64 A0 1 A1 2 A2 3 GND 4 SDA 5 SCL 6 TESTVCC 7 8 J1 SMART-CARD 1 2 3 4 5 6 7 8 RC0 RC1 RC5 RC3 RC2 RC0 RC3 RC5 RC4 RC2 GND RC4 RC1 VccFigura 1-28. Esquema de la tarjeta de memoria Smart Card
Sobre la propia tarjeta se puede incluir un conector macho de 2x5 vías (J2) con objeto de que todas las líneas disponibles en el Smart Card (RC0-RC6 y alimentación de +5Vcc) queden a disposición del usuario para sus propios usos.
Tema 2: El monitor PICMOS’7X y el software Real_PIC
2.1 INTRODUCCIONLos microcontroladores PIC con que van dotados tanto el entrenador "PIC Laboratory" como el módulo OEMPICMOS’76, vienen grabados de serie con un programa monitor denominado PICMOS (Microsystems Operating System). Este programa monitor aprovecha las prestaciones de los potentes PIC16F876 y 16F877 de 28 y 40 patillas respectivamente. Estos chips los denominaremos comercialmente PICMOS’76 y PICMOS’77 por el sistema operativo que contienen.
El programa monitor está diseñado para trabajar conjuntamente con un software para PC denominado “Real_PIC”. Entre ambos se crea una plataforma que proporciona al usuario las clásicas herramientas que facilitan la edición, ensamblado y grabación de sus programas de aplicación para este tipo de microcontroladores.
El presente tema está destinado a explicar las posibilidades que ofrece el sistema operativo PICMOS’7X así como el manejo del software “Real_PIC” para PC con objeto de que el usuario disponga de un cómodo entorno de trabajo en el desarrollo de sus programas.
2.2 EL PICMOS’7X
Sistema operativo o monitor integrado en los PIC 16F87X. Aunque son prácticamente iguales, existen dos versiones. La versión PICMOS’76 se integra en los modelos PIC16F876 de 28 patillas, mientras que PICMOS’77 se integra en los modelos PIC16F877 de 40.
Este programa monitor está pensado para trabajar conjuntamente con un ordenador PC dotado del software Real_PIC. La comunicación se realiza a través de un canal serie estándar y entre ambos se crea una plataforma o entorno de trabajo que ofrece las siguientes prestaciones:
• Velocidad de comunicación a 38400 baudios. Permite una rápida carga y descarga de programas desde el PC al PIC y viceversa.
• Sincronización automática entre el monitor PICMOS’7X y el software “Real_PIC” del PC.
• Edición de programas fuente *.ASM.
• Acceso directo al ensamblador MPASMWIN de Microchip.
• Lectura/escritura (grabación) de la memoria de programa del usuario del PIC.
• Lectura y edición de la memoria RAM de datos del PIC a nivel de bytes o de bloques. • Lectura y edición de la memoria EEPROM de datos del PIC a nivel de bytes o de
bloques.
• Ejecución de los programas de aplicación del usuario.
• Gestión de las tarjetas Memory Card para el almacenamiento y recuperación de programas.
Tema 2: El monitor PICMOS’7X y el software Real_PIC
El programa monitor PICMOS’7X hace uso de algunos de los recursos internos del PIC para su correcto funcionamiento. Es por ello que el usuario tiene restringidas ciertas características y prestaciones del PIC que lo contiene.
2.3.1 Restricciones en la memoria FLASH de programa
La figura 2-1 muestra el mapa de la memoria de programa de los PIC16F87X dotados del monitor PICMOS’7X.
Figura 2-1. La memoria de programa
Los PIC de la familia 16F87X disponen de un total de 8K de memoria FLASH de programa 0x0000-0x1FFF. Las direcciones 0x0000-0x0003 (4) están reservadas para el vector de arranque del sistema. Los últimos 4 K comprendidos desde las direcciones 0x1000-0x1FFF contiene el programa monitor PICMOS’7X. Se trata del núcleo del sistema operativo que realiza todas las funciones relacionadas con la depuración y puesta a punto de las aplicaciones. Comunica con el PC y el software Real_PIC diseñado al efecto.
Este programa monitor está grabado de serie y en ningún caso debe ser modificado ni borrado por el usuario, de lo contrario todas las funciones operativas del PICMOS’7X pueden quedar inutilizadas de forma permanente.
El área libre a disposición del usuario está comprendida entre las direcciones 0x0004-0x0FFF. Este es un área de 4K totalmente libre donde el usuario podrá descargar sus programas de aplicación. En esta área está incluida la posición 0x0004 que contiene el vector de interrupción para aquellas aplicaciones que así lo requieran.
Al tratarse de una memoria tipo FLASH el usuario puede utilizarla en numerosas ocasiones con distintos programas de aplicación. Microchip cifra en unos 1000, los ciclos de borrado y grabación que esta memoria es capaz de soportar.
2.3.2 Restricciones de la memoria RAM de datos
El programa monitor PICMOS’7X emplea también algunas posiciones de memoria RAM donde guarda sus propias variables de trabajo. La figura 2-2 muestra el mapa de memoria con los diferentes bancos.
Figura 2-2. El mapa de memoria RAM
El sistema de memoria RAM de datos de los PIC de la serie 16F87X está organizado en 4 bancos de hasta 128 bytes cada uno. En todos los bancos nos encontramos registros de funciones especiales (SFR), algunos incluso repetidos. Los registros SFR permiten el gobierno de todos los recursos hardware internos del microcontrolador, conocer su estado, habilitar interrupciones, etc. No todas las posiciones de los rangos destinados a los registros SFR están ocupadas por estos últimos. Algunas posiciones están, actualmente, sin implementar. Para más información acerca de los SFR se recomienda acudir a los “Data Sheet” del fabricante donde se explica detalladamente la dirección que tienen asignada, su cometido, sus bits, etc.
El sistema operativo o programa monitor PICMOS’7X emplea un total de 32 bytes de memoria RAM para realizar sus propias operaciones. En el banco 0 se emplea el área comprendida entre 0x070-0x07F (16bytes). En el resto de bancos se emplea las áreas 0x0F0-0x0FF, 0x170-0x17F y 0x1F0-0x1FF. Lo que ocurre es que estas tres áreas son copias duplicadas de los 16 bytes comprendidos en 0x070-0x07F del banco 0, por lo que realmente estamos hablando de los mismos 16 bytes. En el banco 3 los 16 bytes comprendidos en el área 0x190-0x19F son también empleados por el PICMOS’7X, en total 32 bytes.
Se recomienda que las aplicaciones del usuario no hagan uso de las posiciones RAM usadas por el PICMOS’7X. Se puede producir un bloqueo del sistema con la consiguiente posible pérdida de datos.
Finalmente las posiciones RAM destinadas a las aplicaciones del usuario permiten almacenar un total de 320 bytes. Efectivamente, las áreas comprendidas entre 0x020-0x06F, 0x0A0-0x0EF, 0x120-0x16F y la 0x1A0-0x1EF, disponen de un total de 80 bytes cada una distribuidos en los bancos 0, 1, 2 y 3 respectivamente.
2.3.3 Restricciones de la memoria EEPROM de datos
La figura 2-3 muestra el mapa de memoria EEPROM de datos. Se trata de una memoria que permite guardar información no volátil pero si modificable por el usuario.
Tema 2: El monitor PICMOS’7X y el software Real_PIC
Figura 2-3 Mapa de la memoria EEPROM de datos
La capacidad total de almacenamiento de esta memoria es de 256 bytes. La mayor parte está libre, a disposición del usuario. Se trata del área 0x00-0xF7. El usuario puede acceder a ella mediante la ejecución de sus propios programas y aplicaciones para leer/escribir datos constantes.
Los 8 últimos bytes comprendidos entre 0xF8 y 0xFF están reservados para el programa monitor PICMOS’7X. Sobre ellos el sistema registra una firma o “cheksum” del programa de aplicación de usuario actualmente grabado en la memoria de programa. Esta firma también se copia en la tarjeta “Memory Card” cada vez que se hace un volcado del programa actual sobre ella.
Cuando se conecta el entrenador "PIC Laboratory" con una tarjeta de memoria insertada, el programa monitor PICMOS’7X comprueba si la firma que contiene la tarjeta es igual a la contenida en estos bytes de la EEPROM. En caso afirmativo la tarjeta de memoria no es leída y el programa monitor ejecuta el programa actual contenido en la memoria de programa del usuario. Ambos contenidos son iguales. En caso contrario se procede a realizar una lectura de la tarjeta que se supone contiene el nuevo programa actual, se graba sobre el PIC y se ejecuta.
2.3.4 Restricciones de periféricos
De todos los recursos y periféricos que disponen los PIC16F87X, el programa monitor sólo hace uso de uno de ellos, el USART. Efectivamente, gracias al USART se realiza la comunicación entre dicho programa monitor PICMOS’7X y el software Real_PIC del PC. Esto implica que tanto las líneas RC6/Tx y RC7/Rx así como los registros especiales (SFR) RCSTA,TXSTA, TXREG, RXREG y SPBRG del PIC, están siendo utilizados.
A pesar de todo, los programas de aplicación del usuario pueden hacer uso de estos recursos sabiendo de ante mano que, la comunicación con Real_PIC, se perderá pero que podrá ser re establecida cuando se inicia el sistema.
Hay un detalle que se debe tener en cuenta. El software Real_PIC emplea la señal RTS del canal serie de comunicaciones para provocar un RESET en el entrenador "PIC Laboratory" y establecer la comunicación entre dicho software y el programa monitor PICMOS’7X. Sin embargo el usuario puede desarrollar sus propias aplicaciones con otros programas de comunicación en las que la señal RTS se gestione de forma diferente. Esto puede provocar que el entrenador sufra señales de RESET no deseadas.
Para evitar estas posibles situaciones se recomienda el empleo de otro cable de comunicaciones muy fácil de fabricar. Se necesita un cable con 3 conductores, 1 conector Cannon de 9 vías macho (DB9M) y otro conector hembra (DB9H). Las conexiones entre ambos conectores se realiza uniendo la 2 con la 2 (RxD), la 3 con la 3 (TxD)y la 5 con la 5 (GND).
A continuación se explica la secuencia de inicio que se produce cada vez que el entrenador "PIC
Laboratory" es conectado a la alimentación o inicializado mediante RESET. La figura 2-4 presenta el esquema de
trabajo de dicha secuencia.
Figura 2-4. La secuencia de inicio
El proceso se inicia cada vez que se conecta la tensión de alimentación, se activa la señal de RESET o se ejecuta el software Real_PIC desde el PC. El programa monitor trata de establecer comunicación con este último. Si dicha comunicación es satisfactoria, el entrenador "PIC Laboratory" se sincroniza y queda bajo el control del programa monitor. El usuario a través del PC puede editar sus programas, ensamblarlos, grabarlos sobre el PIC, visualizar/modificar registros internos, etc. El sincronismo con el entrenador se puede hacer en cualquier momento desde el software Real_PIC.
Si el programa monitor no se sincroniza (p.e. Real_PIC no se ha ejecutado, PC desconectado, fallo de comunicaciones, etc.), trata de averiguar si en el zócalo Smart Card hay insertada una tarjeta de memoria Memory Card de Ingeniería de Microsistemas Programados S.L.. En caso negativo se procede a ejecutar el programa actual que contenga la memoria del usuario del PIC.
Si la Memory Card estuviera insertada se procede a determinar si su contenido coincide con el contenido actual de la memoria de programa del PIC. Para ello se hace un análisis de la firma o checksum que se comentó anteriormente. Si ambos contenidos coinciden evitamos el ciclo de lectura de la tarjeta y el sistema ejecuta directamente el programa que contenga el PIC. En caso contrario se procede a la lectura de la Memory Card y escritura de su contenido sobre la memoria de programa del PIC. Este ciclo dura varios segundos, transcurridos los cuales, se procede a ejecutar el nuevo programa recién grabado.
Tema 2: El monitor PICMOS’7X y el software Real_PIC
2.5 EL SOFTWARE Real_PIC
Este es el software de comunicaciones entre el PC y el programa monitor PICMOS’7X del entrenador. Con él es posible realizar tareas tales como visualizar/modificar registros internos del PIC, editar, ensamblar y grabar programas, ejecutarlos, leer y escribir sobre tarjetas de memoria externa, etc.
Para su correcto funcionamiento es necesario que el entrenador "PIC Laboratory" esté debidamente alimentado y conectado al canal serie del PC mediante el correspondiente cable de comunicaciones (incluido con el entrenador).
Al ejecutar este programa, se trata de establecer la comunicación con el entrenador a una velocidad de 38400 baudios. Si dicha comunicación es correcta, aparece un mensaje como el mostrado en la figura 2-5. Indica que el entrenador está bajo el control del software Real_PIC y de su propio programa monitor. A partir de este momento se puede iniciar la sesión de trabajo.
Figura 2-5. Comunicación correcta
Si la comunicación con el entrenador no es posible aparecerá el mensaje de la figura 2-6. Las causas más probables son:
• Fallo de alimentación en el entrenador
• Fallo en la conexión del cable de comunicaciones • Error en la configuración del canal serie
Figura 2-6. Error de comunicación
Existe otro motivo que genera fallo de comunicación con la placa y que se producirá con cierta frecuencia. Efectivamente, cuando el PIC del entrenador esté ejecutando el programa de aplicación del usuario, no puede estar ejecutando el programa monitor. Esto conlleva que no se atienda a la comunicación serie con el PC y se pierda contacto con el software Real_PIC. Mas adelante estudiaremos un rápido procedimiento que permite establecer de nuevo la comunicación.
En cualquiera de los dos casos expuestos, al pulsar el botón de aceptar, nos aparece la pantalla de trabajo tal y como se muestra en la figura 2-7.
Figura 2-7. Pantalla general de trabajo 2.5.1 El menú principal
El menú principal consta de 5 menús cada uno de las cuales tienen a su vez diferentes opciones que van apareciendo en ventanas desplegables. Algunas de esas opciones se puede ejecutar seleccionándolas mediante el cursor, mediante una combinación de teclas (Hot Keys) o bien haciendo clic sobre el icono que las representa. 2.5.1.1 Archivo
Presenta un menú desplegable con una serie de opciones relacionadas con la gestión de ficheros: Nuevo Inicia una nueva sesión de trabajo o proyecto y abre una pantalla
como la que se muestra en la figura 2-8, que representa el entorno de trabajo del usuario. En dicho entorno se puede apreciar una serie de botones con iconos que representan a algunas de las opciones más empleadas de los distintos menús. Cabe mencionar al botón “Sincronizar PC-Placa”. Permite llamar la atención del entrenador
"PIC Laboratory" cuando el PIC esté ejecutando un programa de
usuario, estableciendo así la comunicación y sincronismo. Se produce el mismo efecto pulsando la tecla F2. También aparecen 4 pestañas que permiten seleccionar las cuatro áreas de trabajo en un PIC:
EDITOR (área de edición del programa fuente); Mem.Programa (área
de la memoria de programa del PIC); Mem EEPROM (área de la memoria de datos EEPROM) y Mem RAM (área de la memoria de datos RAM). Estas se explicarán posteriormente.
Tema 2: El monitor PICMOS’7X y el software Real_PIC
Figura 2-8. El entorno de trabajo
Abrir ASM Mediante una caja de diálogos similar a la mostrada en la figura 2-9, se abre un fichero con extensión *.ASM y que corresponde con un determinado programa fuente. Dicho programa fuente se deposita y visualiza sobre el área del EDITOR.
Figura 2-9. Abriendo un programa fuente
Abrir HEX Mediante la correspondiente caja de diálogos similar a la anterior se abre un fichero con extensión *.HEX y que corresponde con un determinado programa ejecutable previamente ensamblado. Dicho programa se deposita sobre y visualiza sobre el área Mem Programa Cerrar Cierra el proyecto o aplicación en curso, salvando y cerrando los
ficheros que estuvieran abiertos.
Guardar Salva el fichero que en ese momento esté abierto, ya sea un programa fuente *.ASM o un ejecutable *.HEX. Esta acción también se puede realizar pulsando Ctrl+G.
2.5.1.2 Edición
Presenta seis opciones relacionadas con la edición de un programa fuente. Estas opciones sólo están activadas si se está trabajando sobre el área EDITOR.
Copiar (Ctrl+C) Copia en un buffer interno el bloque del programa fuente que esté seleccionado.
Cortar (Ctrl+X) Borra de la pantalla y copia en un buffer interno el bloque de programa fuente que esté seleccionado.
Pegar (Ctrl+V) Pega el bloque de programa fuente almacenado en el buffer interno sobre la posición actual del cursor.
Seleccionar Todo Selecciona todo el texto o programa fuente.
Buscar (Ctrl+B) Busca dentro del programa fuente una determinada cadena de caracteres.
Reemplazar (Ctrl+R) Busca dentro del programa fuente una determinada cadena de caracteres y la reemplaza por otra.
2.5.1.3 Herramientas
Presenta un conjunto de ocho opciones que, a modo de herramientas, permiten realizar una serie de operaciones sobre el entrenador y el entorno de trabajo.
Sincronizar (F2) Inicia el proceso de sincronismo entre el software Real_PIC y el programa monitor del entrenador. Este proceso habrá que hacerlo habitualmente. Hay que recordar que cuando el PIC está ejecutando un programa de aplicación del usuario, la comunicación con el PC queda rota. Este sincronismo permite recuperar esa comunicación y devolver el control al programa monitor.
Leer Memoria Realiza la lectura de uno de los tres tipos de memoria existentes dentro del PIC: la memoria de programa, la memoria EEPROM de datos y la memoria RAM de datos. Según el tipo de memoria seleccionada se abre el área correspondiente y se visualiza el contenido actual de la misma.
Escribir rango Esta opción sólo está activada si seleccionamos, mediante las correspondientes pestañas, el área de memoria RAM o el de EEPROM. Permite escribir un rango de direcciones con un determinado valor, sobre cualquiera de estos dos tipos de memoria. Como se muestra en la figura 2-10, se abre una caja de diálogo en la que se indica dirección inicial, dirección final y valor a escribir.
Tema 2: El monitor PICMOS’7X y el software Real_PIC
Figura 2-10. Escribiendo sobre un rango de memoria
Ensamblar (F8) Esta opción se activa cuando haya un programa fuente sobre el área del EDITOR. Llama al ensamblador MPASMWIN y realiza el proceso de ensamblado. El programa fuente se convierte así en un programa ejecutable válido para ser grabado sobre el PIC y ejecutado.
Test_Tarj (F3) Comprueba que la tarjeta de memoria Memory Card de
Ingeniería de Microsistemas Programados S.L. esté debidamente
insertada en el zócalo del entrenador.
Copiar PIC->Tarj (F4) Copia el contenido íntegro de la memoria de programa del usuario sobre la tarjeta de memoria Memory Card de Ingeniería de
Microsistemas Programados S.L. De esta forma es posible salvar la
aplicación sobre la tarjeta.
Leer tarj->PIC (F5) Lee el contenido íntegro de la tarjeta Memory Card de Ingeniería
de Microsistemas Programados S.L. y lo graba sobre la memoria de
programa del usuario. de esta forma se recupera la aplicación salvada sobre la tarjeta.
Opciones Permite seleccionar el puerto de comunicaciones del PC entre COM1 (Ctrl+1) y COM2 (Ctrl+2). También permite establecer la ruta (Ctrl+P) donde se encuentra el programa ensamblador MPASMWIN. Dicho programa es el que se ejecuta cada vez que se active la opción de ensamblar.
2.5.1.4 Ejecución
Presenta dos opciones para ejecutar el programa de aplicación del usuario que se supone grabado en la memoria de programa del PIC.
Ejecución (F9) Ejecuta la aplicación del usuario desde la dirección 0x0005. Como ya se ha explicado anteriormente esta es la primera dirección libre que tiene el usuario para almacenar sus programas.
Ejecución Desde (Ctrl+F9) Ejecuta la aplicación del usuario desde la dirección que se indique. Se recuerda que el área de memoria de programa disponible para las aplicaciones del usuario está comprendida entre las direcciones 0x0004 y la 0x0FFF. Aparece una caja de diálogo similar al mostrado en la figura 2-11
Figura 2-11. Ejecución desde una determinada dirección 2.5.1.5 Ayuda
Consta de dos sencillas opciones
Manual (F1) Proporciona una pequeña explicación sobre el manejo del software Real_PIC.
Acerca (F12) Informa de la versión del software Real_PIC 2.5.2 El área de EDITOR
Se activa al accionar la pestaña EDITOR y/o la opción/Botón Nuevo. Se muestra en la figura 2-12.
Figura 2-12. El área de edición
Sobre esta área se edita el programa fuente que, bien puede teclearse directamente, o bien cargarse desde un fichero con extensión *.ASM. Dispone de todas las funciones básicas que permiten una cómoda edición tales como copiar, pegar, mover, buscar, reemplazar, etc.
El programa fuente se puede guardar en formato ASCII para ser nuevamente abiertos por este editor o por cualquier otro.
Desde éste área también se realiza el proceso de ensamblado pulsado el botón ENSAMBLAR. Como consecuencia de esto, si no hay errores, se obtiene un programa ejecutable *.HEX en formato INTELHEX. La ruta donde se encuentra el programa ensamblador MPASMWIN ha debido ser previamente establecida mediante la opción correspondiente.
Tema 2: El monitor PICMOS’7X y el software Real_PIC
2.5.3 El área Mem Programa
Corresponde con el área donde se representa la memoria de programa del PIC. Se activa mediante la pestaña correspondiente y se muestra en la figura 2-13.
Figura 2-13. El área de programa
El contenido de esta área se puede salvar/recuperar desde ficheros *.HEX, siempre en formato INTELHEX. Este formato es el que generan la mayor parte de ensambladores y compiladores existentes.
Mediante el botón LEER PROG se procede a leer el contenido actual de la memoria de programa del PIC. Se lee siempre el área reservada al usuario, es decir, el comprendido entre las direcciones 0x0004 y 0x0FFF.
El botón ESCR PROG transfiere el contenido de esta área a la memoria de programa del PIC (0x0004-0xFFF). Realmente es el proceso de grabación. Los pasos habituales son muy sencillos y se pueden resumir en tres puntos:
1.- Se supone un programa fuente ensamblado y libre de errores
2.- Se activa el área de Mem Programa y se abre el fichero *.HEX correspondiente. 3.- Se pulsa el botón ESCR PROG. El PIC ha sido grabado
Microchip estima en unas 1000 las veces que la memoria de programa puede ser escrita o modificada. La visualización de esta área se realiza de dos formas diferentes que se seleccionan mediante las correspondientes pestañas: NEMONICO o HEXADECIMAL.
La representación en nemónico es la más habitual y la que aparece por defecto (figura 2-13). En sendas columnas a la izquierda aparece un número de línea y la dirección hex. donde se encuentra la instrucción. Seguidamente aparece el código de operación, a continuación el nemónico y, finalmente, los operandos.
Figura 2-14. El área de programa representada en hexadecimal
Cuando la memoria de programa de un PIC no ha sido utilizada, su contenido es 0x3FFF que se corresponde con la instrucción ADDLW 0xFF. Es por ello que en el área de programa se visualiza este valor en aquellas posiciones que no hayan sido programadas.
Las posiciones del área de programa no puede ser modificadas de forma individual. Sólo se modifican mediante la apertura de un fichero *.HEX o mediante la lectura de la memoria de programa del PIC.
2.5.4 El área de la EEPROM de datos
Se visualiza al accionar la pestaña Mem EEPROM. Su aspecto es el mostrado en la figura 2-15.
Tema 2: El monitor PICMOS’7X y el software Real_PIC
Por defecto todas las posiciones se visualizan con el valor 0xFF que es el que se supone en caso de que la memoria esté borrada. El botón LEER EEPROM realiza la lectura del contenido actual de toda la memoria EEPROM de datos del PIC y lo visualiza sobre esta área.
La lectura de una posición individual se realiza situando el cursor en la celda deseada y pulsando el botón derecho del ratón.
Podemos modificar el contenido de la EEPROM. Para ello situamos el cursor en la celda o posición deseada y tecleamos un byte en hexademial. Automáticamente se selecciona la siguiente celda para introducir el siguiente valor. También podemos llenar un rango de posiciones con un determinado valor. En el menú Herramientas se selecciona la opción Escribir Rango y se completa la caja de diálogo con la dirección inicial, la final y el dato a escribir.
Se recuerda que las posiciones 0xF8-0xFF están reservadas por el programa monitor PICMOS’7X. No es aconsejable modificar el contenido de las mismas.
2.5.5 El área RAM de datos
Se activa mediante la pestaña Mem RAM y se presenta en la figura 2-16.
Figura 2-16. El área de memoria RAM de datos
Por defecto todas las posiciones se muestran borradas con el valor 0x00. El botón LEER RAM realiza la lectura de la memoria RAM y la actualiza sobre esta área. A la derecha se representan los registros SFR que también coinciden con ciertas posiciones de las representadas a la izquierda. Por ejemplo, el registro STATUS coincide con la posición 0x03 por lo que ambas tienen el mismo valor.
Se puede leer una posición individual situando el cursor sobre la celda deseada y pulsando el botón derecho del ratón. Dicha celda se modificará inmediatamente con el valor actual.
Es posible modificar el contenido de cualquier posición. Esta se selecciona y se introduce el nuevo valor. Inmediata y automáticamente se selecciona la siguiente para su modificación. También es posible la modificación de un rango de direcciones RAM escribiendo sobre ellas un determinado valor. En el menú Herramientas se selecciona la opción Escribir Rango. En la caja de diálogo que aparece se indica la dirección inicial, la final y el valor a escribir.
La posibilidad de poder acceder y modificar cualquier posición RAM, incluidos los SFR, es muy interesante. Permite hacer depuración hardware en tiempo real a nivel de registros. Efectivamente se puede