Bibliothèque technique gratuite ENCYCLOPÉDIE DE LA RADIOÉLECTRONIQUE ET DU GÉNIE ÉLECTRIQUE Réveil simple sur PIC16F84. Encyclopédie de l'électronique radio et de l'électrotechnique Encyclopédie de l'électronique radio et de l'électrotechnique / Horloges, temporisateurs, relais, interrupteurs de charge Il n'y a pas si longtemps, les montres électroniques étaient construites sur les soi-disant puces d'horloge de la série K176 et sur les puces spécialisées des séries K145 (K145IK1901) et KR1016 (KR1016VI1). Leur principal inconvénient est le peu de possibilités d'amélioration (tout changement nécessitait un raffinement matériel). Les montres assemblées sur la base d'un microcontrôleur se distinguent favorablement. Le circuit est grandement simplifié et la "mise à niveau" peut être effectuée sans aucune modification du matériel. Même le réglage de la fréquence d'horloge peut être purement logiciel. Ce sont ces montres qui sont décrites dans l'article publié ci-dessous. Le réveil proposé avec un indicateur LED à quatre chiffres est fabriqué sur la base d'un microcontrôleur (MC) et affiche l'heure au format 24 heures avec une suppression de zéro insignifiante dans les dizaines d'heures de décharge. Il y a un mode d'affichage des minutes et des secondes, un bip court (durée 1 s) au début de chaque heure (si nécessaire, cette fonction peut être désactivée), deux alarmes qui peuvent être désactivées, et un réglage logiciel du facteur de correction de l'heure, dont dépend la précision de la montre. La valeur du coefficient et les paramètres d'alarme sont enregistrés dans la mémoire non volatile (EEPROM) du MK. L'état des réveils et le signal "Toutes les heures" sont indiqués par des LED. Le schéma de principe de l'appareil est illustré à la fig. 1. Sa base est le microcontrôleur PIC16F84 (DD1), dont la fréquence de fonctionnement est réglée par un oscillateur avec un résonateur externe ZQ1 à 4 MHz. L'entrée de réinitialisation MC (MCLR) est directement connectée au rail d'alimentation +5V. Le port A à cinq bits, dont toutes les lignes sont configurées pour la sortie, contrôle la LED HL1 et commute les chiffres de l'indicateur HG1. Les quatre bits les plus significatifs du port B (RB4-RB7) sont configurés pour entrer et recevoir des signaux de commande des boutons SB1-SB4, qui sont connectés à des broches sans résistances "pull-up", car il y en a dans le MK. Les bits RB0 et RB1 du port B permettent de charger dans le registre DD2 un code à sept éléments correspondant au chiffre affiché. La décharge RB2 est la sortie d'un signal 3H ou d'une alarme (selon la version du programme), qui peut être connectée directement à un émetteur piézo (ZP-1, ZP-3 et similaires), à l'entrée d'un amplificateur 3H ou à un actionneur, par exemple, un relais qui, au moment de l'alarme, allumera la radio, la télévision ou un autre appareil. Les LED HL1 et HL2 indiquent l'état du signal "Toutes les heures" et des réveils, respectivement : HL1 s'allume si le signal "Toutes les heures" est activé, et HL2 - si au moins un des réveils est allumé ou si les deux sont allumés. L'appareil utilise un indicateur LED d'horloge spécialisé de Kingbright, contenant quatre chiffres à sept éléments avec une anode commune et deux points indiquant les secondes entre les chiffres du milieu. Les conclusions des éléments ag étant communes à tous les chiffres, l'indicateur ne peut être piloté qu'en mode dynamique. Pour cette conception, l'indicateur s'adapte parfaitement: le nombre de lignes d'E / S à usage général sur le P1C16F84 MK ne permet pas une indication statique, et avec une dynamique, avec un autre indicateur, il faudrait combiner les sorties de les mêmes éléments de chiffres différents sur le tableau. Les résistances R3-R10 limitent le courant à travers les voyants LED. Le registre à décalage DD2 a été introduit pour économiser les sorties MK - il convertit le code série en parallèle pendant l'indication dynamique. Le condensateur C4 filtre l'ondulation dans le circuit d'alimentation MK. Il n'y a pas de place pour cela sur la carte, il est soudé directement aux bornes de la prise MK du côté des conducteurs imprimés. Le programme de contrôle du MK est écrit dans l'assembleur MPASM standard de Microchip et compilé dans l'environnement MPLAB de la même société. Sur les 1024 mémoires de programme MK, environ huit cents ont été utilisées, il existe donc des ressources d'amélioration. Immédiatement après la mise sous tension, le programme de contrôle est initialisé : les bits du port sont configurés pour l'entrée et la sortie, le mode de fonctionnement de la minuterie est défini sur 0, les paramètres d'alarme et le facteur de correction du temps sont lus à partir de la mémoire non volatile. La tâche principale du programme - la formation d'intervalles de temps précis d'une durée de 1 s - est résolue à l'aide d'interruptions de la minuterie 0. Son pré-guérisseur est connecté à l'oscillateur à cristal MK et ajusté à un facteur de division de 16. Un nombre de 0h à OFh est écrit dans le registre du temporisateur 00 lors de chaque traitement d'interruption (cela et il y a un facteur de correction de temps, dans le code source du programme il s'appelle TIME_SET), donc le temporisateur déborde non pas pour 256, mais par exemple, pour 250 cycles d'horloge (avec TIME_SET=5). Dans ce cas, lors de l'utilisation d'un cristal de 4 MHz, les interruptions du temporisateur 0 se produisent à une fréquence de 1 000 000 Hz / 250/16 = 250 Hz. Après l'initialisation, le programme entre dans une boucle en attendant ces interruptions et les compte. Lorsque le nombre d'interruptions atteint 250, l'heure actuelle est augmentée d'une seconde. Les interruptions du temporisateur 0 fournissent également une indication dynamique. Au cours de leur traitement, le MK définit le niveau zéro sur les broches RA0-RA3 et éteint ainsi l'indicateur. En outre, un code à sept éléments correspondant au caractère à afficher est chargé dans le registre DD2 via les broches MK RB0 et RB1. Ensuite, un niveau logique élevé est défini sur l'une des broches RAO-RA3, grâce à laquelle l'un des espaces familiers est allumé. Tout cela se produit 250 fois par seconde, et en raison de l'inertie de la vision, l'utilisateur voit toutes les décharges activées en même temps. Le bit haut du code chargé dans le registre DD2 sert à commander les seconds points de l'indicateur qui clignotent à une fréquence de 1 Hz. Ainsi, à l'aide des interruptions du timer 0, deux tâches sont résolues à la fois. De plus, dans la routine de gestion des interruptions, le MK vérifie si le chiffre de sortie est un zéro non significatif dans le chiffre de gauche, et si c'est le cas, alors au lieu du code à sept éléments du chiffre O, le MK charge le nombre binaire 11111111 dans le registre (un indicateur avec une anode commune, donc un correspond à un segment masqué). Le clavier est interrogé environ 10 fois par seconde, mais après la première pression sur certains boutons et leurs combinaisons, le programme ne répond pas aux pressions répétées pendant 1 s (par exemple, si les boutons sont maintenus enfoncés). Ceci est nécessaire pour la commodité de la gestion de l'horloge. Lorsque l'alarme se déclenche, un signal intermittent 2H apparaît sur la sortie RB1 pendant 3 minute ou, selon la version du programme, un niveau haut (plus précisément, des impulsions avec un taux de répétition de 1 Hz). Les LED HL1 et HL2 clignotent. Après une minute, un sous-programme spécial est appelé, qui restaure la lueur correcte des LED. L'appareil est commandé par les boutons SB1-SB4, dont chacun combine plusieurs fonctions (voir le schéma mnémonique illustré à la Fig. 2). L'horloge fonctionne selon trois modes : de base (indication de l'heure actuelle), avec un facteur de correction de l'heure et le mode de réglage des alarmes. En mode principal, l'indicateur HG1 affiche les heures et les minutes, tandis que les seconds points clignotent à une fréquence de 1 Hz. L'heure actuelle est réglée avec les boutons SB1 (heures) et SB2 (minutes) : chaque pression augmente les lectures d'une unité, et si cela est fait en appuyant sur SB4, elle diminue. Lorsque les chiffres des minutes atteignent des valeurs nulles, le transfert vers le chiffre des heures ne se produit pas. Si vous maintenez le bouton SB4 enfoncé pendant trois secondes, l'indicateur affiche les minutes et les secondes de l'heure actuelle au lieu des heures et des minutes. Le signal "Toutes les heures" est activé et désactivé avec le bouton SB3 tout en maintenant SB4 (la LED HL1 s'allume ou s'éteint, respectivement). Pour passer au mode de réglage de l'alarme, appuyez sur le bouton SB3. Les indications de la première alarme apparaissent sur l'indicateur, les deuxièmes points brillent en permanence. Les heures et les minutes sont réglées par les mêmes boutons SB1 et SB2 (dans ce cas, seule une augmentation des lectures). Une pression sur le bouton SB4 éteint l'alarme et seuls des tirets restent sur l'indicateur (les éléments G sont allumés). La prochaine fois que l'alarme est activée, le même bouton apparaît sur l'indicateur et des zéros (et non les valeurs précédentes) sont écrits dans les registres d'alarme. Si vous appuyez à nouveau sur le bouton SB3, les indications de la deuxième alarme apparaîtront sur l'indicateur, mais les deuxièmes points s'éteindront. Les deux alarmes sont configurées de la même manière. La troisième pression sur le bouton SB3 met l'horloge en mode de fonctionnement avec un coefficient de correction de temps : les symboles « EE X » sont affichés sur l'indicateur, où EE signifie EEPROM, et X est la valeur actuelle du coefficient sous forme hexadécimale ; les deuxièmes points continuent de clignoter. Avec le bouton SB1, vous pouvez augmenter et avec le bouton SB2, vous pouvez diminuer la valeur du coefficient dans la plage de Oh à Fh. Le numéro défini sera écrit dans le temporisateur 0 dans la routine de débordement du temporisateur. Lorsque le bouton SB3 est enfoncé pour la quatrième fois, les paramètres d'alarme et la valeur du coefficient sont écrits dans l'EEPROM : le premier réveil - aux adresses 02h-05h (minutes, dizaines de minutes, heures et dizaines d'heures, respectivement), le deuxième - aux adresses 06h-09h (dans le même ordre), coefficient - à 01 h. Le dispositif est monté sur une carte de circuit imprimé réalisée selon le dessin représenté à la fig. 3 (les lignes en pointillés montrent les fils de raccordement reliant les conducteurs imprimés sur le côté opposé de la carte). Sans aucun changement dans le circuit et le programme MK, vous pouvez utiliser PIC16C84 - un analogue programmable unique de PIC16F84. L'indicateur indiqué dans le schéma peut être remplacé par tout autre indicateur à quatre chiffres avec une anode commune (il est souhaitable que les conclusions des éléments du même nom des décharges soient connectées à l'intérieur de l'indicateur). Il est permis d'utiliser quatre indicateurs à un chiffre, dans ce cas, deux LED distinctes peuvent être utilisées comme deuxièmes points, reliées par des cathodes à la borne droite (selon le schéma) de la résistance R10 (si nécessaire, via une touche sur le transistor). Résistances, condensateurs, LED, boutons - tous de petite taille. Trois versions du programme de contrôle ont été développées pour la montre. La version 1.10 est la principale (son fichier HEX est donné dans le tableau). Lorsque les alarmes se déclenchent, un signal (méandre) avec une fréquence de 2 Hz apparaît à la sortie RB1. Il peut être utilisé pour contrôler divers actionneurs et générateurs de signaux 3H : du plus simple sur deux ou trois éléments logiques aux systèmes complexes de synthèse sonore numérique [1, 2]. L'indication dynamique dans cette version fonctionne tout le temps. En version 1.11, l'indication fonctionne également en continu, mais lorsque les alarmes se déclenchent et qu'au moment où le signal "Toutes les heures" est généré, des rafales d'impulsions avec un taux de répétition de 2 Hz apparaissent sur la sortie RB1 (la fréquence des oscillations remplissant les salves correspondent à la fréquence d'interruption du temporisateur 0 - 250 Hz). Ce signal peut être appliqué directement à l'émetteur ou à l'entrée de l'amplificateur 3H. La version 1.20 ne diffère de la 1.11 que par le fait que l'indication dynamique est désactivée par défaut (alors que toutes les autres fonctions d'horloge fonctionnent en mode normal). Il commence à fonctionner si vous appuyez sur le bouton SB4 et s'éteint automatiquement après 10 secondes. Lorsque vous appuyez sur les touches et que l'alarme se déclenche, le compte à rebours de cet intervalle recommence. Si l'alarme s'est déclenchée lorsque l'indication est éteinte, elle ne s'allume pas : vous devez appuyer deux fois sur le bouton SB4 pour éteindre l'alarme et allumer l'indication. Il est conseillé d'utiliser ce programme si la montre est alimentée par une pile composée de cellules galvaniques ou d'accumulateurs : l'extinction de l'affichage permet d'économiser la pile. Lors de la programmation du MK, le type de générateur est indiqué dans le mot de configuration - XT, Power-up timer - on, watchdog timer et code protection - off. De plus, un nombre de Oh à Fh (facteur de correction de temps) doit être entré dans la cellule 01 h de la mémoire de données non volatile, et les paramètres d'alarme aux adresses 02h-09h. Si le réglage logiciel de la précision de l'horloge s'avère approximatif (ce qui est fort probable), vous devez installer le condensateur d'accord C3 indiqué sur le schéma en pointillés (il y a une place pour lui sur le circuit imprimé). littérature
Auteur : A. Vakulenko, Tioumen Voir d'autres articles section Horloges, temporisateurs, relais, interrupteurs de charge. Lire et écrire utile commentaires sur cet article. Dernières nouvelles de la science et de la technologie, nouvelle électronique : Cuir artificiel pour émulation tactile
15.04.2024 Litière pour chat Petgugu Global
15.04.2024 L’attractivité des hommes attentionnés
14.04.2024
Autres nouvelles intéressantes : ▪ Les basses températures peuvent augmenter la durée de vie ▪ La rue est éclairée par le soleil et le vent ▪ Moniteur concave Samsung S34E790CN ▪ WD a créé le disque dur le plus fin ▪ Spray qui désactive l'action des gènes Fil d'actualité de la science et de la technologie, nouvelle électronique
Matériaux intéressants de la bibliothèque technique gratuite : ▪ section du site Pour ceux qui aiment voyager - conseils aux touristes. Sélection d'articles ▪ article Finances. Lit de bébé ▪ article Lequel des Lucas et pourquoi a reçu un Oscar ? Réponse détaillée ▪ article Derbennik. Légendes, culture, méthodes d'application ▪ article Sonde sonore déportée. Encyclopédie de l'électronique radio et de l'électrotechnique
Laissez votre commentaire sur cet article : Toutes les langues de cette page Page principale | bibliothèque | Articles | Plan du site | Avis sur le site www.diagramme.com.ua |