pic Jul. 2016 | Page 79

LCD_Habilita ; ************************************************************************************* ; *** Envía un pulso de habilitación a la LCD de 500 ns para completar *** ; *** la operación de escribir un registro o un carácter. *** ; *** la instrucción NOP sólo es necesaria para procesadores de una *** ; *** velocidad mayor de 8 Mhz. Para procesadores a más de 16 MHz, *** ; *** añadir un segundo NOP *** ;************************************************************************************** BSF LCD, LCDE NOP BCF LCD,LCDE RETURN ; Pone a 1 la línea Enable (habilita) ; y espera 1 ciclo (250 ns a 8 MHz) ; Pone a 0 la línea Enable (deshabilita) Si usted pasa el corrector a la librería observará que le dará 3 errores. Dos de ellos están en la rutina Pausa_5ms, inexistente. Esta rutina depende grandemente del micro, la implementación del mismo, y la velocidad de su reloj, por lo que, de emplear la librería, debería crearla usted mismo en su programa. El otro indica que falta la directiva END. No la ponga. Las librerías no deben acabar con un END. En el siguiente punto veremos una sencilla aplicación para utilizar esta librería. 5.3.7 Uso de una librería: LCD.LIB El uso de una librería es bien sencillo si conocemos sus variables y sus rutinas internas. Aprovecharemos la creada en el apartado anterior para crear un pequeño programa que sitúe en la LCD la palabra PIC. Pocas cosas debemos hacer resaltar para un paso tan sencillo, pero es importante saber que las rutinas del programa LCDPIC.asm se situarán a continuación de las de la librería. Como no puede predecir, a priori, en qué dirección de memoria acabará la librería (y comprobarlo a mano es pesado) no se debe comenzar el mismo como habitualmente lo hacemos (con una directiva ORG). Sin embargo sí debemos emplear una para colocar el vector de reset, pero esta irá al final del programa, para no interferir. La rutina que ejecuta la pausa de 5 ms está basada en la que empleamos en parpadeo.asm. En cualquier caso hemos querido hacer notar el uso de dos directivas más de ensamblador y que, curiosamente, no hemos encontrado en bibliografías distintas de las suministradas por el fabricante. Estas son #DEFINE y macro. 77