Menu English Ukrainian Russe Accueil

Bibliothèque technique gratuite pour les amateurs et les professionnels Bibliothèque technique gratuite


ENCYCLOPÉDIE DE LA RADIOÉLECTRONIQUE ET DU GÉNIE ÉLECTRIQUE
Bibliothèque gratuite / Schémas des appareils radio-électroniques et électriques

Programmeurs débutants de microcontrôleurs PIC. Encyclopédie de la radioélectronique et de l'électrotechnique

Bibliothèque technique gratuite

Encyclopédie de l'électronique radio et de l'électrotechnique / Radioamateur débutant

Commentaires sur l'article Commentaires sur l'article

[Une erreur s'est produite lors du traitement de cette directive]

Sur la base de ma propre expérience en commençant à étudier la programmation des microcontrôleurs, je vais essayer de donner quelques conseils pratiques sur l'écriture de programmes en assembleur. Tous les exemples de programmation donnés ci-dessous sont donnés en relation avec les contrôleurs Pic de la famille Microchip de milieu de gamme, comme les plus adaptés pour débuter la maîtrise, en raison de leur architecture relativement simple et de leur système de commandes assembleur peu compliqué.

Les programmes proposés peuvent être utilisés sous forme de macros prêtes à l'emploi (sous-programmes complets). Ils ne sont pas liés à un contrôleur spécifique, donc lors de l'application, vous devez prendre en compte les données des fiches techniques.

1.Utilisation des interruptions de débordement de minuterie TMR0 (RTCC)

Prenons la fréquence d'horloge - Fclock. = 4,096 MHz (quartz standard). Alors le temps de cycle sera tc = 1 / Ftact. * 4 = 0,97656 µs

INI_TMR ; initialisation du mode interruption depuis RTCC
STATUT bsf,RP0 ; sélectionnez la banque 1
movlw b'00000100'
OPTION movwf ; pré-échelle pour RTCC 1:32
ÉTAT bcf,RP0 ; banque 0
movlw b'10100000'
movwf INTCON ; Interruption RTCC activée
mouvement.96 ; charger le numéro préliminaire 96 dans RTCC
movwf TMR0

Obtenez le temps d'interruption :
ti = tc * 32 * (256 - 96 = 160)
ti = 0,97656 * 32 * 160 = 5 000 µs = 5 ms

Maintenant, si vous introduisez une boucle sans fin dans n'importe quel programme (appelée boucle d'attente d'interruption) et que la fin du programme est transférée dans cette boucle, nous obtenons une référence temporelle de 5 ms. Et après l'interruption, le programme reviendra à l'adresse indiquée par le vecteur d'interruption (généralement 04h ). À quoi cela peut-il être utilisé - regardez plus loin.

Donc:

;
organisation 0
COMMENCER ; début de l'exécution du programme après
; mise sous tension
org 04h ; et c'est l'adresse du vecteur d'interruption, à laquelle
principal ; le programme principal sera exécuté
;
COMMENCER ; C'est là que se produit généralement l'initialisation obligatoire.
INI_TMR ; Centralisation des ports, modes, registres, etc.
INI_PORTS
boucle
aller en boucle ; et c'est un cycle sans fin
;---------------------------------------------------------------- -

principal
; Vient ensuite le corps du programme principal,
; dans lequel il est nécessaire de créer un programme de service d'interruption à partir de RTCC,
; appelé par la commande CALL :

ServTMR
btfsc INTCON,RTIF ; vérifiez l'indicateur d'interruption de RTCC et
appelez SET_TMR ; si « oui », alors initialisez à nouveau TMR0
retour ; si "non" - retour à l'endroit où ServTMR a été appelé
; programme principal
;
SET_TMR mouvement .96
movwf TMR0 ; charge à nouveau le numéro 96
bcf INTCON,RTIF ; réinitialiser le drapeau de déclenchement
retfie ; revenir avec l'activation de l'interruption dans ServTMR, et
; puis dans le programme principal

Un exemple d'utilisation d'une interruption de RTCC pour recevoir une deuxième impulsion sur l'une des sorties, disons le port B - RB0 : On utilise le registre Rsec, qui doit être préalablement déclaré dans le champ d'adresse des registres de travail.

Ainsi, à la sortie du port RB0, le niveau du signal passera de « 0 » à « 1 » chaque seconde.

Dans les registres des contrôleurs, les informations sont généralement sous forme binaire (en code binaire). Mais il est souvent nécessaire d'obtenir des informations sous forme décimale binaire (code BCD), par exemple pour contrôler un indicateur à sept segments.

Regardons des exemples de conversion du code binaire b2 en BCD décimal binaire et vice versa.

Dans un registre de 8 bits, vous pouvez écrire un nombre de 0 à 255 (de b'00000000' à b'11111111') en code binaire. Convertissons le nombre binaire en trois chiffres du code décimal binaire - "centaines", "dizaines" et "unités". Pour ce faire, nous utiliserons les registres suivants, qui doivent être déclarés au préalable dans le champ d'adresse des registres de travail :

Rbin - registre pour stocker un nombre en code binaire b2
Rhan - registre de centaines de code BCD
Rdec - registre "dizaines" du code BCD
Rsim - Registre du code BCD "un"

On effectue des transformations en utilisant les opérations de soustraction des nombres 100, puis 10, en comptant le nombre de soustractions positives.

FORM_1S ; à chaque cycle, et cela dure en raison de l'interruption RTCC
incfRsec,w ; 5 MS, augmentez le registre Rsec de 1 jusqu'au nombre 200
xorlw .200 ; (5 ms * 200 = 1 seconde)
ÉTAT btfsc,z
allez à OUT_PORT ; à Rsec = 200 drapeau z = '1' et transition vers le contrôle
; Broche RB0 du port B
retour ; retour au programme principal
;
OUT_PORT btfss PORTB,0 ; vérifier l'état de la broche RB0
allez à OUT_ON ; si RB0 = '0', alors mis à '1'
bcf PORTB,0 ; sinon, mis à "0"
aller au principal ; retour au programme principal
;
OUT_ON bsf PORTB,0 ; définir RB0 = '1'
goto principal

CON_100 mouvement .100 ; soustrayez 100 de Rbin et vérifiez que
subwf Rbin,w ; le résultat n'est pas négatif. Indicateur 'c' = 1 quand
ÉTAT btfss,c ; résultat > ou = 0, et 'c' = 0 lorsque < 0
allez à CON_10
incfRhan,f ; compter le nombre de "centaines"
movwf Rbin ; le résultat de la soustraction est d'abord stocké dans un registre
allez à CON_100 ; batterie et retournez ensuite à Rbin
; pour ne pas perdre le reste en cas de négatif
; résultat de la soustraction.
CON_10 mouvement .10 ; on définit les « dizaines » de la même manière
subwf Rbin, w
STATUT btfss,c
aller à end_con
incfRdec,f
movwf Rbin
allez à CON_10 ;
fin_con
movfRbin,w
movwfRsim ; après les soustractions, entrez le reste dans « unités »
;continuer l'exécution du programme

Conversion inverse du code BCD en b2. On utilise les mêmes registres Rhan, Rdec, Rsim où le numéro se situe dans le code BCD, les registres RbinH - le chiffre le plus significatif et RbinL - le chiffre le moins significatif pour les nombres (> 255) dans le code b2 et les registres auxiliaires RM1 - " multiplicande", RM2 - "multiplicateur". Pour convertir BCD en b2, vous devez multiplier "centaines" par 100, "dizaines" par 10 et additionner le tout avec "unités" et en tenant compte du transfert vers le chiffre le plus significatif si nécessaire Pour la multiplication, nous utilisons l'opération d'addition.

B2X_100 déplacement .99 ; convertir des "centaines"
movwf RM2 ; multiplicateur = nombre d'ajouts (100) moins un
movf Rhan, w
movwf RM1 ; multiplicande = "centaines"
loopX100 addwf RM1,w btfsc ÉTAT,c ; vérifier le transfert vers le chiffre le plus significatif
incfRbinH,f ; s'il y a un transfert
decfsz RM2,f ; contrôler le nombre d'ajouts
aller à la boucleX100
movwf RbinL ; Le résultat de l'addition est inscrit dans le registre ml. catégorie
;
B2X_10 mouvement .9 ; conversion "dizaines"
movwf RM2 ; multiplicateur = nombre d'ajouts (10) moins un
movf Rdec,w
movwf RM1 ; multiplicande = "dizaines"
loopX10 addwf RM1,w ; ici, le transfert ne peut pas être vérifié, car résultat
decfsz RM2,f ; toujours < 255
aller à la boucleX10
addwf RbinL,f ; ajouter le résultat de la conversion "dizaines"
STATUT btfsc,c ; en tenant compte de l'éventuel report dans les rejets
incf
RbinH,f
movf Rsim, w
addwf Rbin,f ; ajout de « unités » en tenant compte d'un éventuel transfert
STATUT btfsc, c
incfRbinH,f

Fin des transformations et poursuite de la mise en œuvre du programme. Dans les registres RbinL et RbinH ont reçu un numéro de 16 bits dans le code b2.

Pour effectuer l'opération arithmétique de division, par analogie avec la multiplication évoquée ci-dessus, l'opération de soustraction est utilisée. Disons qu'il faut diviser un nombre situé dans les registres RHsum (bits de poids fort) et RLsum (bits de poids faible) par un diviseur (prenons un diviseur non > 255) situé dans le registre Rdel.

Nous entrerons le résultat dans les registres RHrez et RLrez (chiffres hauts et bas, respectivement) :

OP_DEL
movf Rdel, w
subwf Rlsum, w
ÉTAT btfss,c ; Vérifions si le résultat est négatif ?
allez à DEF_carry ; si « oui », alors nous effectuons un prêt selon l'Art. catégorie
incf RLrez,f ; compter le nombre de soustractions en tenant compte
STATUT btfsc,c ; transfert possible au grade supérieur
incf RHrez,f
movwf RLsum ; on restaure le reste pour ne pas perdre
allez à OP_DEL ; si le résultat de la soustraction est négatif
;
DEF_carry
mouvement 0h
xorwf RHsum,w ; Est-ce que tout le monde est passé du grade senior au grade junior ?
ÉTAT btfsc,z ; si "oui", c'est à dire RHdel = 0 et en OP_DEL négatif
allez à OUT_DEL ; tsat. résultat - fin de division et sortie
decf RHsum,f ; si « non » - un prêt de la catégorie senior et un pro-
incf RLrez,f ; nous allons continuer
STATUT btfsc,c ; vérifier la nécessité d'un transfert vers le chiffre standard
incf RHrez,f
aller à OP_DEL

Auteur : Vladimir D., degvv@mail.ru ; Publication : cxem.net

Voir d'autres articles section Radioamateur débutant.

Lire et écrire utile commentaires sur cet article.

<< Retour

Dernières nouvelles de la science et de la technologie, nouvelle électronique :

Machine pour éclaircir les fleurs dans les jardins 02.05.2024

Dans l'agriculture moderne, les progrès technologiques se développent visant à accroître l'efficacité des processus d'entretien des plantes. La machine innovante d'éclaircissage des fleurs Florix a été présentée en Italie, conçue pour optimiser la phase de récolte. Cet outil est équipé de bras mobiles, lui permettant de s'adapter facilement aux besoins du jardin. L'opérateur peut régler la vitesse des fils fins en les contrôlant depuis la cabine du tracteur à l'aide d'un joystick. Cette approche augmente considérablement l'efficacité du processus d'éclaircissage des fleurs, offrant la possibilité d'un ajustement individuel aux conditions spécifiques du jardin, ainsi qu'à la variété et au type de fruits qui y sont cultivés. Après avoir testé la machine Florix pendant deux ans sur différents types de fruits, les résultats ont été très encourageants. Des agriculteurs comme Filiberto Montanari, qui utilise une machine Florix depuis plusieurs années, ont signalé une réduction significative du temps et du travail nécessaires pour éclaircir les fleurs. ...>>

Microscope infrarouge avancé 02.05.2024

Les microscopes jouent un rôle important dans la recherche scientifique, car ils permettent aux scientifiques d’explorer des structures et des processus invisibles à l’œil nu. Cependant, diverses méthodes de microscopie ont leurs limites, parmi lesquelles la limitation de la résolution lors de l’utilisation de la gamme infrarouge. Mais les dernières réalisations des chercheurs japonais de l'Université de Tokyo ouvrent de nouvelles perspectives pour l'étude du micromonde. Des scientifiques de l'Université de Tokyo ont dévoilé un nouveau microscope qui va révolutionner les capacités de la microscopie infrarouge. Cet instrument avancé vous permet de voir les structures internes des bactéries vivantes avec une clarté étonnante à l’échelle nanométrique. En général, les microscopes à infrarouge moyen sont limités par leur faible résolution, mais le dernier développement des chercheurs japonais surmonte ces limitations. Selon les scientifiques, le microscope développé permet de créer des images avec une résolution allant jusqu'à 120 nanomètres, soit 30 fois supérieure à la résolution des microscopes traditionnels. ...>>

Piège à air pour insectes 01.05.2024

L'agriculture est l'un des secteurs clés de l'économie et la lutte antiparasitaire fait partie intégrante de ce processus. Une équipe de scientifiques du Conseil indien de recherche agricole et de l'Institut central de recherche sur la pomme de terre (ICAR-CPRI), à Shimla, a mis au point une solution innovante à ce problème : un piège à air pour insectes alimenté par le vent. Cet appareil comble les lacunes des méthodes traditionnelles de lutte antiparasitaire en fournissant des données en temps réel sur la population d'insectes. Le piège est entièrement alimenté par l’énergie éolienne, ce qui en fait une solution respectueuse de l’environnement qui ne nécessite aucune énergie. Sa conception unique permet la surveillance des insectes nuisibles et utiles, fournissant ainsi un aperçu complet de la population dans n'importe quelle zone agricole. "En évaluant les ravageurs cibles au bon moment, nous pouvons prendre les mesures nécessaires pour lutter à la fois contre les ravageurs et les maladies", explique Kapil. ...>>

Nouvelles aléatoires de l'Archive

Transistor hybride à base de soie 19.10.2023

Des scientifiques de l'université Tufts aux États-Unis ont présenté un transistor hybride innovant à base de soie, ouvrant de nouvelles perspectives dans le domaine des interfaces neuronales et de l'électronique des biocapteurs. Ce matériel biologique est intégré au processus de fabrication standard des puces, permettant ainsi une utilisation massive. Le nouveau transistor possède des propriétés uniques qui permettent aux circuits électroniques de répondre simultanément aux signaux électriques et biologiques.

Les chercheurs ont cherché à combler la frontière entre l'animé et l'inanimé, créant ainsi des perspectives pour le développement d'interfaces neuronales reliant l'électronique et les organismes vivants. Les nouveaux transistors pourraient devenir un élément clé dans le développement de réseaux neuronaux, de biocapteurs et de neuroprocesseurs, promettant de changer l’interaction humaine avec la technologie. Même si le changement ultime n’arrivera peut-être pas demain, ces technologies offrent un aperçu important de l’avenir.

Reste à savoir si les nouveaux transistors hybrides seront le fer de lance de ces changements ou s’ils tomberont dans l’oubli. Cependant, à ce stade, la technologie présente un certain nombre de propriétés intéressantes, notamment son intégration dans les processus technologiques modernes de production de microcircuits.

Les scientifiques utilisent la protéine fibroïne, intégrée dans les fils de soie et les toiles d'araignées, comme matériau de porte dans un processeur hybride. Cette protéine présente une grande sensibilité à la régulation de la conductance ionique par des impulsions électroniques et des biomarqueurs. Essentiellement, le fonctionnement du transistor ressemble au principe de fonctionnement d'une cellule mémoire ReRAM, changeant la résistance sous l'influence des ions, ce qui dépasse le cadre d'une mémoire résistive ou d'un memristor.

Les scientifiques ont réussi à créer un capteur respiratoire basé sur une nouvelle solution sensible à l’humidité. Le « transistor de soie » pourrait devenir un élément clé dans le domaine de la santé, ouvrant de nouvelles perspectives de développement de technologies innovantes.

Autres nouvelles intéressantes :

▪ MOSFET 160A pour les applications automobiles de Toshiba

▪ Un nouveau genre de dauphin

▪ Gratte-ciel - fermes solaires

▪ Cristaux qui changent de forme

▪ Stonehenge crée des mirages sonores

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 destinée au radioamateur-concepteur. Sélection d'articles

▪ article J'ai fait ce que j'ai pu, laissez ceux qui peuvent faire mieux. Expression populaire

▪ article Pourquoi certaines parties du métro de New York sont-elles incompatibles les unes avec les autres ? Réponse détaillée

▪ article Économiseur de ralenti forcé. Transport personnel

▪ article Entraînement électromécanique de la pompe à carburant. Encyclopédie de l'électronique radio et de l'électrotechnique

▪ article Proverbes et dictons de Tabasaran. Grand choix

Laissez votre commentaire sur cet article :

Nom:


E-mail (facultatif) :


commenter:





Toutes les langues de cette page

Page principale | bibliothèque | Articles | Plan du site | Avis sur le site

www.diagramme.com.ua

www.diagramme.com.ua
2000-2024