Un dados de LED con un PIC 16F84 (o 16F88) (6 / 12 paso)

Paso 6: Se interrumpe para ahorrar energía

Como se mencionó anteriormente, el microprocesador pasará la mayor parte de su tiempo en modo de reposo. (Especialmente mientras está sentado majestuosamente en la chimenea!). En modo sleep, se detiene el oscilador interno, y el dispositivo no consume básicamente ninguna corriente.

Para despertar del modo de espera, necesitamos tener una 'interrupción' ocurrir. Interrupciones pueden deberse de una variedad de fuentes, pero siempre señalan un cambio externo.

El proyecto LED dado que estamos construyendo tiene el pulsador conectado al bit 1 del puerto B (PB0). Este pin es también funciona como entrada 'interrumpir'. Cuando cambia el nivel de voltaje en este pin, se genera una interrupción, haciendo que el PIC para detener lo que estaba haciendo y a hacer otra cosa. Es esta interrupción que hace el PIC despertar de ella del modo de espera.

Interrupciones en el PIC pueden ser 'global' en la naturaleza (habilitación de interrupción Global [GIE] bit set) o localizada. En nuestro ejemplo, nos gustaría continuar ejecutando instrucciones inmediatamente después el comando 'sleep', así que tenemos que asegurar que el bit GIE está claro. Interrupciones globales causan ejecución del programa a rama a posición 4, que es útil para un enfoque más tradicional de interrupción virales que trataremos en posteriores artículos.

Código para implementar la funcionalidad de interrupción sería similar;

MAINLOOP

MOVFW PortB; hacer una lectura falsa en Puerto B

MOVLW B '0010000'; Deja el bit GIE apagado y permiten la

; Bit de interrupción PB0

MOVWF INTCON; y carga el registro de control de interrupción

DORMIR; esperar tranquilamente una interrupción...

MOVLW B '00000000'; deshabilitar interrupciones.

MOVWF INTCON

