Paso 2: El código
Aquí está el código de fuente ensamblador PIC para el proyecto.La intensidad del LED es variada mediante modulación de anchura de pulso (PWM). Otros Instructables y tutoriales en otros lugares ya cubren con mucho detalle mejor que pude. Sin ofender en sugiriendo buscar alrededor en otros lugares si no estás familiarizado con la teoría.
El ciclo de trabajo PWM no rampa hacia arriba y hacia abajo linealmente. Corrección gamma crea una rampa exponencial que el ojo percibe como un incremento casi lineal en brillo. Porque soy perezoso y porque tan poco espacio de programa fue utilizado, en lugar de elaborar una función exponenciación simplemente tengo una mesa grande de precomputed valores de corrección gamma. El PIC10F206 tenía espacio suficiente para contener esta tabla, pero un dispositivo más restringido no pudo tener este lujo y menos código matemáticas reales.
Uno de los pines del PIC (GP2) se utiliza para la salida. Esta clavija fue elegida como más tarde podría decide utilizar la función de comparador de la viruta (disponible en los pines GP0 y GP1) detecta la noche o a la sombra y el palpitar sólo cuando es lo suficientemente oscuro. Como es, el dispositivo sólo palpita sin cesar cuando la batería está instalada, independientemente del medio ambiente. El ciclo de trabajo PWM exponencial significa que el LED está apagado la mayor parte del tiempo, y una batería nueva puede funcionar el aparato continuamente durante un par de semanas.