Diversión con foto montaje - episodio 2 (3 / 4 paso)

Paso 3: Software

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. 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 intuitivos. 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. Sólo asegúrese de que el PIC que uso tiene un pasador que permite una entrada de interrupción externa (generalmente denominada EXT).

Que cambie el pin de control del LCD, este programa tiene un par de diferencias básicas de la simple en episodio 1. En particular, utiliza un manejador de interrupción para que las ubicaciones de memoria definida para el reinicio del programa y el inicio del manejador de interrupción se han añadido. El vector de reset (dirección 0) tiene una simple instrucción GOTO salta al inicio real del programa. Esto es necesario porque el controlador de interrupción comienza siempre en la dirección 4. Un capricho que he encontrado es que el programa MPE X IDE que compila el código no GOTO saltar directamente a una declaración del BANKSEL. Es por ello que la primera instrucción en "Principal" es una NOP. La rutina de "Init" también incluye instrucciones para utilizar el reloj interno de 8 MHz en lugar del reloj de 4 MHz por defecto. Esto también significa que las rutinas de retardo deben tener valores diferentes que en las rutinas del episodio 1.

La rutina LCD_Init se adhiere bastante a la secuencia de inicialización especificado para el chip de 1602. La rutina de LCD_Line1 muestra "Comando de dirección" en la línea 1. La rutina LCD_Line2 configura para escribir los códigos recibidos de IR a la línea 2 de la pantalla LCD. Línea 2 obtiene sobrescribe cada vez que se recibe un nuevo mensaje de IR.

El corazón del código de captura del mensaje de IR está dentro del controlador de interrupción. Recordar el esquema que hemos conectado la salida de datos serie del receptor de IR a la entrada de interrupción externa del PIC. Esto nos permite sincronizar con el comienzo del mensaje y para decodificar cada bit de datos midiendo simplemente anchuras de pulso. La entrada de interrupción externa se establece a interrumpir en el borde descendente que indica siempre un comienzo poco. La rutina de interrupción comprueba Timer1 para ver cuánto tiempo ha sido desde la última interrupción y luego restablezca el temporizador. Podríamos medir los pulsos diferentes exactamente pero el enfoque perezoso funciona bastante bien. Como vimos en el apartado anterior, el impulso de start es fácilmente identificable, pero los bits de datos se diferencian por el espacio de tiempo después de los bits de datos. Midiendo desde el borde descendente al borde de caer, incluimos la broca y el espacio tiempo. De esa manera no tenemos que ser muy precisos cuando anchuras de pulso de prueba. Dado que se establece la frecuencia de reloj del PIC a 8 MHz, Timer1 se incrementa cada 500ns. Para simplificar el software ignoramos los 8 bits más bajos del Timer1 (127us máximo) y sólo prueba los 8 bits superiores. Cada cuenta en los parte superiores 8 bits equivale a 128us. Un bit de datos "0" tendrá un recuento superior a 5 pero menos de 9 y un bit de datos "1" tendrá doble ese rango. Es por ello que las cuentas en el software se establecen en 6 un poco de datos "0" y 12 para un bit "1" de datos. La comprobación de bit de start es para un conteo mayor de 24 (sobre 3 MS). No es muy precisa pero muy eficaz.

La rutina Main_Lp1 es donde los bits de datos decodificados por la rutina de interrupción se embalan en los cuatro bytes esperados. La llamada a Make_ASCII se envía un nibble a la vez de cada byte y el valor numérico de 0-15 convierte en un carácter legible de 0-F. Utiliza un proceso de pulido que permite a un programador construir una tabla de búsqueda y luego fije el contador de programa para saltar en el lugar apropiado en la tabla. Cada posición de la tabla es una instrucción return de subrutina especial (RETLW) que lleva un valor literal especificado en el registro W a la rutina llamada. Después de los cuatro bytes se han recibido y enviado a la pantalla hay una llamada a LCD_Line2 para restablecer el puntero de la pantalla en espera del siguiente mensaje de IR. No incluye un comando para borrar la pantalla porque el siguiente mensaje sólo sobreponen a los lugares de visualización actual.

Artículos Relacionados

Diversión con foto montaje - episodio 1

Diversión con foto montaje - episodio 1

En los viejos tiempos, cuando los hombres eran hombres y disquetes eran inmensos, programamos los primeros microprocesadores en lenguaje ensamblador - y nos gustó de esa manera. Ahora que estoy jubilado he decidido volver a aquellos días de antaño y
Diversión con foto montaje - episodio 20

