Amusez-vous avec PIC Assembly - épisode 10 (3 / 3 étapes)

Étape 3: logiciel

Le lien du logiciel est répertorié ci-dessous. Alors qu’il est visé pour le 16F688, il est facilement porté à d’autres versions de la photo. Vous devrez modifier la ligne qui identifie la version PIC (liste =) et le fichier INCLUDE, mais ceux sont les changements intuitives. La ligne __CONFIG devez également peaufiner tout simplement parce qu’un ou deux des étiquettes utilisées soient orthographiés différemment dans certains des fichiers INCLUDE. Assurez-vous juste que la photo que vous utilisez a une broche qui permet une entrée d’interruption externe (habituellement appelée EXT ou INT).

Le logiciel de base a été copié directement de ce qui a été utilisé dans l’épisode 2 avec les routines de LCD supprimés et les modifications mineures apportées pour la 16F688 pour remplacer le 12F683. Le nouveau logiciel qui a été ajouté enregistre tous les quatre octets du code IR reçu et traverse ensuite un simple jeu de logique pour déterminer si elle est une commande valide. Chaque routine « touche » active/désactive une ligne de sortie de haute à basse de 50ms simuler une touche du panneau avant. Le temps de retard de 50ms a été arbitrairement choisi parce que la plupart des microprocesseurs décidera que c’est une touche valide si l’entrée n’a pas changé de valeur (rebondi) depuis si longtemps. Vous pouvez allonger ce jour-là, si nécessaire, mais je n’aurais pas la raccourcir.

Episode 2 nous simplement envoyé chaque octet reçu à l’écran LCD et n’avait pas besoin d’enregistrer la séquence entière de quatre octets. Dans cette application, cependant, nous sauver tous les quatre et les analyser ensuite des données valides. Dans la section de déclaration de variable, vous verrez que j’ai défini octet1 octet2, Byte3 et Byte4. Alors que nous pourrions juste ajouter du code pour déterminer quel octet nous avons reçu et puis écrire dans la variable appropriée, il est plus efficace d’aborder les quatre octets comme un tableau en C. de code Le commandant de bord nous permet de le faire en fournissant un couple de registres (FSR et INDF) pour effectuer l’adressage indirect. Vous pouvez voir comment c’est fait dans la routine « Save_Byte ». Dans ce cas nous savons que nous pas va traverser une limite de la page (256 octets) donc nous avons seulement besoin de s’inquiéter sur le paramétrage des 8-bits de poids faible de l’adresse des données. Une autre chose à noter dans cette routine, c’est que nous attendons pour incrémenter « Byte_Count » jusqu'à ce qu’après que nous l’utilisons comme un indice de l’adresse. C’est parce que l’index doit être 0-3 pour nos données tout en « Byte_Count » va de 1 à 4 en comptant reçu IR octets.

Comme j’ai mentionné précédemment, la boîte de l’amplificateur dispose d’un microprocesseur qui détermine ce qu’il faut faire pour chaque pression de touche. J’ai trouvé que ce n’est quelques choses bizarres que je n’aimais pas alors partie du logiciel a été ajoutée pour « corriger » ceux
bizarreries. Une des choses qu’il n’est au pouvoir sur le mode de veille lorsqu’une touche est enfoncée, non seulement la touche power. Cela peut sembler comme une chose ok mais il effectivement causé des complications quand j’écrivais le logiciel. Pour simplifier les choses, j’ai ajouté un contrôle de l’indicateur de « Power_Up » dans la routine de décodage afin de passer commande de tout autre que la puissance de clé de décodage si la case de l’amplificateur est toujours en mode veille.

La boîte de l’amplificateur réglable pour mode mode (stéréo) 2.1 ou 5.1 (surround). Je l’utilise pour piloter une seule paire d’enceintes, donc je le veux toujours en mode 2.1. Malheureusement, le microprocesseur dans la boîte de l’amplificateur définit le mode 5.1 chaque fois que la boîte passe d’en attente à sur ou toute modification de la source d’entrée audio. Routine « Mode_2_1 » est appelée sur la transition du mode veille à sur et active/désactive les canaux de haut-parleurs à 2.1. J’ai trouvé que j’avais besoin sur une temporisation de 1 seconde après branchement sur avant que la commande de canaux haut-parleurs entrerait en vigueur. J’ai aussi ajouté le code pour « Source_Sw » pour basculer vers le mode 2.1 après changer l’audio input source mais qui exigeait un délai plus court avant la deuxième commande puisse être émise.

Eh bien, c’est tout pour l’épisode 10 de « Fun avec PIC Assemblée ». Restez à l’écoute des autres épisodes.

Articles Liés

Amusez-vous avec PIC Assembly - épisode 23

Amusez-vous avec PIC Assembly - épisode 23

