Accueil fait 7 segment affichage horloge (3 / 5 étapes)

Étape 3: Un regard intérieur sur les tâches PIC16F727

je vais vous décrire les choses que j’ai utilisé de la photo, pour que ce projet se réalise.  La seule chose principale dont vous avez besoin pour ce genre de tâches est une minuterie. Une minuterie compte des cycles d’enseignement, qui ont rapport strict avec le cristal, ou oscillateur que vous utilisez pour votre processeur d’horloge. J’ai utilisé l’oscillateur interne de garder le PCB simple. Un PIC a besoin pour les horloges à exécuter une seule instruction :

FOSC = 16000000 Hz
Finst = 4000000 Hz
Tinst = 1 / Finst = 250 ns

Une instruction prend 250 nanosecondes, il s’agit de la même fréquence que la minuterie atteint avec. S’il faut un timing de 1 millisecondes, nous laissons la minuterie exécuter pour 4000 mode d’emploi, puis le signal, que 1 ms se soit écoulé.

Pour que cela soit très précis, nous utiliserons des interruptions. Une interruption pour un microcontrôleur est comme une tape sur l’épaule pour vous. Vous êtes juste garde de votre propre entreprise, puis quelqu'un arrive, tapant votre épaule pour dire quelque chose. Vous quittez votre commercer, et faire attention à le « interruption » qui vient s’est produite. Après que vous avez terminé l’écoute, vous réagir d’une certaine manière, puis revenir en arrière pour les trucs que vous avez fait avant que quelqu'un vous interrompt. Cela dit la façon dont le PIC, vous juste réparé une interruption.

Le commandant de bord ne fait pas ce que vous voulez, il le fait, ce que vous dites qu’il fasse. Il s’agit d’une chose très importante à mémoriser : un bug de silicium est rarement la raison pourquoi votre projet ne démarre. C’est à 99,9 % du temps défectueux de programmation.
Que devons-nous dire le PIC à faire afin d’atteindre ce que nous voulons :

Configuration de l’oscillateur :
Il faut configurer l’oscillateur interne pour être la source d’horloge principale pour ce projet, nous le faisons en mettant 0 x 30 dans le registre OSCCON.

Activation des interruptions :
Tout d’abord, il faut activer le système d’interruption. Cela se fait en manipulant les bits dans le registre INTCON.
Il faut activer les interruptions globales et interruption Timer0. En regardant la feuille de données, nous voyons bit 7 à être l’interruption mondiale bit, et bit 5 à être l’interruption Timer0 activez bit. Le reste des bits sont des zéros, nous n’avez pas besoin de les changer. Cela donne une valeur binaire de b10100000, c'est-à-dire en hexadécimal 0xA0. Nous avons mis que dans le registre INTCON.

Convertisseurs :
Un diviseur est un compteur lui-même, qui incrémente à chaque instruction du cycle. Ces - par défaut - sont sur 1:1 afin qu’ils n’interfèrent avec le fonctionnement normal de la minuterie. La sortie du diviseur est connectée à l’entrée de la minuterie, comme nous pouvons voir sur le diagramme. Si nous fixons un diviseur à 1 / 2, sa sortie ira à « 1 » seulement après que 2 cycles d’instruction ont terminé. Cela signifie que la minuterie n’incrémente à chaque cycle d’instruction, mais à chaque 2-nd. Semblable à celui-ci, en définissant le Prédiviseur à diviser par 4, le TMR0 est obtenir incrémenté chaque cycle d’instruction de la 4-ème, et ainsi de suite.

Configuration Timer0 faire interrompre chaque milliseconde :
Timer0 compte les instructions en incrémentant la valeur du Registre TMR0. que la valeur est 8 bits de large, ce qui signifie, nous ne pouvons compter plus loin, 255. Si le compteur est à 255 et un incrément se produit, le registre déborderont et commencer le nouveau comptage de 0.
C’est le point, quand une minuterie peut signaler une interruption. Mais si cela se produit à chaque cycle de 256-th, comment pouvons nous utiliser pour compter jusqu'à 4000 ? Grâce à l’aide des convertisseurs.

4000 / 256 = 15,625

Nous avons besoin d’une division par 16 (la plus proche et le plus grand diviseur valeur) pour y arriver.

4000 / 16 = 250 ;

Puisque la minuterie offre une interruption au report de 255 -> 0, nous allons mettre juste un décalage de 250-256 = 6 dans le registre TMR0. Cette valeur doit être actualisé chaque fois que l’interruption est desservie. Il faut aussi désactiver l’indicateur, qui a été défini à « 1 », lorsque le roulement Timer0 s’est produite.
Cela étant dit, nous avons maintenant une interruption précise, qui produit à chaque milliseconde. J’ai implémenté généralement un compteur dans la routine d’interruption du service, je compte 1000 interrompt, mise en place d’un second signal. Compter les secondes doit se faire dans la boucle principale, il y a des compteurs simples qui comptent 60 secondes, puis débordent pour incrémenter la variable « minute ». Puis, la même manière, les "heures", "jours", « mois » variable est incrémentée.

Les chiffres
Si le projet est assez simple et a certains afficheurs 7 segments dans le schéma, je m’occupe jamais de localiser les broches de contrôleur de segment celui à côté de l’autre. Ce projet n’était pas une exception, définit le floue, vous pouvez le voir au début du programme sont en place pour simplifier les façons j’ai afficher les chiffres. Si vous prenez assez de temps pour essayer de les comprendre, vous verrez comment cette partie affiche effectivement est facile.

