Un dé de LED à l’aide d’un PIC 16F84 (ou 16F88) (6 / 12 étapes)

Étape 6: Interrompt pour économiser l’énergie

Tel que mentionné précédemment, le microprocesseur passeront la plupart du temps il est en mode "veille". (Particulièrement quand il est assis majestueusement sur la cheminée!). En mode veille, l’oscillateur interne est arrêtée, et l’appareil ne consomme essentiellement aucun courant.

Afin de réveiller du mode de veille, nous avons besoin d’avoir une « interruption » se produisent. Interruptions peuvent résulter d’une variété de sources, mais ils indiquent toujours certains changements externes.

Le projet LED dés que nous construisons a le bouton-poussoir connecté au bit 1 du Port B (PB0). Cette broche est aussi fonctions comme entrée « interrompre ». Lorsque le niveau de tension sur cette broche est modifiée, une interruption est générée, le PIC d’arrêter tout ce qu’il faisait et de faire autre chose. C’est cette interruption qui provoque le PIC se réveiller de son sommeil mode.

Interruptions dans le PIC peuvent être « globale » dans la nature (Global Interrupt Enable [GIE] bit défini) ou localisée. Dans notre exemple, nous aimerions continuer à exécuter les instructions immédiatement après la commande de « sommeil », alors que nous devons faire en sorte que le bit GIE est clair. Interruptions globales provoquent l’exécution du programme à crée une branche vers l’emplacement 4, qui est utile pour une approche plus traditionnelle d’interruption vectorisées qui nous couvrirons dans des articles ultérieurs.

Code pour implémenter la fonctionnalité d’interruption ressemblerait ;

MAINLOOP

MOVFW PortB ; faire une lecture factice sur le port B

MOVLW B « 0010000 » ; Laisser le bit GIE au large et activez le

; Pb0 interrompre peu

MOVWF INTCON ; et charger le registre de contrôle d’interruption

SOMMEIL ; attendre tranquillement une interruption...

MOVLW B « 00000000 » ; désactiver les interruptions.

MOVWF INTCON

