Paso 2: Software
Dos listados de software están disponibles más abajo. Inicialmente sólo había modificado la versión en el episodio 19 (dejando las cuerdas en la memoria RAM) por lo que podría conseguir las actualizaciones de código básico en su lugar. Esa versión no se incluye aquí. En su mayor parte los cambios requeridos fueron modificaciones de algunos registro de nombres y la adición de comandos BANKSEL. Los comandos BANKSEL fueron requeridos porque los registros del puerto serie que se encuentran en Bank0 de la 16F688 están ahora en Bank3 de la 16F1847. Porque también tenemos que comprobar el registro PIR1 (todavía situado en Bank0) en esas rutinas es necesario alternar Bank0 y Bank3. Los problemas que tuve en hacer esos cambios fueron principalmente el resultado de solo faltaba un par de lugares en el código donde se necesitaba un BANKSEL.
Una vez tuve que ir que me movía los hilos que habían sido copiados en memoria a una tabla definida en la memoria de programa (comenzando en la dirección 1000H) la versión. Es similar a lo que hice para la definición de los datos gráficos en el episodio 13. En este caso, sin embargo, utilizar el DT (define table) Directiva para cada una de las cadenas en vez de la Directiva de datos. Me permitió entrar realmente en los datos como cadenas de caracteres, seguidos de los bytes individuales de retorno de carro, avance de línea y el final del marcador de datos de (0 x 00). Las directivas DA (definir ASCII) y también permite ingresar cadenas pero no funcionan para esta aplicación debido a paquete de dos caracteres ASCII de 7 bits en cada ubicación de memoria de programa de 14 bits. La Directiva DT pone un caracter por la localización de memoria. Eso es lo que se necesita para el MOVIW (movimiento indirecto a W) mando a trabajar, ya que sólo recoge los 8-bits más bajos de los datos de la memoria dirigida.
Uno de los listados a continuación utiliza el mismo comando mensaje las cuerdas y que se usaron en el episodio 19 por lo que actúa exactamente igual. El otro listado utiliza una directiva HTML más elaborada para proporcionar una indicación de lo que puede hacerse con cuerdas más largas y el espacio de memoria adicional proporcionado por el 16F1847. En este ejemplo se usan comandos HTML para dibujar dos círculos que representan el estado de la parte delantera y detrás los aspersores. Rojo = off y verde = en (una pantalla de tiro se muestra arriba). Por lo que he leído en línea usted puede ser capaz de enviar hasta 2048 caracteres con un comando CIPSEND. El ejemplo de software actualmente está limitado a 255 caracteres porque una sola ubicación de RAM de 8 bits se utiliza para la cuenta del recuento de caracteres.
Bueno, eso es para el episodio 20 de la "Diversión con foto montaje". Estad atentos para más episodios.