Étape 2: logiciel
Une des raisons pour lesquelles que j’aime langage assembleur pour les microcontrôleurs est parce que je voudrais parler directement au matériel. Une fois que vous comprenez que contrôler le matériel est surtout juste lire et écrire aux emplacements de mémoire (appelées
les registres), les instructions commencent à faire sens. Le jeu d’instructions est également assez petit donc il ne prend pas beaucoup de temps pour trier à travers eux. La partie la plus difficile, si vous êtes habitué aux langages de niveau plus élevés, est que cela prend un peu de s’habituer au fait que les constructions simples, telles que IF-THEN-ELSE doivent être construites de plusieurs instructions de montage. Et math peut être un cauchemar pour des projets basés sur la logique simples sont généralement meilleures. Mais, Hé, n’est pas le défi toujours partie de l’amusement ?
Le lien du logiciel est répertorié ci-dessous. Alors qu’il est visé pour le 12F683, il est facilement porté à plus grandes versions de l’image. Personnellement, je l’ai utilisé avec le 16F688 et le 16F627. Pour la plupart il nécessite un changement des noms comme TRISIO TRISA et GPIO à PORTA. Vous devrez également 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.
La routine LCD_Init adhère assez bien à la séquence d’initialisation spécifiés pour la puce de 1602. Les deux routines Test_Code sortie de l’expression « Bonjour » sur la ligne de l’écran LCD et « CAROL » sur la deuxième ligne de l’écran LCD. Il
initialement dit « HELLO WORLD » mais ma femme ne était pas impressionné alors j’ai changé pour qu’il utilise son nom. Elle n’était toujours pas impressionnée, mais j’ai obtenu des points pour essayer. L’astuce de logiciel que je l’ai mentionné plus tôt est dans la routine Send_Byte. J’utilise le fait que le changement de Registre horloges sur une basse à bord élevé et que la ligne d’horloge a été laissée à l’État haut après que le dernier morceau a été chronométré en. Un emplacement de mémoire Reg_Select a été précédemment défini sur 0 ou 1 selon si oui ou non l’octet envoyé est une commande ou des données. Si il s’agit d’une commande, puis la ligne horloge a la valeur faible avant d’activer l’écran LCD. Une brève impulsion sur la ligne LCD Enable horloges l’octet de registre de décalage dans l’écran LCD.
Eh bien, c’est tout pour l’épisode 1 de « Fun avec PIC Assemblée ». Restez à l’écoute pour d’autres épisodes comme je suis près à mettre mes différentes notes de projet dans un format cohérent.