Paso 4: Software
A continuación los enlaces de software. 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 denominada EXT). 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.
Hay actualmente tres versiones del software suministrado. Los tres utilizan el mismo código en el controlador de interrupción para capturar el flujo de bits de cualquier versión del sensor que estamos utilizando. Las diferencias en la parte principal del software son en datos que bits son capturados y utilizados. La versión de DHT-11 simplemente captura los primeros 8 bits y los 8 bits tercera y luego los analiza en valores enteros para la visualización de temperatura y humedad. El análisis se realiza simplemente por sustracción repetitiva para determinar los diez dígitos. El resto representa entonces la cifra de la unidad.
Las versiones de segunda y terceros son tanto para el DHT-22/AM2302. La diferencia está en cómo se analizan los bits de datos. Este módulo es un poco más difícil trabajar con debido a que la parte fraccionaria de los valores requiere el sensor de 10 bits significativos en lugar de sólo los 8 bits utilizados por el DHT-11 para cada valor de salida. Dado que las instrucciones del PIC funcionan sólo para datos de 8 bits, esto significa que la complejidad del código debe aumentar con el fin de manejar adecuadamente todos los bits de 10. En la versión de "Mesa" del software simplificar el código capturar sólo los 8 bits más significativos y luego usando ese valor al índice en tablas de búsqueda para los dígitos de la pantalla. Este método significa que perdemos dos bits de datos fraccionarios (0.3) en nuestra resolución. Para este tipo de proyecto que es un equilibrio razonable. La otra versión de software conserva la precisión completa de 10 bits, pero a expensas de lógica más compleja para la captura de datos y análisis. Ambas versiones se ofrecen como ejemplos de diferentes métodos que puede utilizar en sus proyectos.
Si usted está preocupado por la posibilidad de una transmisión ocasional incorrectos, desea incluir el código para verificar los 8 bits de suma de comprobación al final de cada flujo de bits. Para hacer que se captura cada byte de datos individualmente, sume los primeros cuatro bytes (ignorar el bit de acarreo) y luego verificar que el resultado coincide con el quinto byte.
Los valores mostrados para la humedad y la temperatura no pueden cambiar mucho mientras está viendo por lo que es bueno tener algo que le permite saber que las mediciones se toman tal y como previsto. Para hacer eso proporciona una variable llamada "Latido" que obtiene pueden alternar entre un espacio ASCII (en blanco) y una estrella.