Paso 4: 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 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. Sólo asegúrese de que el PIC que uso tiene un pasador que permite una entrada de interrupción externa (generalmente etiquetados como EXT o INT). Como hemos visto antes, la 16F688 (14 pines PIC) podría utilizarse con las mismas conexiones pin físico como el 12F683, si quieres más pines de I/O.
El software muestra es bastante sencillo y está configurado para interrumpir en los bordes de la caída de la línea CLK. El manejador de interrupción comprueba el estado de la línea DT para determinar la dirección de rotación del eje y un simple contador actualiza en consecuencia. Dado que el software de ejemplo utiliza una ubicación de memoria de 8 bits para el contador, el rango es de +127 -128. El contador no se guarda en la EEPROM por lo que siempre se restablecerá a cero cuando está encendido. El interruptor cambiará su estado cada vez que se presiona. Se inicializa "OFF". El estado del contador y el estado del interruptor se muestran en la pantalla LCD.
El selector le permite sentir cada clic ya que es por lo que se puede esperar ver el conteo de la pantalla cambia con cada clic. En realidad, ya que el software sólo se ve interrumpido en el flanco descendente de la línea CLK, el Conde va a cambiar cada segundo clic. El medio de clic es el flanco ascendente de la línea CLK al girar en sentido horario. Cuando va en sentido contrario que borde mismo se convierte en el borde descendente. Puedes ver ese efecto moviendo sólo el eje hacia adelante y hacia atrás a través de un punto solo clic.