Diversión con foto montaje - episodio 13 (5 / 6 paso)

Paso 5: Software

A continuación los enlaces de software. Mientras que son objeto de la 16F1847, son fácilmente portadas a otras versiones de la foto. Usted necesitará cambiar la línea que identifica la versión de PIC (lista =) y el archivo de inclusión, pero los cambios intuitivas. Las líneas __CONFIG también pueden necesitar ajustar sólo porque uno o dos de las etiquetas utilizadas se deletrean diferentemente en algunos de los archivos de inclusión. Los requisitos más grandes son bastantes puertos de la entrada-salida, hay suficiente memoria de programa y capacidad direccionamiento indirecto de 16 bits.

Como vimos en la descripción de la pantalla LCD tiene la capacidad de ser tratado en un modo serial o de un modo paralelo. En el modo paralelo puede ser un poco 4 o una interfaz de 8 bits al igual que el LCD 1602. Ya que necesitaba actualizar el PIC para obtener la capacidad necesaria de direccionamiento indirecta que terminé con suficientes líneas de E/S para hacer fácilmente una interfaz paralela de 8 bits. También he creado una versión que funciona con el cambio de registro interfaz que detallada en episodio 1. Ambos archivos de montaje se incluyen a continuación.

Hay algunas otras diferencias significativas entre los 16F1847 y las fotos más que hemos estado utilizando. En primer lugar, el oscilador interno en las fotos antiguas sólo subirían a 8 Mhz. Que ha sido más de lo suficientemente rápido como para estos proyectos poco pero siempre es bueno tener una pequeña potencia extra disponible si alguna vez lo necesita. Oscilador interno de 16F1847 puede subir a 16 Mhz su propio y hasta 32 Mhz por sacrificar a una de las capacidades internas. Otra diferencia importante es que hay un montón de nuevos registros en el 16F1847 que significa que algunos de los que necesitamos no en Bank0 o Banco1. Es más importante para asegurar que tenemos el Banco correcto seleccionado en el acceso a los registros. Un nuevo conjunto de registros que no usamos aquí pero que puede ser muy útil son los registros LATA y LATB. Estos son registros de cierre que contenga el valor último que fue escrito a PORTA o PORTB. Puedes leer que la LAT se registra directamente si desea realizar una operación de leer-modificar-escribir. Usted también notará que hay dos líneas de "_CONFIG". Eso es porque todas las nuevas opciones requieren dos registros de configuración. Es muy importante asegurarse de que usted consigue las derecha opciones asociadas con el registro de configuración correcta porque MPLAB no esta bandera como un error. Aprendí la manera dura.

El selector que se muestra en el esquema consigue leer en tiempo de inicialización para determinar si debe mostrarse el texto o la imagen de gráficos. Cambiar el interruptor mientras esté en funcionamiento no cambiará a la otra pantalla. Necesita apagar, cambiar el interruptor, luego encender otra vez. Recuerde, esta es sólo la configuración de la demo. Las rutinas de llamada para mostrar texto básicamente son los mismos que utilizamos para el LCD 1602. La primera diferencia es que tenemos cuatro rutinas para cuatro líneas en lugar de dos. La segunda diferencia es que las direcciones a partir de las líneas son ligeramente diferentes.

El modo de gráficos requiere que usemos el "conjunto de instrucciones extendido". Suena aterrador, pero realmente no es. Qué es en realidad un poco más difícil es cómo abordar la memoria gráfica. La primera diferencia es que nos centramos en la memoria como una matriz así que tenemos que enviar las coordenadas verticales y horizontales de la memoria para escribir. La especificación habla de direcciones verticales y horizontales pero que puede resultar un poco confuso. En efecto, vertical equivale a fila y horizontal equivale a la columna. Puesto que estamos enviando un byte a la vez, hay 16 bytes por fila, que equivale a 128 bits (pixeles). Hay un total de 64 filas, pero la memoria no es totalmente contigua. Se divide en mitades superior e inferior, cada uno con 32 filas de 16 columnas. En la parte superior la mitad de las columnas siempre comienzan con dirección 80h. En la parte inferior la mitad de las columnas siempre comienzan con dirección 88h. La dirección de filas de 80h a 9Fh en ambas mitades. Usted puede entrar en problemas intentando enviar una dirección de columna que no sea de 80 h para que el método seguro es siempre escribir una fila completa de 16 bytes. Si intenta escribir sólo una parte de una fila que usted tendrá que enviar dos bytes de datos por la dirección. La lógica de LCD almacena 16 pedacitos por el espacio de la memoria.

Internamente, la pantalla LCD incrementará automáticamente la dirección horizontal (columna) cada vez que recibe datos y automáticamente volverá a 80h o h 88 según la cual la mitad de la pantalla nos dirigimos a. La dirección vertical (fila) no se incrementará automáticamente. El software necesita hacer un seguimiento de la dirección de la fila real pero también realiza un seguimiento del número de bytes escritos por fila para saber cuándo se debe actualizar la dirección de la fila. En nuestro ejemplo enviamos una fila completa de datos y luego envíe una actualización de dirección cuando cambiamos a una nueva fila. También utilizamos la dirección de la fila para saber cuándo reinicializar las direcciones para la parte inferior de la mitad de la pantalla.

Vimos antes que definimos cada línea de datos hexadecimal con la Directiva de "datos". En este caso los datos realmente se escribirá en la memoria de programa cuando programa el chip. Esto es un poco diferente de nuestros métodos anteriores del uso de tablas de búsqueda donde utilizamos los comandos "RETLW" para devolver el valor deseado. En nuestro ejemplo actual lo único que queremos leer una ubicación de memoria específica que utilizaremos una forma diferente de direccionamiento indirecto para llegar allí. Esta es una de las razones para usar un chip PIC más nuevos. Proporciona más de sólo 8 bits de direccionamiento indirecto. El software muestra realmente tiene dos tablas de gráficos, cada uno que requiere 1 byte k de espacio de memoria de programa. Para cambiar la visualización de gráficos necesita cambiar dos líneas de código en la rutina de "Do_Graph" para que apunte a "Foto1" o "Foto2".

Una cosa importante a tener en cuenta al crear los gráficos tablas de datos en nuestro programa de ejemplo es que debe empezar en un límite de página (xx00h) y debe contener exactamente 1024 bytes. Cada tabla es etiquetado por separado y da una dirección específica (la declaración de código). Mientras que la definición de cada código tiene una etiqueta, no es la etiqueta que usamos en el programa. Las etiquetas utilizadas en el programa son "Foto1" y "Foto2" que preceden directamente sus respectivas líneas de datos.

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 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
Diversión con foto montaje - episodio 2

Diversión con foto montaje - episodio 2

Bueno el episodio 1 fue todo un éxito porque realmente alguien que no me miró. Así que aquí vamos con el episodio 2. En este Instructable buscamos algunos datos reales de entrada para enviar a la pantalla de LCD de 1602 que construyó en el episodio 1