Diversión con foto montaje - episodio 20

En el episodio 19 que mencionar de paso que sería relativamente fácil trasladar el diseño a la 16F1837 más moderno que se utilizó en el episodio 13 de la visualización de gráficos. Sería alejarse de nosotros tener que copiar las cadenas de mando y me
Diversión con foto montaje - episodio 16

Diversión con foto montaje - episodio 16

Hasta ahora he resistido añadiendo a los millones de proyectos "Parpadear un LED" que salen en la web. No es decir que realmente no hacen un proyecto de "Parpadear un LED" cuando empecé molestando con el PIC ya lo hice. Bueno, ha llega
Diversión con foto montaje - episodio 17

Diversión con foto montaje - episodio 17

En los viejos tiempos cada compañía telefónica tenía una interfaz propietaria y a menudo diferentes interfaces para diversos teléfonos en su línea de productos. Estos días, sin embargo, casi todos los teléfonos utiliza una interfaz USB, como muchos o
Diversión con foto montaje - episodio 13

Diversión con foto montaje - episodio 13

Hace unos meses estuve considerando hacer un medidor de capacitancia con el PIC. Hice algunas investigaciones en la web y comprobado varios diseños. Entonces cometí el error de comprobación de eBay para ver cuánto uno costaría. Las versiones de placa
Diversión con foto montaje - episodio 12

Diversión con foto montaje - episodio 12

OK, así que soy de esas personas que son alegres cuando por fin llego algo de trabajo pero ROE en mí si yo no entiendo completamente los detalles de por qué funciona. Tal es el caso de este episodio. El fondo es que estoy trabajando en un proyecto pe
Diversión con foto montaje - episodio 3

Diversión con foto montaje - episodio 3

Después de había estado jugando con las fotos de un rato me paso a cuenta de que la web estaba llena de placas de interfaz que pueden hacer una variedad de tareas interesantes. Mejor aún, eran más baratos que tratar de construir sus propias tablas po
Diversión con foto montaje - episodio 15

Diversión con foto montaje - episodio 15

Uno de mis últimos proyectos implicó la construcción de un pequeño amplificador 2.1 con algunos chips de amplificador de potencia TDA que robaban de un elenco de tarjeta electrónica. Desde que era capaz de decidir cómo quería controlar cosas, opté po
Diversión con foto montaje - episodio 14

Diversión con foto montaje - episodio 14

Como ya he mencionado en un episodio anterior, ser voluntario en un centro de reciclaje sin ánimo de lucro. Sobre todo se arreglar Computadoras y monitores LCD, pero últimamente he dado a la tarea de conseguir algunos más viejos sistemas Dell 5650 fu
Diversión con foto montaje - episodio 19

Diversión con foto montaje - episodio 19

Una de mis frases favoritas es "es fácil si sabes cómo." No estoy seguro si recogió en algún lugar hace tiempo o había acuñado yo pero hay mucho de verdad en él. Es tipo de lo que sucedió cuando fui buscando una manera de ampliar lo que hice en
Diversión con foto montaje - episodio 23

Diversión con foto montaje - episodio 23

Como ya he mencionado en anteriores episodios de ser voluntario en el centro local de reciclaje sin ánimo de lucro. Algunas de las cosas de electrónica que consiguen dejar tipo de marcas me sientan como un arqueólogo de la tecnología y tengo una fant
Diversión con foto montaje - Episodio 21

Diversión con foto montaje - Episodio 21

No soy un viajero del mundo pero he estado en varios lugares que difieren radicalmente en temperatura y humedad. No importa lo que alguien dice, "calor seco" no significa nada cuando el termómetro está por encima de 110 grados. Asimismo,-40 grad
Diversión con foto montaje - episodio 9

Diversión con foto montaje - episodio 9

Hace cuarenta años que tenía un par de amigos que se involucro mucho con HO escala trenes modelo. Yo había superado mi interés en trenes después mi viejo Lionel tiene pasado a mi hermano menor pero todavía admiraba el trabajo de que mis amigos estaba
Diversión con foto montaje - episodio 11

Diversión con foto montaje - episodio 11

OK, realmente no tengo TOC pero tengo que admitir que a veces me sale pegado sobre un tema. Además de electrónica y software me gusta hacer cosas como carpintería y, últimamente, de cobre arte patio de tuberías. El problema con la materia de arte es