samedi 8 septembre 2012

Affichage des messages Sur la route du LCD

Moving-message s'affiche sont idéales pour faire passer votre message (annonces, salutations, etc) à travers une façon accrocheuse. Vous pouvez faire un écran LCD affiche un message bref mouvement en le interfaçage avec un microcontrôleur. Voici un AVR-base-mobile un message d'affichage qui utilise un 16 × 2 écran LCD intégrant HD44780. L'écran LCD 16 × 2 peut afficher 16 caractères par ligne et il ya deux lignes. Description du montage Fig. 1 représente le circuit pour l'AVR ATmega16 basée mouvement de message d'affichage sur un écran LCD. Il se compose d'un microcontrôleur ATmega16, un 16 × 2 LCD, un connecteur SPI6 et une section d'alimentation.




Pour obtenir le bloc d'alimentation pour le circuit, 230V AC est abaissée par un 9V, 250mA secondaire de transformateur, redressée par le pont redresseur BR1A module et filtré par le condensateur C1. La tension est régulée par un régulateur 7805. LED1 s'allume pour indiquer la présence de la puissance dans le circuit. Le réglementé 5V DC alimentant le circuit entier, y compris SPI6 connecteur. Port-C broches PC4 travers PC7 du microcontrôleur (IC2) sont connectées aux lignes de données D4 D7 travers de l'écran LCD. L'écran LCD de contrôle lines-read/write (R / W), le registre de sélection (RS) et de validation (E)-sont connectés à PD6, PC2 et PC3 de IC2, respectivement. microcontrôleur AVR Pourquoi? AVR est plus rapide et plus puissant que microcontrôleur 8051, encore assez cher et en circuit programmable. La plupart des logiciels de développement d'AVR sont gratuits car ils sont Open Source. En outre, des discussions et des tutoriels sur la famille de processeurs AVR sont disponibles sur l'Internet. ATmega16 est une haute performance, de faible puissance microcontrôleurs AVR 8-bit. Il dispose de 16 Ko de dans-système d'auto-programmable éclair, 1 ko de SRAM interne, 512 octets de EEPROM, 32 × 8 registres généraux de travail et de l'interface JTAG (qui prend en charge la programmation de Flash, EEPROM, fusible et bits de verrouillage). Certaines des fonctionnalités sur puce périphériques sont les suivants: 1. Deux 8-bits temporisateurs / compteurs séparés avec pré-mise à l'échelle et de comparer les modes 2. Un 16-bit de temporisation / compteur séparé avec pré-mise à l'échelle, comparateur et modes de capture 3. Quatre de largeur d'impulsion de modulation des canaux 4. 8-canaux, 10-bit analogique-numérique 5. Orienté octet bifilaire interface série 6. Programmable USART série 7. Maître / esclave interface de périphérique série 8. Temporisateur chien de garde programmable avec distinct sur-puce oscillateur module d'affichage LCD Le projet utilise un Hitachi HD44780 contrôlée par le module LCD. Le contrôleur HD44780 nécessite trois lignes de commande et quatre ou huit entrées / sorties (I / O) des lignes de bus de données. L'utilisateur peut choisir d'utiliser l'écran LCD avec un bus de 4 bits ou 8 bits de données. Si un bus 4-bit de données est utilisé, l'écran LCD, il faudra un total de sept lignes de données, trois lignes pour l'envoi de signaux de commande à l'écran LCD et quatre lignes de bus de données. Si un bus 8 bits de données est utilisé, l'écran LCD, il faudra un total de onze lignes de données, trois lignes de contrôle et huit lignes de bus de données. La ligne de commande de validation est utilisé pour indiquer l'écran LCD que le microconroller envoie les données à elle. Pour envoyer des données à l'écran LCD, vérifiez d'abord que la ligne de validation est bas (0). Lorsque les lignes de contrôle d'autres sont tout à fait prêt, assurez permettre élevé de broches et d'attendre que l'écran LCD soit prêt. Cette fois-ci est mentionné dans la fiche technique et varie d'un écran LCD à écran LCD. Pour arrêter l'envoi des données, mettre la commande enable bas (0) à nouveau. Fig. 2 montre le chronogramme de lignes de contrôle LCD pour 4 bits de données en cours de fonctionnement en écriture. Lorsque la ligne de sélection de registre est bas (0), les données sont traitées comme une commande ou une instruction spéciale (comme un écran clair et la position du curseur). Quand le registre de sélection est élevée (1), les données de texte sont envoyés s'affiche à l'écran. Par exemple, pour afficher "L" lettre sur l'écran, sélectionnez-registre est trop élevée. Lorsque la lecture / écriture ligne de contrôle est faible, les informations sur le bus de données est écrit sur ​​l'écran LCD. Lors de la lecture / écriture est élevé, le programme efficacement les requêtes (ou lit) l'écran LCD. Cette commande contrôle peut être mis en œuvre en utilisant le langage de programmation "C". Pour les données d'interface 4-bits, seules quatre lignes de bus (D4 D7 travers) sont utilisés pour le transfert de données. Les lignes de bus D0 à D3 sont désactivées. Le transfert de données entre HD44780 et le microcontrôleur termine une fois que les données de 4 bits est transféré deux fois.