Comme j'ai mentionné dans les épisodes précédents, je suis bénévole au centre de recyclage local à but non lucratif. Certains des trucs électronique qui obtient déposa de genre de fait me sentent comme un archéologue de la technologie et j'ai un fant
Amusez-vous avec PIC Assembly - épisode 3

Amusez-vous avec PIC Assembly - épisode 3

Après que j'avais été jouer avec les photos pendant un certain temps j'ai remarqué que le web était plein de conseils de petite interface qui pourraient faire une variété de tâches intéressantes. Mieux encore, ils étaient moins cher que d'essayer de
Amusez-vous avec PIC Assembly - épisode 24

Amusez-vous avec PIC Assembly - épisode 24

Lorsque j'ai été stationnée à l'étranger au début des années 1970 s il y avait deux choses disponibles à un prix avantageux que vraiment aimé les gars plus militaire : équipement stéréo et des boissons alcoolisées. Non, ce Instructable n'est pas sur
Amusez-vous avec PIC Assembly - épisode 11

Amusez-vous avec PIC Assembly - épisode 11

OK, je ne suis pas vraiment TOC mais je dois avouer que parfois je suis coincé sur un thème. En outre, électronique et logiciel que j'aime faire des choses comme les boiseries et, dernièrement, de cuivre tuyaux yard art. Le problème avec les trucs du
Amusez-vous avec PIC Assembly - Episode 12

Amusez-vous avec PIC Assembly - Episode 12

OK, donc je suis un de ceux qui est heureux quand j'aurai Enfin quelque chose ne fonctionne mais il me ronge si je ne comprends pas les détails de pourquoi ça marche. Tel est le cas avec cet épisode. Le fond est que je travaille sur un petit projet p
Amusez-vous avec PIC Assembly - Episode 1

Amusez-vous avec PIC Assembly - Episode 1

Retour dans les jours anciens, quelle hommes étaient des hommes et disquettes étaient énormes, nous avons programmé les premiers microprocesseurs en langage d'assemblage - et nous l'avons aimé ça. Maintenant que je suis à la retraite, j'ai décidé de
Amusez-vous avec PIC Assembly - Episode 18

Amusez-vous avec PIC Assembly - Episode 18

Mots à la mode et les slogans sont toujours être générés, principalement dans les domaines de la technologie ou de la politique. Dilbert même reçu la tendance avec « Buzzword Bingo » en de la 90. Une des phrases actuellement chauds est « Internet des
Amusez-vous avec PIC Assembly - Episode 22

Amusez-vous avec PIC Assembly - Episode 22

Le dicton est que « la nécessité est la mère de l'invention ». En réalité, cependant, il y a beaucoup de « mères » de l'invention. Mon préféré est « paresse » mais parfois trucs obtient inventé juste parce que c'est un plaisir au défi de comprendre u
Amusez-vous avec PIC Assembly - Episode 20

Amusez-vous avec PIC Assembly - Episode 20

Dans l'Episode 19 que je l'ai mentionné en passant qu'il serait assez facile au port de la conception à la 16F1837 plus moderne que nous avons utilisé dans l'épisode 13 pour l'affichage de graphiques. Qui pourrait nous sortir de devoir copier les cha
Amusez-vous avec PIC Assembly - Episode 16

Amusez-vous avec PIC Assembly - Episode 16

Jusqu'à présent j'ai résisté à ajouter aux millions de projets de "Clignoter une LED" qui sont sur le web. Cela ne veut ne pas dire que je n'ai effectivement pas un projet « Clignoter une LED » quand j'ai commencé à déconner avec le PIC parce qu
Amusez-vous avec PIC Assembly - Episode 17

Amusez-vous avec PIC Assembly - Episode 17

Les mauvais vieux jours chaque compagnie de téléphone avait une interface propriétaire et souvent différentes interfaces pour téléphones différents dans leur gamme de produits. De nos jours, cependant, presque tous les téléphones utilise une interfac
Amusez-vous avec PIC Assembly - Episode 13

Amusez-vous avec PIC Assembly - Episode 13

Il y a quelques mois, j'envisageais de faire un capacimètre à l'aide de la photo. J'ai fait quelques recherches sur le web et vérifié diverses conceptions. Puis j'ai fait l'erreur de vérification d'eBay pour voir combien on coûterait. Les versions mo
Amusez-vous avec PIC Assembly - Episode 8

Amusez-vous avec PIC Assembly - Episode 8

J'ai connu quelques changements intéressants de la température dans ma vie dont un juste il y a quelques années où nous avons mis un record un jour et puis définissez un seuil record le lendemain. La plus intéressante que j'ai vécu était il y a longt
Amusez-vous avec PIC Assembly - Episode 14

Amusez-vous avec PIC Assembly - Episode 14

Comme je le disais dans un précédent épisode, je suis bénévole dans un centre de recyclage à but non lucratif. Pour la plupart, nous fixons les ordinateurs et les écrans LCD, mais dernièrement j'ai pris la tâche d'obtenir certains anciens systèmes de