; Continuar la ejecución de código (donde esperamos al botón para ser puesto en libertad...

;

;

;

; eventualmente, nosotros goto MAINLOOP, donde hacemos todo otra vez...

Una cosa que note es que una vez que hemos recibido una interrupción, wake y desactivar inmediatamente cualquier interrupciones más. Solo con nosotros los seres humanos, no hay nada más irritante se interrumpa mientras que ha sido interrumpido. Múltiples niveles de interrupciones pueden causar errores inesperados del programa, por lo que dejamos de cualquier otras interrupciones que se produzcan.

Ahora que hemos examinado cómo implementar la entrada, salida, generación de números aleatorios y las interrupciones, podemos atar todo esto juntos y producir el código que se ejecutará realmente los dados.

Hay una pequeña cantidad de 'pegamento' alrededor de estas funciones para producir código corriente. Te recomiendo que obtener los listados de programas y estudiar para obtener más información.

Si estudias la lista, usted puede encontrar que hay formas más rápidos, más elegantes de hacer lo que se ha hecho. Recuerda que hay realidades comerciales en cuanto al tiempo invertido en la producción de una solución particular, y que algunas veces, no hacer algo el 'cerebro', mucho es realmente más rápido desarrollar. Se trata de un sistema integrado, y en un sistema sencillo como este, el énfasis está en la producción de un resultado, no en la producción del código más elegante disponible. (Ha usted realmente vieron el código en el controlador del horno de microondas...)

Artículos Relacionados

Pantalla de 7 segmentos LED con controlador PIC y Flowcode V5

Pantalla de 7 segmentos LED con controlador PIC y Flowcode V5

En primer lugar, si usted tiene cualesquiera preguntas, sienta libre de comentar! Estaría más que feliz de contestar tu pregunta lo mejor posible!!Materiales utilizados:-PIC 18F452 microcontrolador (hará cualquier microcontrolador PIC con suficientes
Parpadear un LED con lenguaje ensamblador y un PIC

Parpadear un LED con lenguaje ensamblador y un PIC

para decir lo tan obvio, hay muchos sabores de microcontroladores en el mundo.  Existen innumerables aplicaciones para ellos.  Este Instructable cubrirá los pasos necesarios a parpadear un LED usando un microcontrolador PIC y el lenguaje de ensamblad
Tarjetas de Navidad de LED con PIC 10F200

Tarjetas de Navidad de LED con PIC 10F200

este es un instructivo sobre cómo crear una tarjeta de Navidad del LED con el microcontrolador PIC 10F200.Este PIC tiene seis pernos y es del tamaño de un transistor SMD, es ideal para aplicaciones de bajo perfil y puede fácilmente introducirse cuand
Situado o apagar un led con un celular motorola c261 y el pic 16f84a mediantes comandos en

Situado o apagar un led con un celular motorola c261 y el pic 16f84a mediantes comandos en

En este proyecto vamos a situado y apagar un led a través de comandos en con el Motorola C261 y el famoso microcontrolador 16F84A.Paso 1: En este proyecto vamos a situado y apagar un led a través de comandos en con el Motorola C261 y el famoso microc
Batería DIY: Energía una linterna de LED con cambio de bolsillo!

Batería DIY: Energía una linterna de LED con cambio de bolsillo!

En este artículo, le mostraré cómo reemplazar la típica 3 AAA batería común baratos linternas de LED con cambio de bolsillo de accionar la linterna en una pizca. La batería creada incluso cabrá derecho interior donde debe ir la batería normal! Todos
Bola que destella LED con agua salina

Bola que destella LED con agua salina

La bola de LED es un proyecto basado en la propiedad eléctrica de agua salina. Primero poner el cátodo del LED en una taza con agua salada, conecta el ánodo al polo positivo de una batería y también conectar un cable al polo negativo de la batería. S
3 x 3 x 3 cubo de LED con control opcional de pc

3 x 3 x 3 cubo de LED con control opcional de pc

este es mi 3 x 3 x 3 cubo led. Original es que controlaba con un pic16f628a. Tiene 27 leds y cada uno de ellos puede ser controlado por el pic. Puedes ver un video de mi cubo con el pic.Tengo un archivo, voorbeeldprogramma.hex, también subido por lo
Multivibrador astable (intermitencia LED) con circuito escriba

Multivibrador astable (intermitencia LED) con circuito escriba

Un multivibrador astable es un circuito oscilante entre dos circuitos de resistencia-condensador en el que el estado de encendido de dos circuitos de RC no es estable.Es decir, dos circuitos de encender y apagar con el uso de transistores. En este ci
Activado por voz de LEDs con Arduino

Activado por voz de LEDs con Arduino

Este proyecto es una extensión para el reconocimiento de voz con Arduino (leandro4b). Sin embargo, en lugar de usar 3 LEDs de color separados, usé un multicolor RGBW LED emisor de 4 canales. Tuve la oportunidad de trabajar en LED Engin el verano pasa
Soldadura del árbol del LED con forma libre

Soldadura del árbol del LED con forma libre

Este es un divertido proyecto soldadura forma libre para las fiestas. Utiliza dos circuitos flip-flop a 16 LED, y usted puede organizar cualquier forma como. Este Instructable le mostrará un (especie de) forma del árbol.Forma libre de soldadura no ut
Iluminación LED con Arduino

Iluminación LED con Arduino

Este es el último tutorial de LED. Esto le dará los bloques de construcción básicos necesitados para hacer cualquier cosa con LED. En la foto son todas las cosas que necesitas para este tutorial entero, que consiste en un par de proyectos de mini. La
4 x 4 x 4 interactivo-cubo del LED con Arduino

4 x 4 x 4 interactivo-cubo del LED con Arduino

para explicar mi 4 x 4 x 4 cubo del LED interactivo publicado antes, un poco más claro, voy a intentar hacer mi primer paso por paso instructable.Este 4 x 4 x 4 cube es interactivo usando la esquina de cuatro LEDs LEDs y sensores que reaccionan a la
Control de tira de LED con atenuador y circuitos de pulsos Audio

Control de tira de LED con atenuador y circuitos de pulsos Audio

Este es un circuito realmente pongo juntos basado en otro Instructable para el pulso a la música: Este Instructable me puso a pensar que es un poco una basura para tener tira LED sentado en el ferrocarril de imagen que puede ser utilizado cuando está
Cómo limpiar un centavo con salsa picante

Cómo limpiar un centavo con salsa picante

me encanta salsa (algunas personas me llaman "Baws de sierras") pero por alguna razón mi boca no puede manejar el calor de la salsa caliente. Algo sucede cuando salsa caliente golpea mi paladar que envía mi boca en un frenesí, me da un sudor frí