Beruflich Dokumente
Kultur Dokumente
Rubn Bravo
Universidad Mayor
INDICE
Introduccin. 1. Microcontrolador PICF452. 1.1 Caractersticas Tcnicas. 1.2 Caractersticas Perifricas. 2. Programacin del PIC. 2.1 Anlisis del circuito del grabador. 2.2 PIC C Compiler. 2.2.1 Programando en C. 2.2.2 Estructura C Assembler. 2.3 WinPic 800. 2.3.1 Configurando el programador. 2.3.2 Extrayendo Ingresando datos al PIC. 3. Picboard. 3.1 Caractersticas Generales. 4. Teclado. 5. Display. 5.1 Caractersticas. 5.2 Descripcin de pines. 5.3 Encendido del LCD. 5.3.1 Usando Funciones del PIC-C Compiler. 5.3.2 Usando Funciones del Manual del LCD. 5.3.3 Funciones Ms Usadas. 5.3.3.1 lcd_init(). 5.3.3.2 lcd_gotoxy(), 5.3.3.3 lcd_putc(). 6. Temporizador. 6.1 Interrupciones. Anexos
2 3 3 3 5 7 8 8 11 12 12 16 18 18 19 20 21 21 23 24 24 29 29 30 30 31 32 34
Universidad Mayor
INTRODUCCION
Dentro de los tpicos del curso de Diseo e Implementacin de Sistemas Digitales, se introdujo como materia del ramo, las aplicaciones y programacin de los microcontroladores PIC, especficamente el PIC18F452, el cual se us para crear un sistema de alarma, que tuviera caractersticas varias, como un display, en el cual el usuario pudiera seleccionar distintas opciones desde un teclado multiplexado, como asignar Hora/Fecha, supervisar el estado de puertas y ventanas, etc.
En vista de que este material es nuevo, se pens en la necesidad de crear un manual que fuese en ayuda de los futuros alumnos del ramo, como tambin de todos aquellos que se interesen en aprender el uso del PIC.
La finalidad de este manual, es entregar las herramientas iniciales sobre el uso, programacin y consejos que permitan crear los cimientos necesarios para que el alumno aprenda los conocimientos bsicos y sea capaz de realizar proyectos usando las capacidades de estos microcontroladores.
De ms esta decir que cualquier contribucin a este manual, ser bienvenida y agradecida.
Tambin quisiera agradecer a Osvaldo Rodrguez Toro y al profesor de la asignatura Sr. Gustavo Meyer, por la ayuda y consejos otorgados durante el semestre para poder usar el microcontrolador.
Universidad Mayor
1.
EL MICROCONTROLADOR PICF452.
Este integrado de la familia PIC, forma parte de los circuitos integrados de Microchip Technology Inc., que pertenece a la categora de los microcontroladores. Presenta caractersticas muy verstiles que le permiten aplicaciones en un gran nmero de variedades.
1.1
Caractersticas Tcnicas:
Memoria Flash de 32 Kbytes. Nmero de instrucciones: 16384. RAM (incluida) de 1536 bytes. Datos EEPROM 256 bytes.
1.2
Caractersticas Perifricas:
Posee 5 puertos I/O, de 8 bits, menos el puerto A que slo tiene 7 bits. Compatibilidad A/D de 10 bits. Tiene un generador de oscilacin que le brindan caractersticas de timer.
Para ms detalle, remitirse al Data sheet del integrado que viene adjunto con el CD del Kit de desarrollo.
FIGURA 1.1 DIAGRAMA DE PINES
Universidad Mayor
Universidad Mayor
2.
El Kit de desarrollo trae un software llamado Mplab en el cual se puede hacer la programacin el PIC; en primera instancia se puede hacer directamente en lenguaje assembler usando el set de instrucciones propio del microcontrolador (adjunto en el data sheet), pero la dificultad de hacerlo puede ser un tanto grande, sobretodo si no se tiene mucha experiencia en microcontroladores, o bien, en lenguaje assembler.
Por eso, la opcin ms simple, es la programacin en lenguaje C, al cual se est ms habituado, otra razn para programar en C, es que ste es un lenguaje de mayor nivel; lo que implica que no es necesario tener que adaptarse a los distintos tipos de microcontroladores. No como lo que ocurre en assembler, como este es un programa de bajo nivel, implica que cada chip tiene su propio set de instrucciones y por ende hay que adaptarse a cada uno.
Pero aparecen otras dificultades; como el procedimiento del Mplab de aceptar la escritura C y transformarla en instrucciones assembler.
Para ello, la solucin es la siguiente: implementar un grabador de PIC propio, compatible para lenguaje C. El circuito de ste es simple de implementar.
El esquema del circuito fue extrado desde Internet a travs de la pgina http://www.pablin.com.ar/; en donde adems, hay varios otras opciones e informacin sobre microcontroladores e interesantes temas relacionados con electrnica.
Universidad Mayor
Notar que las terminales con los nmeros, corresponden a los pines del puerto paralelo (impresora), se recomienda respetar el orden de los mismos propuestos en
Universidad Mayor
el esquema (ms adelante se explicar el por qu). Tambin este programador es compatible para los microcontroladores de 8, 18, 28, 40 pines.
En ste caso, el PIC18F452 tiene 40 pines, por lo que slo se usar el pin 6 del esquema N 2.
2.1
: : : :
corresponde al voltaje de alimentacin del PIC, 5 [v]. corresponde al voltaje de programacin del PIC, 12 [v]. corresponde a la frecuencia de reloj. corresponde a la entrada/salida de datos del PIC.
El LED marcado como "PIC" indica cuando no hay presencia de tensin de programacin (VPP) en el zcalo. Cuando este LED esta apagado la tensin est presente en los zcalos PIC. Nunca insertar o quitar microcontroladores de los zcalos estando este indicador apagado.
Esto ocurre debido a que desde el PIN 6 llega una pequea corriente a la base del transistor; lo que hace que ste, del estado saturacin pase a corte y deje fluir toda la corriente colector emisor que viene a travs de la resistencia de 1[ K ].
El inversor que est presente (74LS04) tiene la misin de ser una especie de buffer, retardando la seal y levantndola; por eso la seal es negada dos veces, esto fue pensado para aquellas situaciones en que el cable es demasiado largo y la seal tiende a atenuarse o a presentar ruido.
Universidad Mayor
2.2
PCI - C Compiler.
En ste software es posible programar el PIC usando instrucciones de lenguaje C, es un software muy amigable y simple. Adems al momento de compilar, automticamente se crea un archivo de extensin .hex que es el necesario para poder ejecutar otro software (se ver ms adelante) que crea las instrucciones en assembler.
2.2.1 Programando en C.
En la opcin File, se debe buscar la subopcin New, en donde aparecer una pantalla en la cual pide la ubicacin en donde se guardar el proyecto.
FIGURA 2.3 PRESENTACION VENTANA PRINCIPAL
Universidad Mayor
Lo primero que hay que declarar son las libreras necesarias y las caractersticas que se usarn.
En la primera, se declara la librera del integrado a usar y el programa automticamente adopta los parmetros del PIC. En la segunda directiva, se define qu fusibles deben activarse en el dispositivo cuando se programe. Esta directiva indica al compilador la frecuencia del procesador, en ciclos por segundo [Hz].
FIGURA 2.4 EJEMPLO DE PROGRAMACIN
Universidad Mayor
Para compilar se debe ir a la opcin Compile o bien apretar F9, si no hay error debera salir el siguiente mensaje:
FIGURA 2.5 CUADRO DE COMPILACION
El archivo con la extensin .hex se crea en la misma ubicacin antes seleccionada (al momento de guardar el proyecto).
Se aconseja que cada vez que se compile, se debe hacer click con el botn derecho en la pestaa que tiene el nombre del proyecto y luego seleccionar la opcin Make file of Project, para asegurarse que se compilar el archivo en el lugar apropiado.
10
Universidad Mayor
Si hay inters de ver la estructura assembler del programa realizado, se debe revisar el siguiente tpico(ver Estructura C Assembler).
Para ver cmo quedara el programa en instrucciones assembler propias del PIC, se debe hacer clic en el botn Mixed C and ASS List File
FIGURA 2.6 C - ASSEMBLER
Es muy recomendable que se tenga un manual de programacin de PIC en lenguaje C, en esta direccin hay uno que se puede descargar y es bastante completo:
http://www.eupmt.es/cra/inform/Manual_Compilador_C_Para_PICs.pdf
11
Universidad Mayor
2.3
WINPIC 800.
Este es un software que permite grabar el PIC usando el grabador de PIC que se implement con anterioridad.
Es necesario configurar el grabador en el software para que reconozca la existencia de ste y sus capacidades. Se debe hacer click en la opcin Configuracin y luego en la subopcin Hardware.
FIGURA 2.7 VENTANA PRINCIPAL WINPIC 800
12
Universidad Mayor
Los siguientes pasos son para configurar los parmetros del grabador:
1.
2.
Para que aparezca el cuadro de opciones se debe oprimir la 5 opcin de izquierda a derecha en el extremo inferior izquierdo.
3.
Para habilitar las casillas, se debe quitar el ticket en la casilla del extremo superior derecho.
FIGURA 2.8 AJUSTANDO PARAMETROS DE CONFIGURACION
13
Universidad Mayor
Ahora para ajustar los parmetros se debe tener en mente el siguiente esquema del conector de puerto paralelo:
1 o 2 o o 3 o o 4 o o 5 o o 6 o o 7 o o 8 o o 9 o o 10 o o o 11 o o 12 o o 13 o
14 15 16 17 18 19 20 21 22 23 24 25
En donde el PIN 1 es Strobe, los PINES 2 al 9 son de datos (los cuales forman 1 Byte), el 10 es ACK y el 25 corresponde a GND. El resto de los PINES no es importante mencionarlo para efectos de este ejemplo, por lo que se deja al interesado en buscar la informacin
Si se sigui el orden de los pines propuestos en el ejemplo de implementacin del grabador ser ms simple configurarlo.
Si recordamos el circuito:
Vcc (alimentacin PIC), est asociado al PIN 6, que segn el esquema del conector equivale al bit 4.
Scl (Frec. Reloj) corresponde al PIN 3, que corresponde al bit 1. Sda (dato) est asociado a los PINES 10 y 2, pero el PIN 10 ACK est predefinido como Data in, por lo que no se debe cambiar, pero el PIN 2 corresponde al bit 0 y debe ser cambiado en las opciones.
Ahora en la ventana de opciones, hay que asignar a la columna nombre el bit asociado.
Bit 0 ACK 1 4
PIN P. Paralelo 2 10 3 6
14
Universidad Mayor
Nota: la casilla que se encuentra habilitada junto a Vpp debe quedar con el clic puesto, ya que de sta forma el LED nombrado como PIC queda encendido cuando no hay voltaje de programacin.
As deben quedar las distintas casillas del recuadro de opciones, no olvidar oprimir el botn Confirmar cambios.
Una vez hecho esto, se recomienda hacer la siguiente operacin antes de comenzar a grabar el PIC. Primero se debe detectar el grabador haciendo clic en el botn Detectar Dispositivo, al oprimirlo debe salir una ventana en la cual aparezca el nombre del PIC usado.
15
Universidad Mayor
Una
vez
realizada
la
operacin
de
configuracin,
el
programa
debera
automticamente reconocer la existencia del grabador de PIC, junto con el PICF452 (que debe estar puesto en el grabador). Ahora se debe buscar el archivo con la extensin .hex en el lugar determinado por el software anterior. Para esto se hace clic en la opcin Archivo, subopcin Abrir y desde ah buscar el archivo correspondiente, el archivo posee el mismo nombre que se le asign anteriormente.
16
Universidad Mayor
Aqu las instrucciones que anteriormente se haban escrito en lenguaje C, ahora aparecen escritas en forma hexadecimal.
FIGURA 2.12 OPCIONES DE MANEJO DEL PIC
Botones Leer,Grabar,Verificar,Borrar
Las funciones de Leer, Grabar, Verificar o Borrar el contenido del PIC, se realizan con una serie de botones ubicados en la barra de herramientas junto al indicador del tipo de microcontrolador y fabricante.
Ahora se puede ejecutar estas opciones con el cdigo creado segn el respectivo proyecto.
17
Universidad Mayor
3.
PICBOARD.
Esta es una tarjeta de entrenamiento que viene como parte del Kit de desarrollo del PIC, se hablar en trminos generales sobre sta, ya que el detalle se puede encontrar en el manual que viene en el CD.
FIGURA 3.1 ESQUEMA DEL PICBOARD
- Posee un Dipswitch de 10 posiciones y otro de seis posiciones. El primero se usa en micros de 40/28 PINES y el otro en micros de 18/8 PINES.
- Para el display, se deben usar los puertos D y E, siendo los primeros para datos y los segundos para control del mismo. (Esta funcin slo est contemplada para micros de 40 PINES).
18
Universidad Mayor
4.
TECLADO.
1 4 7 *
2 5 8 0
3 6 9 #
F1 F2 F3 F4
F1F2 F3 F4C1C2C3C4
Donde
F: filas C: columnas
La forma de operar de este teclado es en generar un corto-circuito al momento de presionar una tecla, ya que cada una de stas es un pulsador. Lgicamente el funcionamiento se puede describir segn la siguiente figura:
FIGURA N 4.2 FUNCIONAMIENTO TECLADO MULTIPLEXADO
19
Universidad Mayor
Nota: a las columnas se le recomienda agregar resistencias que garanticen la existencia de voltaje que lleguen a las entradas del PIC. Las resistencias que ah se muestran son para regular la corriente y sirven de proteccin.
Si tomamos las filas como referencia, depender de las columnas que se activen para deducir qu tecla fue presionada.
Por ejemplo, si presionamos la tecla 1, un pulso ser enviado desde la F1 y saldr por C1, de acuerdo con la Figura 4.1. Si tomamos la Figura 4.2, y consideramos el mismo ejemplo, al oprimir 1, el pulso entrar por la fila 1 y saldr por la columna 5.
5.
DISPLAY.
El display usado dispone de 2 filas de 16 caracteres cada una y cada carcter dispone de una matriz de 5x7 puntos (pixels).
FIGURA 5.1 DISPLAY 2 x 16
Este dispositivo esta gobernado internamente por un microcontrolador Hitachi 44780 y regula todos los parmetros de presentacin, este modelo es el mas comnmente usado y esta informacin se basar en el manejo de este u otro LCD compatible.
Para ms detalle del funcionamiento del LCD, remitirse a un manual del mismo que hay en el paol.
20
Universidad Mayor
5.1
Caractersticas.
- Pantalla de caracteres ASCII, adems de los caracteres Kanji y Griegos. - Desplazamiento de los caracteres hacia la izquierda o la derecha. - Proporciona la direccin de la posicin absoluta o relativa del caracter. - Memoria de 40 caracteres por lnea de pantalla. - Movimiento del cursor y cambio de su aspecto. - Permite que el usuario pueda programar 8 caracteres. - Conexin a un procesador usando un interfaz de 4 u 8 bits
Extracto de http://www.x-robotics.com/rutinas.htm#LCD
5.2
Descripcin de pines.
1 2 3
Vss Vdd Vo
Tierra de alimentacin GND Alimentacin de +5V CC Contraste del cristal liquido. ( 0 a +5V ) Seleccin del registro de control/registro de datos:
RS
RS=0 Seleccin registro de control RS=1 Seleccin registro de datos Seal de lectura/escritura:
R/W
7-14
D0-D7
Extracto de http://www.x-robotics.com/rutinas.htm#LCD
El LCD tiene un aspecto fsico como el mostrado en la Figura 5.2. Est constituido por un circuito impreso en el que estn integrados los controladores del display y los pines para la conexin del display. Sobre el circuito impreso se encuentra el LCD en s, rodeado por una estructura metlica que lo protege. En total se pueden visualizar
21
Universidad Mayor
2 lneas de 16 caracteres cada una, es decir, 2x16=32 caracteres, como se muestra en la Figura 5.3. A pesar de que el display slo puede visualizar 16 caracteres por lnea, puede almacenar en total 40 por lnea. Es el usuario el que especifica qu 16 caracteres son los que se van a visualizar.
FIGURA 5.2
FIGURA 5.3
El cableado entre el LCD y el PIC puede ser de varias formas, variando la cantidad de bits que se usan para los datos, estos pueden ser segn las siguientes opciones:
22
Universidad Mayor
5.3.
Antes de que aparezca cualquier cosa en la pantalla LCD, debe ser inicializada; esto significa, enviar cdigos de bits por medio del PIC que indiquen la forma de trabajo de ste, o sea setear la caractersticas que se utilizarn del LCD, como que aparezca el cursor, mover los datos de izquierda o derecha, etc.
Internamente el LCD cuenta con un microcontrolador que transforma los datos enviados del PIC, para desplegarlos en pantalla.
Recordemos que por defecto los pines que estn conectados al PIC en el PICBOARD son los del Puerto E para control y Puerto D para datos, la forma de inicializar la pantalla.
Para inicializar el LCD, hay dos caminos a seguir, el primero es usar las funciones propias del software de programacin PIC-C Compiler (se recomienda), o bien usar
23
Universidad Mayor
las instrucciones adjuntas en el manual del LCD. Se prefiere usar la primera, debido a la simplicidad en el manejo de las funciones. De cualquier forma, nos referiremos a las dos opciones.
La librera <lcd.c> contiene los cdigos de inicializacin y otras funciones del LCD, como mostrar datos en pantalla, manipular la posicin del cursor, etc.
Pero el cableado entre el PIC y el display debe ser el que est predeterminado por las funciones, esto es usar el puerto D, pero slo se usan los 3 de control y 4 de datos, por lo que el pin D3 no ser usado.
PIN DISPLAY D0 D1 D2 D4 D5 D6 D7
Para esto se recomienda usar los 8 bits para datos de cualquier puerto y usar el los 3 pines del puerto E como control, ya que como se mostr anteriormente, para usar 4 bits de datos, hay que multiplexar la informacin y el programa tiende a ponerse ms complejo, por ende, si no se tiene la habilidad necesaria de programacin es mejor usar los 8 bits de datos.
En los bits de datos, hay que generar un cdigo para inicializar el LCD, el que se da a continuacin:
24
Universidad Mayor
CLEAR DISPLAY:
Borra el mdulo LCD y coloca el cursor en la primera posicin (direccin 0). Pone el bit I/D a 1 por defecto.
RS 0
R/W 0
DB7 0
DB6 0
DB5 0
DB4 0
DB3 0
DB2 0
DB1 0
DB0 1
HOME:
Coloca el cursor en la posicin de inicio (direccin 0) y hace que el display comience a desplazarse desde la posicin original. El contenido de la memoria RAM de datos de visualizacin (DD RAM) permanece invariable. La direccin de la memoria RAM de datos para la visualizacin (DD RAM) es puesta a 0.
RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 0 DB2 0 DB1 1 DB0 X
Establece la direccin de movimiento del cursor y especifica si la visualizacin se va desplazando a la siguiente posicin de la pantalla o no. Estas operaciones se ejecutan durante la lectura o escritura de la DD RAM o CG RAM. Para visualizar normalmente poner el bit S=0.
RS 0
R/W 0
DB7 0
DB6 0
DB5 0
DB4 0
DB3 0
DB2 1
DB1 I/D
DB0 S
Tiempo de ejecucin: 40 S
Activa o desactiva poniendo en ON/OFF tanto al display (D) como al cursor (C) y se establece si este ltimo debe o no parpadear (B).
RS 0 R/W 0 DB7 0 DB6 0 DB5 0 DB4 0 DB3 1 DB2 D DB1 C DB0 B
Tiempo de ejecucin: 40 S
25
Universidad Mayor
Mueve el cursor y desplaza el display sin cambiar el contenido de la memoria de datos de visualizacin DD RAM.
RS 0
R/W 0
DB7 0
DB6 0
DB5 0
DB4 1
DB3 S/C
DB2 R/L
DB1 X
DB0 X
Tiempo de ejecucin: 40 S
FUNCTION SET:
Establece el tamao de interfase con el bus de datos (DL), nmero de lneas del display (N) y tipo de carcter (F)
RS 0
R/W 0
DB7 0
DB6 0
DB5 1
DB4 DL
DB3 N
DB2 F
DB1 X
DB0 X
Tiempo de ejecucin: 40 S
El mdulo LCD adems de tener definidos todo el conjunto de caracteres ASCII, permite al usuario definir 4 u 8 caracteres grficos. La composicin de estos caracteres se va guardando en una memoria llamada CG RAM con capacidad para 64 bytes. Cada carcter grfico definido por el usuario se compone de 16 u 8 bytes que se almacenan en sucesivas posiciones de la CG RAM.
Mediante esta instruccin se establece la direccin de memoria CG RAM a partir de la cual se irn almacenando los bytes que definen un carcter grfico. Ejecutando este comando todos los datos que se lean o escriban posteriormente, lo hacen desde esta memoria CG RAM.
RS 0
R/W 0
DB7 0
DB6 1
DB5
DB4
DB3
DB2
DB1
DB0
Direccin de la CG RAM
Tiempo de ejecucin: 40 S
26
Universidad Mayor
Los caracteres o datos que se van visualizando, se van almacenando en una memoria llamada DD RAM para de aqu pasar a la pantalla.
Mediante esta instruccin se establece la direccin de la memoria DD RAM a partir de la cual se irn almacenando los datos a visualizar. Ejecutando este comando, todos los datos que se escriban o lean posteriormente lo harn desde esta memoria DD RAM. Las direcciones de la 80h a la 8Fh corresponden con los 16 caracteres del primer rengln y de la C0h a la CFh con los 16 caracteres del segundo rengln, para este modelo de LCD.
RS 0
R/W 0
DB7 1
DB6
DB5
DB4
DB3
DB2
DB1
DB0
Direccin de la DD RAM
Tiempo de ejecucin: 40 S
Cuando el modulo LCD esta ejecutando cualquiera de estas instrucciones, tarda un cierto tiempo de ejecucin en el que no se debe mandar ninguna instruccin. Para ello dispone de un flag llamado BUSY (ocupado) que indica que se est ejecutando una instruccin previa.
Esta instruccin de lectura informa del estado de dicho flag adems de proporcionar el valor del contador de direcciones de la CG RAM o de la DD RAM segn la ltima que se haya empleado.
RS 0
R/W 1
DB7 BF
DB6
DB5
DB4
DB3
DB2
DB1
DB0
27
Universidad Mayor
Mediante este comando se escribe en la memoria DD RAM los datos que se quieren presentar en pantalla y que sern los diferentes cdigos ASCII de los caracteres a visualizar.
Igualmente se escribe en la memoria CG RAM los diferentes bytes que permiten confeccionar caracteres grficos a gusto del usuario.
El escribir en uno u otro tipo de memoria depende de si se ha empleado previamente la instruccin de direccionamiento DD RAM o la de direccionamiento CG RAM.
RS 1
R/W 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
Mediante este comando se lee de la memoria DD RAM los datos que haya almacenados y que sern los cdigos ASCII de los caracteres almacenados. Igualmente se lee de la memoria CG RAM los diferentes bytes con los que se ha confeccionado un determinado carcter grfico.
El leer de uno u otro tipo de memoria depende de si se ha empleado previamente la instruccin de direccionamiento de la DD RAM o la de direccionamiento CG RAM.
RS 1
R/W 1
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
28
Universidad Mayor
El detalle de las funciones del LCD se puede ver abriendo el archivo en la ubicacin:
C:\Archivos de programa\PICC\Drivers\LCD
5.3.3.1
lcd_init().
Inicializa el LCD, hay que usar los pines del puerto D, descrito en anteriormente en punto 5.3.1.
29
Universidad Mayor
5.3.3.2
lcd_gotoxy(y,x).
Esta funcin pone el cursor en la posicin deseada, esto es en la fila (Y), columna (X).
void lcd_gotoxy( BYTE x, BYTE y) { BYTE address; if(y!=1) address=lcd_line_two; else address=0; address+=x-1; lcd_send_byte(0,0x80|address); }
5.3.3.3
lcd_putc().
Ej. lcd_putc(TEXTO);
Para mostrar nmeros hay que agregarle la funcin printf() de la siguiente forma:
Ej. printf(lcd_putc,%d,variable);
30
Universidad Mayor
Si a esta funcin se le agregan los siguientes prefijos, como los siguientes, causan los siguientes efectos: \f \n \b Borra el display. Va al inicio de la 2 lnea. Retrocede una posicin.
6.
TIMER.
Esta caracterstica de reloj se logra a travs de interrupciones, ya que se le asocia una variable que cuenta un nmero determinado de interrupciones y stas pueden ser tales que calcen en 1 segundo, de esta forma se logra simular un reloj con el PIC, se refiere a simulacin, porque siempre habr un pequeo error en los segundos. Dependiendo de la forma de hacer el clculo, se puede minimizar, pero siempre habr un error.
31
Universidad Mayor
6.1
Interrupciones.
El PIC posee varios mtodos y tipos de interrupciones, aqu se hablar de la RTTC, que usa el TIMER_0, sta es una interrupcin por desbordamiento, la cual es muy til para desarrollar un reloj. Para ms detalles sobre sta y otras, remitirse al data sheet del integrado.
Forma de uso:
La interrupcin RTCC se produce cada vez que el contador TIMER0 pasa de FFh a 00h en 8 bits o bien de FFFh a 000h en 16 bits.
El TIMER0 hace un cmputo completo de 00h a FFh cada 0.083ms, sin embargo este tiempo puede ser cambiado mediante un preescaler o sea un divisor, ajustable.
2 -> 83 [mseg] al mnimo preescaler posible. 4 -> 166 [mseg] 8 -> 333 [mseg] 16 -> 666 [mseg] 32 -> 1.33 [seg] 64 -> 2.66 [seg] 128 -> 5.33 [seg] 256 -> 10.66 [seg] ----->al mximo preescaler posible.
Se advierte que los tiempos fueron obtenidos de forma emprica mediante reiteradas pruebas. Por ende hay que considerar un margen de error en los mismos.
32
Universidad Mayor
33
Universidad Mayor
ANEXOS
34
Universidad Mayor
1.
Programa para hacer que desde un teclado multiplexado de 4x4 se ingrese la hora, mostrarla en un display LCD y tambin para que un LED (PIN B1) se encienda y se apague a una hora determinada por usuario.
#include <18f452.h> #fuses XT,NOWDT,NOPROTECT #use delay(clock=4000000) #include <lcd.c> byte const NInts=6; // VARIABLES GLOBALES char C_Ints=0; char Flag=0; #int_RTCC RTCC_isr() { if(C_Ints > NInts) { if(Flag==0) { Flag=1; } else { Flag=0; } C_Ints=0; } ++C_Ints; } teclado() { int x; lcd_gotoxy(1,2); teclado: x=1; while(x<5) { if(x==1) { output_high(PIN_C0);
// Selecciona el PIC // Opciones de configuracin // Velocidad del Cristal : 4 Mhz // Numero de interrupciones para 1 Segundo // Contador de Interrupciones ocurridas // Flag que cambia cada NInts interrupciones // Interrupcin por desbordamiento // del TIMER0 RTCC // Si las ints ocurridas > ints para 1 Seg.
// Reinicializo Contador de Ints // Incremento el nmero de interrupciones // Ocurridas // Lee un teclado multiplexado de 4x4
35
Universidad Mayor
36
Universidad Mayor
//para las teclas 7 8 9 F3
37
Universidad Mayor
//Programa Principal
38
Universidad Mayor
//encendido LED
//apagado LED
39
Universidad Mayor
// TIMER0: Clock Interno,Presescaler 2 // para una RTCC cada 83 milisegundos // -> 1 Segundo = 6 RTCC // Habilito Interrupcin RTCC // Habilito Interrupciones
// Bucle infinito
40
Universidad Mayor
41