; Continuer l’exécution de code (où on l’attend le bouton qui sortira...

;

;

;

; éventuellement, nous goto MAINLOOP, où nous le faisons à nouveau tout...

Une chose à noter est que dès que nous recevons une interruption, nous réveiller et immédiatement désactiver n’importe quel autres interruptions. Viens avec nous, les humains, il n’y a rien de plus irritant qu’être interrompu pendant que vous avez été interrompu. Plusieurs niveaux d’interruptions peuvent entraîner des erreurs de programme inattendu, donc nous arrêter n’importe quel autres interruptions ne se produise.

Maintenant que nous avons examiné la mise en œuvre d’entrée, de sortie, de génération de nombres aléatoires et d’interruptions, nous pouvons lier tout cela ensemble et produire du code qui s’exécutera en fait les dés.

Il y a une petite quantité de « colle » autour de ces fonctions pour créer le code en cours d’exécution réel. Je recommande que vous obtenir les listes de programmes et les étudier pour plus d’informations.

Si vous étudient-ils les annonces, vous pouvez trouver qu’il existe des moyens plus rapides et plus élégants de faire ce qui a été fait. N’oubliez pas qu’il y a des réalités commerciales quant au temps consacré à la production d’une solution particulière, et que quelques fois, faire quelque chose "sans cerveau", long chemin est réellement plus rapide de développer. Il s’agit d’un système embarqué, et dans un système simple comme ça, l’accent est mis sur la production d’un résultat, ne pas sur la production du code plus élégant disponible. (Avez-vous réellement regardé le code dans votre contrôleur de four à micro-ondes...)

Articles Liés

Comment faire une chaîne de fée-lumière LED à l’aide de MR16

Comment faire une chaîne de fée-lumière LED à l’aide de MR16

cette instructable est un moyen super simple, facile et amusant de faire une chaîne de fée de LED à l'aide de spots LED MR16.C'est aussi mon premier instructable!, enfin après des années de divers de bricolage et de bricolage amusant. ^_^Donc, mise b
Arduino 16 LEDs à l’aide de deux registres à décalage 74HC595 (illimités broches)

Arduino 16 LEDs à l’aide de deux registres à décalage 74HC595 (illimités broches)

Il s'agit de mon premier espoir instructable, que vous l'aimerez. J'ai été jouer avec LEDs pour un certain temps et j'ai réalisé que je suis assez bien limitée avec broches de l'Arduino et ne peut pas faire des projets énormes qui exige beaucoup d'ép
Une Menorah de LED à l’aide de Stickers Circuit Chibitronics

Une Menorah de LED à l’aide de Stickers Circuit Chibitronics

En décembre notre hackerspace, espace Crash à Culver City, a organisé une soirée construire Instructables, mettant en vedette Chibitronics Circuit autocollants. Avec Channukah le coin de la rue, j'ai pensé qu'une menorah LED serait un projet parfait
ESP8266 contrôle WS2812 Neopixel LED à l’aide de l’IDE Arduino - un tutoriel

ESP8266 contrôle WS2812 Neopixel LED à l’aide de l’IDE Arduino - un tutoriel

Salut tout le monde,Si vous êtes comme moi, vous avez été la recherche autour de l'internet pour un bon tutoriel sur l'utilisation de la ESP8266 avec neopixel LEDs (AKA le WS2812 ou WS2812b), programmée via l'IDE Arduino. Je n'ai pas trouvé tous en u
Smart Phone contrôlée des lumières LED à l’aide de HC-05 et Arduino UNO

Smart Phone contrôlée des lumières LED à l’aide de HC-05 et Arduino UNO

Bluetooth Module HC-05 est l'un de l'élément matériel qui vous permet de rapidement prototype vos idées qui requièrent un élément de contrôle sans fil/conjonctif plus couramment utilisé. Ce projet est une très brève démonstration de comment nous peut
Collier de déclaration de LED à l’aide de rondelles et ruban

Collier de déclaration de LED à l’aide de rondelles et ruban

Un collier simple à l'aide de trois LED s'allume, rondelles, plastique, rubans et fil conducteur. Le collier est une bonne introduction aux circuits.Matériaux:Assortiment de rondelles (trouvés dans le garage)deux époxyde clairrubansac en plastique bl
Constellations de LED à l’aide de Chibitronics

Constellations de LED à l’aide de Chibitronics

Observation des étoiles sont amusant et impressionnant, mais ne peuvent se faire sur la nuit nuageux ou pluvieux. À l'aide de chibitronics, vous pouvez faire votre propre ciel de nuit, y compris vos constellations préférées.Matériaux :Kit de démarrag
Lampe de bureau LED à l’aide de sugru, kit ikea de nick-accusés de réception négatifs et kitronik

Lampe de bureau LED à l’aide de sugru, kit ikea de nick-accusés de réception négatifs et kitronik

Je ne semblent jamais avoir assez de lumière sur mon bureau ces jours-ci, la lumière de ma lampe de bureau semble trop d'ombres et prend un peu trop longue pour être lumineux avec une moderne ampoule économie d'énergie.J'ai vu le nouveau Kit de lampe
Patrons de LED à l’aide de launchpad msp430

Patrons de LED à l’aide de launchpad msp430

il s'agit d'un simple programme micro-contrôleur où nous faisons led de lueur dans différents motifs attrayants à l'aide de launchpad msp430. J'ai trouvé qu'il y a beaucoup d'instructables sur arduino, mais très peu existent pour msp430, bien que msp
Bracelet de LED à l’aide de CD4049

Bracelet de LED à l’aide de CD4049

Voici un petit bracelet avec 6 LEDs qui pulse dans une configuration intéressante. Le circuit utilise un convertisseur continu-alternatif hexagonal CD4049 unique.Liste des éléments nécessaires :LEDs rouges x 3LEDs vertes x 3Tube en carton x 1IC CD404
Cartes de Noël LED à l’aide de PIC 10F200

Cartes de Noël LED à l’aide de PIC 10F200

il s'agit d'une instructable sur comment construire une carte de Noël avec microcontrôleur PIC 10F200.Comme ce PIC a six broches et la taille d'un transistor SMD, il est idéal pour les applications de faible encombrement et peut facilement être repro
STM32F103 Blink LED (à l’aide de Keil et STMCubeMX)

STM32F103 Blink LED (à l’aide de Keil et STMCubeMX)

Dans ce tutoriel, je vais montrer que vous décrit les étapes à LED clignote sur votre planche de STM32F103.Ce tutoriel est divisé en 4 étapes :Étape 1: Création de projet1-1: créer le projet à l'aide de STM32CubeMX1-2: mise en place de LED dans STM32
Comment faire le Fader de LED à l’aide de Digispark

Comment faire le Fader de LED à l’aide de Digispark

https://www.dropbox.com/s/zj1mg9ewo62ttw7/animoto_high_res.mp4MATÉRIAUX REQUIS(Dans l'ordre)article fournisseur Cat # résistance de 220 ohms de quantité digikey.com 220QBK-ND 3 LED RGB digikey.com 754-1492-ND 1 en-tête femelle 3 broches digikey.com S
Clignoter la LED à l’aide de vos ondes cérébrales

Clignoter la LED à l’aide de vos ondes cérébrales

Ce qui est Brainsense bandeau ?Brainsense est un casque élégant, monocanal, sans fil qui surveille l'activité de votre cerveau et EEG se traduit par des données significatives, vous pouvez comprendre. La plateforme de biocapteurs fournit une base pui