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

Étape 5: La conception logicielle

C’est tout pour la conception du matériel, il nous faut concevoir le logiciel qui vous permettra à notre matériel devenu un dé.

Une chose que vous avez probablement remarqué était que la mise en œuvre matérielle a été fait de manière structurée, bloc de construction. Nous avons besoin d’aborder la conception de nos logiciels de la même manière.

Dans la conception de notre logiciel, permet de démarrer en divisant le système en blocs fonctionnels. Une division simple consiste à diviser le problème en une entrée (The Button), un traitement (en fait lancer le dé) et une sortie (les LEDs).

Permet de démarrer par la construction de la partie de la sortie de notre code d’abord. C’est la composante plus visuelle, et il nous permet de « mettre certains s’exécute sur le Conseil d’administration » au début. Avant de commencer bien, permet de parler un peu le jeu d’instructions de microprocesseur et de l’architecture.

La gamme PIC de microprocesseurs implémenter un ordinateur réduit de la valeur d’Instruction (RISC). Ayant un processeur RISC est un facteur qui rend ces CPU si vite. Un inconvénient d’avoir un processeur RISC est que la gamme PIC de microprocesseurs appliquer seulement environ 37 instructions, donc il faut parfois plus d’instructions de faire les choses, et souvent les solutions ne semblent toujours être aussi intuitive qu’ils sont sur, par exemple, un Z80 ou 6502.

Sur la photo, l’indicateur principal de travail est le registre de « W ». La plupart de nos opérations utilisent le registre de « W » en quelque sorte. Prenons, par exemple, un ensemble de commandes qui sortira un modèle binaire « 10101010 » au Port B.

MOVLW B « 10101010 »

MOVWF PortB

Tout d’abord, le mot que nous voulons écrire est chargé dans le registre de « W », puis le registre de « W » est écrit au Port B.

Nous pouvons utiliser la séquence d’opérations pour générer le modèle binaire pour afficher un lancer de dés de 6. Le diagramme schématique, nous pouvons voir que la première matrice est attachée au Port A, bits 0 – 3 de la manière suivante ;

Port A(0) - Centre LED

Le port a (1) - coin des LEDs (1) et (3).

Le port a (2) - coin des LEDs (2) et (4).

Port a 3 - milieu LEDs (5) et (6).

Pour afficher le modèle pour un 6, tous les voyants du coin et toutes les LEDs milieu sont sur, mais le centre voyant est éteint. Cela équivaut à modèle binaire des b « 00001110 ». Ainsi, pour afficher un 6, nous avons simplement exécuter les instructions ;

MOVLW B « 00001110 »

MOVWF PortA

De même, pour afficher un 1 (le centre LED), nous utiliserions ;

B MOVLW « 00000001 »

MOVWF PortA

Nous avons été référence à 6 comme 00001110 et 1 comme 00000001. Il peut être déroutant de composer des numéros comme ça, surtout quand ils ne sont pas vraiment des numéros, ils sont tout simplement les modèles binaires. Pour faciliter la confusion, la plupart des assembleurs permettent l’utilisation des « Constantes » pour fournir un mappage entre un nom de texte et un certain nombre. Dans le cas de notre écran de dice, nous pouvons utiliser le mot Die6 à la place de 00001110, ou Die1 à la place de 00000001.

Une liste des constantes que nous serions en mesure d’utiliser sur notre écran serait ;

Die1 B « 00000001 »

Die2 B « 00000100 »

Die3 B « 00000101 »

Die4 B « 00000110 »

Die5 B « 00000111 »

B Die6 « 00001110 »

B affectées "00000000"

DieTest B « 00001111 »

Les 2 dernières entrées (affectées et DieTest) sont utiles pour éteindre l’écran ou vérifier que tous les voyants sont opérationnelles au démarrage en allumant toutes les LEDs.

Maintenant que nous savons comment afficher un certain nombre, nous devrions produire la pierre angulaire qui nous permet de fournir un certain nombre, et le modèle binaire appropriée est chargé dans l’affichage.

Avant de discuter de cette routine d’affichage, il convient de mentionner que le logiciel est mieux écrit de manière modulaire, une routine à la fois. Cela permet de fonctionnalité à ajouter composant par composant. Nous pouvons ensuite nous concentrer sur l’écriture de chaque composant individuellement, permettant à des logiciels complexes à construire couche par couche.

Retour à notre bloc de construction pour l’affichage d’un lancer de dés. Une routine pour implémenter la fonctionnalité d’affichage pourrait ressembler à ceci ;

; Tout d’abord, définir les constantes nécessaires...

Die1 EQU B « 00000001 » ; certaines constantes sont définies

Die2 EQU B « 00000100 » ; pour les dés de LED divers

Die3 EQU B « 00000101 » ; modèles de bits

Die4 EQU B « 00000110 »

Die5 EQU B « 00000111 »

Die6 EQU B « 00001110 »

Affectées EQU B « 00000000 » ; Toutes les LED éteint

DieTest EQU B « 00001111 » ; Toutes les del sur

; Disp_Dice1 - provoque un certain nombre à être apposé sur une face de dé

; Entrée : Registre W

; Sortie : Un modèle de LED sur le dé.

; Commentaires : pour les valeurs de Registre « W » ; 0 = toutes les LED off

; 1 – 6 = afficher le modèle pour 1 – 6

; 7 = toutes les LEDs ON (mode Test)

;

DISP_DICEA APPEL DIE_LOOKUP

MOVWF PortA

RETOUR

; Il s’agit d’une ramification table de choix. Fondamentalement, quelle que soit la valeur est passée via le registre de W est

; ajouté au compteur de programme (PCL). Cette époque se traduit par la valeur appropriée pour la

; résultat de recherche chargée dans le registre W et contrôle étant retourné à l’appelant

; sous-routine.

; C’est à dire ; Si un 2 est passé par le biais du Registre W, le ADDWF PCL, opération f provoque 2 être

; on ajoute le compteur de programme courant provoquant l’instruction RETLW Die2 à exécuter.

; Il en résulte la constante Die2 (B « 00000100 ») doit être chargé dans le registre W, et

; commande retour au programme appelant.

DIE_LOOKUP ADDWF PCL, f

RETLW affectées

RETLW Die1

RETLW Die2

RETLW Die3

RETLW Die4

RETLW Die5

RETLW Die6

RETLW DieTest

La plus grande partie de la liste ci-dessus est commentaires (lignes précédées du caractère «; »), il devrait être en mesure de suivre.

La routine d’affichage peut être utilisée en exécutant le code suivant ;

MOVLW 4

APPEL DISP_DICEA


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