Paso 2: Software
Una de las razones que me gusta lenguaje ensamblador para microcontroladores es porque me gusta hablar directamente con el hardware. Una vez entiendes que controla el hardware es sobre todo apenas leer y escribir en ubicaciones de memoria (llamados
registros), las instrucciones comienzan a hacer sentido. El conjunto de instrucciones también es bastante pequeño por lo que no se necesita mucho tiempo para ordenar a través de ellos. La parte más difícil, si estás acostumbrado a lenguajes de nivel más alto, es que tiene un poco de acostumbrarse al hecho de que construcciones simples como IF-THEN-ELSE necesitan ser construido de varias instrucciones de montaje. Y Matemáticas pueden ser una pesadilla para que proyectos basados en la lógica simple son generalmente mejores. ¿Pero, bueno, no es desafío siempre parte de la diversión?
El enlace de software se enumera a continuación. Aunque está dirigido para el 12F683, fácilmente es portado a versiones más grandes de la PIC. Personalmente, lo he utilizado con el 16F688 y el 16F627. Sobre todo requiere cambiar nombres como TRISIO TRISA y GPIO a PORTA. Usted también tendrá que cambiar la línea que identifica la versión de PIC (lista =) y el archivo de inclusión, pero los cambios intuitivas. La línea __CONFIG también necesite ajustar sólo porque uno o dos de las etiquetas utilizadas se deletrean diferentemente en algunos de los archivos de inclusión.
La rutina LCD_Init se adhiere bastante a la secuencia de inicialización especificado para el chip de 1602. Las dos rutinas de Test_Code de salida de la frase "Hola" en línea uno de los LCD y "CAROL" en línea dos de la pantalla LCD. Se
dijo al principio "Hola mundo" pero mi esposa no impresionaron por lo que cambié para utilizar su nombre. Ella todavía no estaba impresionada pero tengo puntos por tratar. El truco de software que he mencionado anteriormente es en la rutina Send_Byte. Usar el hecho de que el cambio de registro relojes en un punto bajo al Alto Tajo y que la línea de reloj ha quedado en el estado alta después de la última parte fue registrada. Una ubicación de memoria Reg_Select ha sido establecida previamente a 0 o 1 dependiendo de si es o no el byte que se envía un comando o datos. Si es un comando, entonces la línea de reloj se establece bajo antes de activar la pantalla LCD. Un breve impulso en la línea de LCD permiten relojes el byte del registro de desplazamiento en la pantalla LCD.
Bueno, eso es para el episodio 1 de "Diversión con foto montaje". Estén atentos para más episodios como moverse para poner mi varias notas de proyecto en un formato coherente.