Contrôle d'une norme numérique LCD n'est pas si difficile. Pour afficher le texte sur l'écran LCD, les fichiers de bibliothèque corrects pour l'écran LCD sont nécessaires. Plusieurs bibliothèques LCD sont disponibles sur l'Internet, qui sont utilisés dans diverses applications. Vous risquez d'être gêné dans quelle bibliothèque est adapté à votre application. Bibliothèques pour les écrans LCD trouvés dans la bibliothèque AVRLIB occupent inutilement l'espace mémoire du programme. Pour résoudre le problème, vous pouvez écrire votre propre bibliothèque pour contrôle LCD. programme Software Ce projet démontre envoyer le texte au contrôleur LCD et le défilement dans l'écran LCD. Pour le projet, AVR Studio 4 et WINAVR logiciels doivent être installés sur votre PC. Trois codes de programme sont utilisés ici-movm.c, lcd2.c et lcd2.h. Le movm.c contient le message texte à faire défiler sur l'écran LCD. lcd2.c et lcd2.h sont les fichiers de bibliothèque. La technique de programmation donnée ici peut-être pas la meilleure car elle utilise une logique simple, mais ça marche plutôt bien. La bibliothèque LCD pour 4 lignes ou le fonctionnement en mode 4 bits est utilisé ici. Chaque broche connectée à l'écran LCD peuvent être définis séparément dans le code lcd2.h. L'écran LCD et AVR configurations de ports dans le code C ainsi que les commentaires sont donnés ci-dessous: # define LCD_RS_PORT LCD_PORT LCD port RS ligne # define LCD_RS_PIN 2               bits PORTC 2 pour RS ligne # define LCD_RW_PORT PORTD    Port pour la ligne RW # define LCD_RW_PIN 6             bits PORTD 6 pour la ligne RW # define LCD_E_PORT LCD_PORT  LCD port pour ligne de validation # define LCD_E_PIN 3                 bits PORTC 3 pour ligne de validation Activer la ligne de commande. La ligne de commande E est utilisé pour indiquer l'écran LCD que l'instruction pour envoyer les données sur le bus de données est prêt à exécuter. E doit toujours être manipulé lors de la communication avec l'écran LCD. Autrement dit, avant d'interagir avec l'écran LCD, la ligne E est toujours faible. Les instructions suivantes basculer broche de validation pour lancer l'opération d'écriture: / * toggle broche de validation pour lancer  écrire * /  static void toggle_e (void)   {     lcd_e_high ();   lcd_e_delay ();  lcd_e_low ();  }    La sous-routine complète de ce code peut être consulté dans lcd2.c. La ligne E doit être laissée élevé pour le temps requis par l'écran LCD pour se préparer à recevoir les données, il est normalement d'environ 250 nanosecondes (consulter la fiche de la durée exacte). qu'occupé de l'écran LCD. Cela prend un certain temps pour chaque instruction devant être exécutée par l'écran LCD. Le délai varie en fonction de la fréquence du cristal relié à l'entrée de l'oscillateur HD44780 ainsi que l'instruction en cours d'exécution. S'il est possible d'écrire le code qui attend un laps de temps précis pour permettre à l'écran pour exécuter des instructions, cette méthode d'attente n'est pas très flexible. Si la fréquence de l'oscillateur est modifié, le logiciel doit être modifiée. En outre, si l'écran lui-même est changé, le programme pourrait ne pas fonctionner même si le nouvel écran LCD est compatible HD44780. Le code doit être modifié en conséquence. Le retard ou l'instruction d'attente peut être facilement mis en œuvre en langage C. C En programmation, le retard est appelé en utilisant le retard () la fonction. Par exemple, le retard (16000) de commande donne un délai de 16 millisecondes. L'initialisation de l'écran LCD. Avant d'utiliser l'écran LCD, il doit être initialisé et configuré. Ceci est accompli par l'envoi d'un certain nombre d'instructions d'initialisation de l'écran LCD. Dans WINAVR programmation GCC donné ici, la première instruction définit la fréquence du quartz utilisé dans le circuit. Il est suivi par un fichier d'en-tête standard pour AVR spécifiques à l'appareil d'E / S de fichier d'en-tête et les définitions pour intégrer les services du programme spatial de chaîne. Les étapes d'initialisation dans le fichier movm.c sont les suivantes: # define F_CPU 16000000  # include



# Include 
# Include 
# Include "lcd2.h"  
# Define dose de 250 

Effacement de l'écran. Lorsque l'écran LCD est d'abord initialisé, l'écran devrait automatiquement être autorisé par le contrôleur HD44780. Cela permet d'effacer l'écran de tout texte indésirable. Effacement de l'écran garantit également que le texte affiché sur l'écran LCD est celle destinée à l'affichage. Une commande LCD existe dans «Assemblée» pour accomplir cette fonction d'effacement de l'écran. Sans surprise, la fonction AVR GCC est flexible et facile à mettre en œuvre.

