TP N 8 : Interface LCD avec un PIC en C

Documents pareils
INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Rappels Entrées -Sorties

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire


ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Le langage C. Séance n 4

Connexion sur REDLION G-308 avec le modem GSM GDW-11 pour envoi de SMS

Bases de programmation. Cours 5. Structurer les données

Algorithmique et Programmation, IMA

Introduction au langage C

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

TP1 : Initiation à Java et Eclipse

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Conventions d écriture et outils de mise au point

UE Programmation Impérative Licence 2ème Année

Programmation système I Les entrées/sorties

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Traitement de texte : Quelques rappels de quelques notions de base

Programmation impérative

Logiciel de Base. I. Représentation des nombres

Programmation en langage C

La saisie d un texte

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

ProCod. Manuel d utilisation. Software de programmation pour codeurs absolus TWK modèles CRF et DAF CRF DF 08 / 10

PIC EVAL Dev Board PIC18F97J60

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Rappels d architecture

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Les chaînes de caractères

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

CYBERHOTEL PRESENTATION & SETUP

Diigo : fonctions avancées

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Généralités sur le Langage Java et éléments syntaxiques.

Débuter avec PsoC ou PsoC niveau 0

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Ordinateurs, Structure et Applications

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Utilisation de l'outil «Open Office TEXTE»

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Guide de programmation FLEXIVOZ PABX OD308

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Modules d automatismes simples

TER Licence 3 Electronique des Télécoms Transmission GSM

TP, première séquence d exercices.

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Structure d un programme

La programmation des PIC en C. Les fonctions, les interruptions.

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Business Sharepoint Contenu

ALGORITHMIQUE ET PROGRAMMATION En C

Chapitre 10 Arithmétique réelle

PIXMA MG5500. series. Guide d'installation

Structure du format BMP, sa lecture, sa construction et son écriture

INFO-F-404 : Techniques avancées de systèmes d exploitation

Configuration de TCPIPconfig.h

Les structures. Chapitre 3

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Codage d information. Codage d information : -Définition-

Chapitre 2. Classes et objets

NOTICE SIMPLIFIEE ER-A280F. I Initialisation avec Remise à Zéro de la caisse : ENTER PASSWORD ER-A280V. Ver1.02

TP 1. Prise en main du langage Python

BTS IRIS Cours et Travaux Pratiques. Programmation C. A. Lebret, TSIRIS, Lycée Diderot, 1995/06. en conformité avec le référentiel du BTS IRIS

H REGISTER GUIDE USAGER

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

WINDOWS SERVER 2003 Maintenance d'active directory V1.0

V- Manipulations de nombres en binaire

Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee

Plan du cours. Historique du langage Nouveautés de Java 7

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

PIC : COURS ASSEMBLEUR

Manuel Utilisateur Version 1.6 Décembre 2001

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Sélection du contrôleur

Annexe : La Programmation Informatique

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Procédure Configuration Borne Wifi. Attribution d'une adresse IP

Chap III : Les tableaux

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP PLACO. Journées Mathrice d'amiens Mars 2010

Utiliser Freemind à l'école

Module Criteo Tags et Flux pour Magento

Créer une base de données

PROGRAMMER EN MQL4. Apprenez à automatiser vos stratégies sur MetaTrader 4

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

GUIDE D'UTILISATION DU TELEPHONE GSM ALTO II

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

Cours Informatique 1. Monsieur SADOUNI Salheddine

Guide Google Cloud Print

Cours Informatique Master STEP

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Système Electronique pour le Monitoring des Chaînes PV

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Manuel d utilisation. Thermomètre d'enregistrement de données à trois canaux Modèle SD200

Gestion d'une billeterie défilé des talents

Dossier projet isn 2015 par Victor Gregoire

Transcription:

TP N 8 : Interface LCD avec un PIC en C A. Introduction : Dans ce TP, nous allons voir comment interfacer un Module LCD 16 2 avec un microcontrôleur PIC 16F876A utilisant le Compilateur C CCS. Le Module LCD 16 2 est un module très couramment utilisé dans des projets avec LCD. 16 2 signifie qu'il peut afficher deux lignes de 16 caractères. C est un module très simple et à faible coût. Ses autres variantes telles que 16 1, 20 4 sont disponibles sur le marché. Dans ces affichages, chaque caractère est affiché à l'aide de 5 x 5 x 8 ou 10 matrice de points. Ces écrans LCD utilisent généralement les contrôleurs compatibles HD44780. Diagramme de connections du LCD L interface entre un microcontrôleur et l'écran LCD peut être fait en mode 4 bits ou 8 bits. La différence entre les deux modes est de savoir comment les données sont envoyées à l'écran LCD. Pour écrire un caractère 8 bits vers le module LCD en mode 8-bit, les données ASCII sont envoyées par l'intermédiaire des lignes de données DB0- DB7 avec validation par la ligne E. Mais le mode 4 bits n utilise que 4 lignes de données. Dans ce mode, les données ASCII en 8 bits sont divisées en deux parties qui sont envoyés de manière séquentielle par l'intermédiaire des lignes de données DB4 - DB7 (ou DB0 DB3) avec son propre échantillonnage de données avec la ligne d'e. L'avantage de la communication 4 bits est de diminuer le nombre de broches qui sert d'interface avec l écran LCD. La communication 4 bits est un peu plus longue que celle en 8 bits. La différence de vitesse est minime, comme les écrans LCD sont des dispositifs à basse vitesse la différence de vitesse JFA 2015 Page 1 TP8

entre ces deux modes n est pas significative. N oubliez pas que nos microcontrôleurs travaillent dans la gamme des MHz. Ainsi, la transmission de données en mode 4-bits est le plus couramment utilisée. Le language C CCS fournit dans le fichier de la bibliothèque, "lcd.c" pour l'interface LCD HD44780 ayant des contrôleurs conformes à la communication en mode 4 bits. Il suffit d'inclure ce fichier dans votre programme et de profiter de la librairie LCD CCS. I. LCD Connections Pour le bon fonctionnement de la bibliothèque LCD, vous devez définir les connexions utilisés pour l'interface LCD dans le programme. Enable E or EN Register Select RS Read / Write RW Data 4 DB4 or D4 Data 5 DB5 or D5 Data 6 DB6 or D6 Data 7 DB7 or D7 Ceux-ci doivent être définis avant d'inclure le fichier d'en-tête, il peut être fait des deux façons indiquées ci-dessous : 1 ) PORT Access Method Cette méthode nécessite toute l'interface 7 bits relié à un même port GPIO. Elle devrait être définie avant d'inclure le fichier d'en-tête, comme indiqué ci-dessous. #define LCD_DATA_PORT getenv("sfr:portd") Ceci définit que toute l'interface 7 bits est connectée au PORT D de microcontrôleur PIC. 2 ) PIN Access Method Dans cette méthode, vous pouvez raccorder ces 7 bits avec les broches GPIO et il devrait être défini avant d'inclure le fichier d'en-tête, comme indiqué ci-dessous. II. //LCD Module Connections #define LCD_RS_PIN PIN_D1 #define LCD_RW_PIN PIN_D2 #define LCD_ENABLE_PIN PIN_D3 #define LCD_DATA4 PIN_D4 #define LCD_DATA5 PIN_D5 #define LCD_DATA6 PIN_D6 #define LCD_DATA7 PIN_D7 //End LCD Module Connections Fonctions Importantes 3 ) lcd_init() Cette fonction doit être appelée avant toute autre fonction LCD. Il initialise le module LCD avec les connexions définies ci-dessus. 4 ) lcd_putc(c) Cette fonction affiche c sur la prochaine position du curseur de l'écran LCD. Vous pouvez imprimer des chaînes de caractères et des caractères en utilisant cette fonction. Vous pouvez également utiliser le caractère antislash pour envoyer différentes commandes à écran LCD. \\a Pour positionner le curseur en haut à gauche \\f Pour effacer l affichage et remettre le curseur en haut à gauche \\n Pour aller au début de la ligne suivante JFA 2015 Page 2 TP8

