Paso 4: Software
El enlace de software se enumera a continuación. Mientras que se destina a la 16F688, fácilmente se adaptó a otras versiones de la foto. Sólo asegúrese de que usted elija uno que tiene la capacidad de puerto serie asincrónico. 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.
El software es realmente muy sencillo porque sólo comprobamos para entrada de datos desde el USB y luego envíe bien hacer retroceder para el USB. Para conseguir la velocidad máxima establece el oscilador interno para 8-MHz. Init_Serial configura el puerto para 115.2 kbaud y permite que el receptor y el transmisor para la operación asincrónica. Main_Loop sólo sondea la bandera de interrupción del receptor que se establece después de la recepción de un byte. Si el indicador se llama al controlador de datos para leer el byte y luego comprueba si el buffer de transmisión está disponible. Si es así, entonces copia el byte recibido en el buffer de transmisión para la salida. En realidad, los datos se cargan en el registro de la transmisión y el PIC automáticamente lo carga en el registro de desplazamiento de salida cuando esté disponible. La bandera de interrupción de transmisión se establecerá si el registro de la transmisión está vacío, aunque el registro de desplazamiento de transmisión no está vacío. En esta sencilla aplicación nos encuesta la recepción y las banderas de interrupción de transmisión en lugar de realmente lo que les permite interrumpir el software. Si tuviéramos muchas más cosas sucediendo, como curso de procesamiento de los datos, nos gustaría configurar manejadores de interrupción actual. La rutina de desbordamiento es un controlador de errores en caso de que consigamos más bits de datos recibidos antes de que podamos leer el registro y borrar la bandera de interrupción.