Reportez-vous au code ci-dessous:
lcd_init (LCD_DISP_ON);      
lcd_clrscr ();                     

Voici la première ligne est pour l'initialisation LCD (allumer l'écran LCD) avec le curseur «off». La deuxième ligne efface la routine d'affichage pour effacer l'écran LCD.

. Rédaction d'un texte à l'écran LCD Pour écrire un texte à l'écran LCD, le texte désiré est mis en mémoire en utilisant la chaîne char [] fonction comme suit:

char string [] = PROGMEM "wecome A 
ELECTRONIQUE POUR VOUS - New Delhi "; 

Le programme rend cette défilement du texte sur la première ligne, puis la deuxième ligne de l'écran LCD. La vitesse de défilement du texte sur l'écran LCD est définie par "# define TAUX 250" dans le début du code movm.c. Pour commencer, tout d'abord l'écran LCD est effacé et l'emplacement du premier caractère d'apparaître sur l'écran est définie. Obtenir le texte de la mémoire de programme, puis faire défiler sur l'écran LCD continue est obtenue en utilisant le code suivant:

tandis que (j <= (len-1))  
    {    
        lcd_clrscr ();  
        lcd_gotoxy (0,0); 

        pour (k = 0, i = j, (k <16) && (pgm_  
        read_byte (et string [i])! = '\ 0'  
        ), K + +, i + +)   
        {  
          lcd_putc (pgm_read_  
          octet (et string [i]));  
        }   

        WaitMs (RATE);  
        j + +;  
    }   

La compilation et la programmation. Compilation du movm.c pour générer le code movm.hex est simple. Ouvrir AVR Studio4 sur le bureau et sélectionnez Nouveau projet dans l'option de menu 'Projet'. Sélectionnez AVR GCC option et entrez le nom du projet. Ensuite, sélectionnez 'AVR Simulator "et cliquez sur bouton' Ok '.

Copiez d'abord les trois codes (movm.c, lcd2.c et lcd2.h) sur votre ordinateur. Importez les fichiers movm.c et lcd2.c dans l'option "fichiers source" sur le côté gauche de l'écran. Ensuite, importez le fichier lcd2.h dans l'option «Fichiers d'en-tête. Sélectionnez le périphérique que ATmega16 et cochez la case contre l'option "Créer Hex" dans la fenêtre de configuration du projet. Maintenant, cliquez sur "Rebuild All" option dans 'Build' menu. Si le code est compilé sans erreur, le code movm.hex est générée automatiquement dans "Default" dossier du dossier du projet.




Pour graver le code hexadécimal dans ATmega16, n'importe quel programmeur standard supportant ATmega16 appareil peut être utilisé. Il ya quatre différents modes de programmation AVR:
1. Programmation in-situ (ISP)
2. Haute tension de programmation
3. L'action conjointe des groupes de test (JTAG) de programmation
4. Programme et l'interface de programmation de débogage

Voici deux options pour brûler le code hexadécimal de la norme ISP mode sont expliquées. Certains outils qui prennent en charge AVR ISP programmation comprennent STK600, STK500, mkII AVRISP, mkII JTAGICE et AVR Dragon. Il ya aussi de nombreux autres outils de programmation AVR disponibles sur le marché.

PonyProg2000 logiciel. Ce logiciel ainsi que des circuits de programmation est disponible à partir de www.lancos.com / prog.html site. Après avoir installé PonyProg2000, sélectionnez la famille d'appareils comme régulateur Micro et type d'appareil que ATmega16. Or, dans "Setup" du menu, sélectionnez "SI Prog 'option E / S pour le programmeur de série et le port COM de l'option« Configuration de l'interface. En option «Sécurité et Configuration Bits", configurer les bits comme indiqué dans la Fig. 3. Ensuite, ouvrez le fichier de périphérique (code hexadécimal) et cliquez sur «Write All" option de gravure de la puce.

Frontline TopView logiciel. Ce logiciel ainsi que programmeur-pension est disponible à partir de www.frontline-electronics.com site. Après avoir installé le logiciel, sélectionner le port COM dans le menu "Paramètres". Dans «périphérique» du menu, sélectionnez le périphérique que ATmega16. Gravez le code hexadécimal dans la puce en cliquant sur ​​"Programme" option. Notez que le microcontrôleur utilise une horloge de 16MHz généré à l'extérieur. Programme des bits fusibles dans le logiciel en sélectionnant octets supérieurs et inférieurs comme suit:

Fusible octet de poids faible = EF 
Fusible octet haut = C9  

Si les bits fusibles ne sont pas configurés correctement, le texte défile lentement ou le défilement du texte peut ne pas fonctionner correctement, même si la vitesse de défilement dans le code est changé. Le connecteur SPI6 vous permet de programmer l'AVR en utilisant l'adaptateur SPI en mode ISP




Aucun commentaire:

Enregistrer un commentaire