Articles Liés

Arduino Nano et Visuino: 7 segments affichage horloge avec MAX7219 et DS1307 en temps réel Clock(RTC)

Arduino Nano et Visuino: 7 segments affichage horloge avec MAX7219 et DS1307 en temps réel Clock(RTC)

DS1307 horloge en temps réel sont des modules de RTC I2C faible coûts largement disponibles. Ils viennent avec une horloge et une petite batterie et lorsqu'il est connecté à l'Arduino, peuvent garder trace de temps réel même si la carte Arduino est h
Arduino 7 Segment affichage horloge (+ activation vocale)

Arduino 7 Segment affichage horloge (+ activation vocale)

Dans ce instructable je vais vous montrer comment faire votre propre horloge d'affichage (4 chiffres) 7 segments Arduino basé avec fonction activation vocale !Le circuit utilise le microcontrôleur ATmega328p (identique à la carte de Arduino uno) et l
7 segments affichage horloge

7 segments affichage horloge

Dans cette insondable je va vous montrer comment faire une horloge numérique !Vous aurez besoin :Un kit de fondateur de sunQui comprend une planche à pain, fils de raccordement, boutons, voyants et un afficheur 7 segments.Vous aurez également besoin
Arduino binaire 7 Segment affichage horloge & calendrier

Arduino binaire 7 Segment affichage horloge & calendrier

Contrairement à la plupart des autres horloges binaires cette horloge affiche la date et binaire sur 3 rangées de 8 sept segments affiche un et zéro plutôt que de quelques rangées de LEDs.Tous les détails sur ce mon site web ici.Un microprocesseur de
Horloge à l’aide de 7 Segment affichage numérique contrôlé à l’aide de la télécommande de la TV

Horloge à l’aide de 7 Segment affichage numérique contrôlé à l’aide de la télécommande de la TV

il y a des variétés d'horloge numérique disponibles dans notre vie quotidienne. Base horloge numérique habituellement sera ont certaines fonctions intégrées comme réveil, calendrier et thermomètre en plus de l'affichage des informations d'horloge. Ce
Arduino VFD affichage horloge tutoriel - un Guide pour l’affichage VFD

Arduino VFD affichage horloge tutoriel - un Guide pour l’affichage VFD

... + Un petit peu sur les mécanismes d'entraînementTe souviens-tu (encore) l'affichage de votre ancien lecteur de CD, HiFi système ou voiture radio ? Avez-vous déjà remarqué les affichages utilisés dans votre supermarché local qui vous montre l'élém
Sept Segment affichage tutoriel

Sept Segment affichage tutoriel

combien de séries TV et films ont un dispositif mystérieux comptant vers le bas à zéro ces écrans sont des affichages à 7 segments. Avec l'affichage à 7 segments, vous pouvez afficher n'importe quel nombre ou certains alphabets que votre coeur désire
Comment concevoir des sept segment affichage pilote puce sur VLSI consept pour la première fois! ?

Comment concevoir des sept segment affichage pilote puce sur VLSI consept pour la première fois! ?

Aujourd'hui, je vais vous montrer comment concevoir pilote un sept segments affichage électronique du composant qui est similaire avec puce 7447. Ce projet a été j'ai fait quand dans mon université est l'an dernier, grâce à mon professeur, j'ai appri
Accueil fait Diddley Bo guitare

Accueil fait Diddley Bo guitare

Accueil fait Diddley Bo guitare électrique pour 7 dollars et la guitare de base est un poteau de lit c'est la forme parfaite et déjà ressemble à une guitare n'avaient même pas couper peu:) amusant projet juste devoir apprendre à jouer lol
Accueil fait Fast-Food hamburger bon marché.

Accueil fait Fast-Food hamburger bon marché.

Presque eu une crise cardiaque quand j'ai vu le prix de la restauration rapide ces derniers temps. J'ai décidé non seulement de faire un repas moins cher, mais un peu plus sain. Vous obtenez un délicieux burger et une montagne de pop-corn sur le côté
Arduino 7-Seg affichage horloge

Arduino 7-Seg affichage horloge

Il s'agit d'une horloge à Auduino avec le kit Sunfounder. Il s'agit d'un projet vraiment cool et facile à faire !Étape 1: matériaux Seulement 9 matériaux sont nécessaires pour le montage de l'horloge de l'arduino alimentéCarte de prototypageFilsCâble
TimeDuino - 7 Segment Arduino horloge (sans registres à décalage nécessaires!)

TimeDuino - 7 Segment Arduino horloge (sans registres à décalage nécessaires!)

Hé tous les amateurs instructable ! C'est mon premier projet. Oui, je sais que ces mots généralement obtenir le stéréotype « Cela ne va pas être un bon projet » attitude, mais j'ai attendu longtemps pour un projet qui mérite peut-être briser la premi
Simple 7 segments LED horloge

Simple 7 segments LED horloge

Horloge LED ne fait pas cela instructable intéressant, aussi, je ne suis pas intention de faire une horloge, mais je l'ai trouvé simple jamais sans trop de code pour compléter une horloge, donc je veux partager à tous. En fait, j'expérimente l'affich
Moto Position Gear avec sept Segment affichage

Moto Position Gear avec sept Segment affichage

ce projet comprend un certain nombre d'entrées (en l'occurrence 7) de décodage pour afficher sous forme de valeurs numériques sur un sept segments afficher (SSD) à l'aide de ce qu'on appelle Binary Coded Decimal (BCD), une matrice à Diode et une puce