\\b pour un retour arrière d une position 5 ) lcd_gotoxy(x, y) Cette fonction peut être utilisée pour définir la position du curseur de l'écran LCD, la position supérieure gauche est (1,1). 6 ) lcd_getc(x, y) Cette fonction renvoie le caractère à la position (x, y) sur l'écran LCD. 7 ) lcd_cursor_on(int1 on) Cette fonction peut être utilisée pour activer le curseur ou le désactiver. Exemple: lcd_cursor_on(true); //Turns ON the cursor lcd_cursor_on(false); //Turns OFF the cursor Note : Pour plus de détails vous pouvez lire le fichier de bibliothèque "lcd.c" à l'emplacement C: / Program Files / PICC / Drivers /. Où, B. Usage de printf() printf () peut émettre une chaîne de caractères vers l UART standard ou à une fonction spécifique. Il peut être utilisé avec la bibliothèque LCD CCS C pour formater les chaînes de sortie. Par conséquent nous pouvons imprimer des nombres entiers, nombres à virgule flottante, etc en utilisant cette fonction. 8 ) Syntax : printf(fname, cstring, values...); fname est le nom de la fonction, ici vous pouvez utiliser lcd_putc. string est une chaine de caractères constante ou un tableau de caractères terminé par un \0. Le formatage est fait en conséquence avec la chaîne de format. values est la liste des variables séparées par une virgule. III. Format La forme générique du format est %nt. où n est facultatif et qui peut être 1-9 pour préciser le nombre de caractères à être délivrés ou 01-09 pour indiquer les zéros d en tête ou 1.1 à 9.9 pour le point et flottante %w formats. t est du type suivant : t c s u d Type Caractère Chaîne de caractères ou caractère Entier non signé Entier signé JFA 2015 Page 3 TP8

Lu Ld x X Lx LX f g e w Entier long non signé Entier long signé Entier en Hexadécimal en minuscule Entier en Hexadécimal en majuscule Entier Long en Hexadécimal en minuscule Entier Long en Hexadécimal en majuscule Flottant avec partie décimale tronquée Flottant avec partie décimale arrondie Flottant avec exposant Entier non signé avec décimale inséré. Spécifiez deux chiffres pour n. Le premier est la largeur totale du champ. Le second est le nombre de décimales voulu. 9 ) Exemple : Pour imprimer un entier : printf(lcd_putc,"count = %d", i); Si i = 0, la sortie sera : Count = 0 JFA 2015 Page 4 TP8

C. Schéma d utilisation Schéma d interfaçage d un LCD avec un Microcontrôleur PIC D. Code CSS C //LCD Module Connections #define LCD_RS_PIN PIN_D1 #define LCD_RW_PIN PIN_D2 #define LCD_ENABLE_PIN PIN_D3 #define LCD_DATA4 PIN_D4 #define LCD_DATA5 PIN_D5 #define LCD_DATA6 PIN_D6 #define LCD_DATA7 PIN_D7 //End LCD Module Connections #include <lcd.c> #use delay (clock=8000000) void main() { int i=0; lcd_init(); Delay_ms(100); while(true) { lcd_putc('\\f'); //Clear Display JFA 2015 Page 5 TP8

} } lcd_putc("hello World"); Delay_ms(2000); lcd_putc('\\f'); //Clear Display lcd_putc("welcome To"); lcd_gotoxy(1,2); lcd_putc("lcd Library"); Delay_ms(2000); lcd_putc('\\f'); //Clear Display printf(lcd_putc,"count = %d", i); //Display Count Delay_ms(2000); i++; E. Afficheur 4 lignes La bibliothèque lcd.c a été modifiée pour supporter les afficheurs avec 4 lignes. Elle a été renommée Flex_420.c. F. Bibliographie https://electrosome.com/lcd-pic-microcontroller-ccs-c/ JFA 2015 Page 6 TP8