Driver de port parallèle

Slides:



Advertisements
Présentations similaires
FICHE DE PREPARATION D’UNE SEQUENCE DE COURS
Advertisements

Premier programme en C :
Génération de plate-forme
Le Concept du programme enregistré
Les procédures et interruptions en Assembleur (Tasm)
Journées académiques Microsoft 2005
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Portée des variables VBA & Excel
Synchronisation des processus père - fils
FICHE DE PREPARATION D’UNE SEQUENCE DE COURS
FICHE DE PREPARATION D’UNE SEQUENCE DE COURS
FICHE DE PREPARATION D’UNE SEQUENCE DE COURS
FICHE DE PREPARATION D’UNE SEQUENCE DE COURS
FICHE DE PREPARATION D’UNE SEQUENCE DE COURS
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
Le Concept du programme enregistré
Revision.
Driver de port parallèle
Jc/md/lp-01/05TTY_IT : présentation1 TTY_IT Présentation.
Jc/md/lp-01/05Essai ligne série COM1 : présentation1 Essai ligne série CEPC Application écho sur COM1 Présentation.
Gestion mémoire : présentation
Jc/md/lp-01/05gestion mémoire : corrigé1 Gestion mémoire Corrigé
Driver UART en polling : présentation
Jc/md/lp-01/06Kernel Tracker1 Debugging Kernel Tracker.
Driver UART en polling : corrigé
Jc/md/lp-01/05Driver élémentaire : corrigé1 Driver élémentaire Émulateur Corrigé
Jc/md/lp-01/05Trains_presentation1 Threads et Synchronisation Application train Présentation.
Jc/md/lp-01/05Boot Loader1 BOOT LOADER. jc/md/lp-01/05Boot Loader2 Objectif du chapitre Introduire la notion de Boot Loader Donner un aperçu de lorganisation.
Jc/md/lp-01/05Driver élémentaire : présentation1 Driver élémentaire Émulateur Présentation.
Jc/md/lp-01/05Trains_corrigé1 Threads et Synchronisation Application train Corrigé
FLSI602 Génie Informatique et Réseaux
Les microprocesseurs A. Objectifs de la séquence:
Système d’exploitation : Assembleur
Système d’exploitation : Assembleur
Les systèmes à microprocesseur
Affichage LCD RS: Register Selection Transfert de données
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
CYCLE 1 : Saisir – Afficher – Données Afficher du texte sur lécran 1- Rôle du printf() 2- Syntaxe du printf() 3- Exécution du printf() par le CPU.
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Récursivité.
Automates Programmables Industriels Automates Programmables
Architecture des Ordinateurs
Fonction COMMUNIQUER les liaisons série
1 CLUB DES UTILISATEURS SAS DE QUÉBEC COMMENT TRANSFORMER UN PROGRAMME SAS EN TÂCHE PLANIFIÉE SOUS WINDOWS Présentation de Jacques Pagé STRiCT Technologies.
Dan Bismuth Tutrices : Marie-Lise Flottes - Joanne Acland
Les fichiers binaires en C++
Programmation Initiation Aux Langages C et C++ (2) Bruno Permanne 2006.
Modules Afficheurs LCD Alphanumériques
LES SYSTEMES AUTOMATISES
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
ΜP David Saint-Mellion.
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
FICHE DE PREPARATION D’UNE SEQUENCE DE TD
Afficheur industriel « AIW » MAT Électronique
Gérer la sécurité des mots de passe et les ressources
Advanced Boolean Equation Language
3-Présentation d’un µP simple
Microprocesseur famille 68'000 Interface matériel
02/10/2013JC LP MD1 COURS_3. 02/10/2013JC LP MD2 Direct Memory Access DMA.
République Algérienne Démocratique et Populaire Ministère de l'enseignement supérieur et de herche scientifique Université de Ferhat Abbas -Sétif.
1 LE BUS PCI 8 ième partie: L ’espace de configuration Sommaire - Repère zHuitième partieL ’espace de configuration yQu ’est-ce? yEspace de configuration.
18/09/2013JC LP MD1 Cours_2. 18/09/2013JC LP MD2 Mapping de configuration.
Simulateur de microcontrôleur Intel 80C51
Patricia Renault UPMC 2005/2006
Représentation digitale des données Trois formats de base: 1) Décimale: base 10 (Une constante i.e dimension d ’1 vecteur) 2) Binaire: base 2 ( Mask, set/reset.
Encadrer par Mr Chelly Nizar
Les bascules et registres
Formations Système Embarqué & Informatique Industrielle
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
Intervention sur un système technique Afficheur industriel « AIW »
Transcription de la présentation:

Driver de port parallèle B-208 (1/2) CE4.2 Driver de port parallèle Commande d’un module d’affichage LCD jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Module d'affichage LCD sur le port parallèle : présentation Objectif du chapitre Faire fonctionner un module d’affichage LCD couplé sur le port parallèle de la cible CEPC Étude sommaire du port parallèle standard des PC Étude sommaire du module LCD Écriture d’un driver pour ce module Écriture d’une application pour afficher deux lignes sur le module LCD Téléchargement dans le CEPC Exécution jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Port Parallèle d’un PC (1) Le port parallèle standard (SPP) est un port prévu dès l’origine du PC pour obtenir une liaison plus rapide que la liaison série de l’époque, utile pour commander une imprimante Dans un PC-XT ou dans un PC-AT le SPP n’était pas sur la carte mère mais sur une carte additionnelle qui contenait aussi un port série Carte à installer dans un connecteur du bus ISA jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Port Parallèle d’un PC (2) B-208 (1/2) CE4.2 Port Parallèle d’un PC (2) Il était possible d’installer sur le bus ISA deux cartes série/parallèle en choisissant par des straps deux décodages d’adresse possibles 0x378 : Parallel Printer 1 (LPT1) associé à l’IRQ7 0x278 : Parallel Printer 2 associé à l’IRQ5 Cet adaptateur parallèle n’était même pas un boîtier spécifique mais l’association d’un PAL et de quelques latches et drivers constituant trois registres Plus tard sont apparus des circuits spécifiques plus polyvalents En fait, il existait une troisième possibilité d’installation d’une imprimante dans la plage des adresses 0x3B0-0x3BF ; cette plage était partagée avec un contrôleur d’écran monochrome et donc disponible dès qu’on utilisait un contrôleur d’écran couleur/graphique logé à un autre endroit (0x3D0-0x.3DF). Le port série était dès l’origine réalisé avec un circuit spécialisé NS 16450. PAL : circuit de logique programmable, en l’occurrence, le circuit utilisé contenait très peu de circuits logiques Le circuit spécialisé PPI (Programmable Peripheral Interface) Intel 82C55A (deux ports) est un exemple de circuit beaucoup plus souple que la réalisation d’origine. Aujourd’hui, ces ports, en voie d’extinction, quand ils existent sont regroupés avec les chipsets ou dans un adaptateur chipset-ISA ou PCI-ISA. jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Port Parallèle d’un PC (3) B-208 (1/2) CE4.2 Port Parallèle d’un PC (3) Registre de données (D0-D7) à l’adresse de base du port Registre de Status (S3-S7) à l’adresse de base du port + 1 utilisé pour ses cinq bits de poids forts seulement S3-S7, S0-S2 inutilisés ou inexistants Registre de commande (C0-C4) à l’adresse de base du port + 2 Utilisé pour ses cinq bits de poids faibles C0-C4, C5-C7 inutilisés ou inexistants ici nous n’utilisons que C0-C4 En fait on retrouve dans de vieux documents le bit C4 qui fut, à l’origine, utilisé pour autoriser ou interdire des interruptions lors du changement d’état du bit 6 du registre de status. Les bits C4 et C5 sont utilisés dans le port parallèle modernisé EPP. jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Registres du port parallèle B-208 (1/2) CE4.2 Registres du port parallèle Registre de données Adresse de base D7 D6 D5 D4 D3 D2 D1 D0 Poids fort Registre de status (lecture) Poids faible Adresse de base + 1 S7 S6 S5 S4 S3 Les noms attribués dans la littérature aux bits des registres de commande et de status sont à géométrie variable du fait de l’inversion de certains signaux et suivant qu’on se réfère à l’attribution du signal ou au nom porté par la broche. Par exemple, le bit C3 du registre de contrôle est dénommé +SLCT IN dans le document de base IBM. Une écriture avec un 1 dans le bit C3 permet de sélectionner une imprimante. Il est présenté sur la broche 17 du connecteur DB25 après inversion, ce qui est cohérent avec le nom donné à la broche : -SLCT IN. Quand on lit le registre de commande, le signal présent sur la broche est inversé et on récupère bien dans le registre un bit +SLCT IN. Registre de contrôle Adresse de base + 2 C4 C3 C2 C1 C0 jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Registres données et commande B-208 (1/2) CE4.2 Registres données et commande D0 D0 C0 C0 D1 D1 C1 C1 D2 D2 C2 C2 D3 D3 C3 C3 D4 D4 D5 D5 Nous ne montrons que ce qui concerne l’écriture puisque nous n’utiliserons pas de lecture avec notre afficheur. D6 D6 D7 D7 Registre données Buffer Registre commande Buffer jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Module d'affichage LCD sur le port parallèle : présentation Registre status Inutilisé dans notre application jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation B-208 (1/2) CE4.2 Écriture sur un port VOID WRITE_PORT_UCHAR(PUCHAR Port, UCHAR Value); Parameters Port [in] Pointer to the port that must be a mapped memory range in I/O space. Value [in] Byte to be written to the port. Return Values None. Nota : les sorties C0, C1, C3 du registre de commande sont inversées, pour être directement compatibles avec les signaux standards d’une imprimante. jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Module d’affichage LCD HD44780 Le module possède Une mémoire de 80 caractères : Display Data RAM (DD RAM) Un générateur de police de caractère Deux registres internes DR et IR Taille de l’afficheur utilisé : Nombre de lignes d’affichage : 2 Nombre de caractères par ligne : 20 jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Signaux du module LCD Port de données D0-D7 RS Register Select E Enable R/W Lecture/écriture, pour nous 0 VDD Alimentation, pour nous sera prise sur le port sur la broche C2 VSS Masse VL Contrôle du contraste, pour nous 0, contraste maximal jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Câblage du module LCD sur le port parallèle CE4.2 Câblage du module LCD sur le port parallèle Module d’affichage LCD D7 D6 D5 D4 D3 D2 D1 D0 RS E R/W VSS VL VDD VDD VDD 10 KΩ 10 KΩ VDD VL à la masse donne le contraste maximum Les nombres 1 à 9 et 17 correspondent au brochage de la prise DB25 du port parallèle. Nous utiliserons aussi la broche 16 associée au bit C2 du registre de commande pour alimenter le module : un 1 dans la position C2 qui n’est pas inversée, permet d’appliquer une tension correcte à la broche VDD du module. D7 D6 D5 D4 D3 D2 D1 D0 C3 C0 Port parallèle 9 8 7 6 5 4 3 2 17 1 jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Registres internes du module LCD Deux registres internes IR registre d’instruction DR registre de données Commande des registres par deux signaux RS : Register Selector relié à la broche C3 du port parallèle différencie ces deux registres E : Enable relié à la broche C0 du port parallèle valide l’introduction des données dans les registres jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Séquence d’écriture dans IR et DR B-208 (1/2) CE4.2 Séquence d’écriture dans IR et DR Repos IR RS=0 E=0 Repos DR RS=1 E=0 Donnée → IR RS=0 E→0 Donnée → DR RS=1 E→0 jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Commandes pour écrire IR Signaux de commande en position de repos RS relié à C3 et E relié à C0 mais C3 et C0 sont complémentées d’où : commande . . . . 1 x x 1 (RS=0 E=0) Mettre l’instruction sur le port parallèle D0-D7 Écrire cette instruction dans le registre IR commande . . . . 1 x x 0 (RS=0 E=1) Retour à l’état de repos commande . . . . 1 x x 1 (RS=0 E=0) jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Commandes pour écrire DR Signaux de commande en position de repos RS relié à C3 et E relié à C0 mais C3 et C0 sont complémentées d’où : commande . . . . 0 x x 1 (RS=1 E=0) Mettre la donnée sur le port parallèle D0-D7 Écrire cette donnée dans le registre DR commande . . . . 0 x x 0 (RS=1 E=1) Retour à l’état de repos commande . . . . 0 x x 1 (RS=1 E=0) jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Options On peut commander la tension VDD avec la ligne C2, ce qui évite une alimentation externe La ligne C1 est réservée pour avoir un second signal Enable utilisé avec un afficheur à 4 lignes C2 VDD 1N4148 + 1 µF jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Détail des commandes IR et DR B-208 (1/2) CE4.2 Détail des commandes IR et DR Afficheur LCD à deux lignes → C1 inutilisé, à 0 Alimentation par le port → C2 toujours à 1 Repos en prévision d’une commande pour IR %1101 = 0xD «CTRL» C2=1 RS=0 E=0 Entrée de la commande dans IR %1100 = 0xC «CTRLEN» C2=1 RS=0 E=1 Repos en prévision d’une commande pour DR %0101 = 0x5 «DATA» C2=1 RS=1 E=0 Entrée de la commande dans DR %0100 = 0x4 «DATAEN»  C2=1 RS=1 E=1 Les noms utilisés seront définis dans le programme par des #define. CTRL : pour la sélection du registre de contrôle CTRLEN : pour registre de contrôle enable DATA : pour la sélection du registre de données DATAEN : pour registre de contrôle enable jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Module d'affichage LCD sur le port parallèle : présentation DDRAM du module LCD Le module LCD contient une DDRAM gérée automatiquement par les écritures dans le registre DR La donnée écrite dans le registre DR est transférée systématiquement dans la DDRAM à une adresse définie par un compteur d’adresse interne (AC) AC incrémenté à chaque écriture dans DR AC initialisé par écriture de l’instruction Set DDRAM address dans le registre IR jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

LCD à 2 lignes de 20 caractères DDRAM 0x00 Première ligne 20 caractères 0x13 20 caractères 0x27 0x40 Seconde ligne 20 caractères 0x53 0x54 20 caractères 0x67 jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Instructions pour le LCD (1) B-208 (1/2) CE4.2 Instructions pour le LCD (1) Clear Display: 0x01 Return Home: 0x02 Entry Mode Set: 0x04 à 0x07 (%000001 I/D S) I/D = 1 incrément S = 0 pas de décalage Display ON/OFF: 0x08 à 0x0F (%00001 D C B) D = 0 display OFF C = 0 cursor OFF B = 0 blink OFF Pour les détails de ces commandes il faut consulter la documentation du module LCD. Ici, ce sont les valeurs utilisées dans notre application qui sont mentionnées. jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Instructions pour le LCD (2) Function Set: 0x38 pour nous (%001 DL N F 00) DL=1 Interface 8 bits N=0 LCD à deux lignes (0 pour une ligne) F=0 Matrice 5x7 Set DDRAM address: 0x80 à 0xFF (%1AAAAAAA) AAAAAAA Adresse à placer dans le compteur AC jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Initialisation du LCD Timing à respecter après la mise sous tension Séquence de commande obligatoire de configuration du LCD jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Timing à respecter après Power On jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Séquence d’initialisation B-208 (1/2) CE4.2 Séquence d’initialisation RESET:Instruction 0x30 (Function Set: interface 8 bits) envoyée 3 fois Display OFF Display ON Clear Display Function Set: taille de l’interface, nombre de lignes et police. (non modifiable ensuite) Mode Set: gestion affichage (décalage texte, incrément d’adresse mémoire) jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Exemple d’envoi de commande // Mise du port dans l’état repos commande WRITE_PORT_UCHAR(PARCOMMAND, CTRL); Sleep(15); // Attente de 15ms après la mise sous tension // Function Set 1 (interface 8 bits) WRITE_PORT_UCHAR(PARDATA,0x30); WRITE_PORT_UCHAR(PARCOMMAND, CTRLEN); Sleep(2); // Attente de 2 ms (signal ENABLE actif) Sleep(5); // Attente de 5 ms jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Travail à réaliser Préparer une plate-forme Préparer un driver à inclure Générer le noyau avec le driver Préparer une application Générer l’application sans l’inclure avec le noyau Télécharger le noyau dans la cible Exécuter l’application jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver Le driver comprendra deux IOCTL Écriture d’un caractère Positionnement du curseur On définira un projet PARA_DRV de type WCE Dynamic Link Library à inclure dans le noyau On créera un fichier PARA.def que l’on inclura dans le projet PARA_DRV jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Application L’application écrira un texte sur la ligne 1 du LCD puis positionnera le curseur en début de ligne 2 écrira un deuxième texte sur la ligne 2 On définira l’application PARA_APP de type WCE Application à ne pas inclure dans le noyau jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation PARA.def jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (1) // TODO: // #include nécessaires // Définition des IOCTL #define IOCTL_PUTC \ CTL_CODE(FILE_DEVICE_UNKNOWN,2048,\ METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_CURSEUR \ CTL_CODE(FILE_DEVICE_UNKNOWN,2049,\ METHOD_BUFFERED,FILE_ANY_ACCESS) jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (2) // Définition des adresses du port parallèle #define PARBASE ((PUCHAR) 0x0378) #define PARDATA PARBASE #define PARCOMMAND PARBASE+2 // Définition des mots de commande #define CTRL 0xD #define CTRLEN 0xC #define DATA 0x5 #define DATAEN 0x4 jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (3) BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { return TRUE; } jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (4) DWORD PAR_Init(DWORD dwContext) { DWORD dwRet = 1; RETAILMSG(1,(TEXT("PARA_DRV: PAR_Init\n"))); // TODO: // Mise du port dans l’état repos commande jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (5) // TODO: // Envoi des trois Function Set de RESET // TODO: // Display OFF // TODO: // Display ON // TODO: // Clear Display // TODO: // Function Set (2 lignes, 8 bits) jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (6) // TODO: // Mode Set (incrément, pas de décalage) // TODO: // Mise du port dans l’état repos data return dwRet; } jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (11) BOOL PAR_Deinit(DWORD hDeviceContext) { BOOL bRet = TRUE; RETAILMSG(1,(TEXT("PARA_DRV: PAR_Deinit\n"))); return bRet; } jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (12) DWORD PAR_Open(DWORD hDeviceContext, DWORD AccessCode, DWORD ShareMode) { DWORD dwRet = 1; RETAILMSG(1,(TEXT("PARA_DRV: PAR_Open\n"))); return dwRet; } jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (13) BOOL PAR_Close(DWORD hOpenContext) { BOOL bRet = TRUE; RETAILMSG(1,(TEXT("PARA_DRV: PAR_Close\n"))); return bRet; } jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (14) BOOL PAR_IOControl(DWORD hOpenContext, DWORD dwCode, PBYTE pBufIn, DWORD dwLenIn, PBYTE pBufOut, DWORD dwLenOut, PDWORD pdwActualOut) { int val; BOOL bRet; jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (15) switch(dwCode) { // TODO: case IOCTL_PUTC: // TODO: case IOCTL_CURSEUR: jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Driver (16) // TODO: // Positionnement du curseur // Préparation adresse du curseur // Mise du port en repos commande // Envoi de la commande de positionnement // Mise du port en repos data }// switch *pdwActualOut=1; return bRet; } jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Application jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Application (1) // TODO: // #include nécessaires // Définition des IOCTL #define IOCTL_PUTC \ CTL_CODE(FILE_DEVICE_UNKNOWN,2048,\ METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_CURSEUR \ CTL_CODE(FILE_DEVICE_UNKNOWN,2049,\ METHOD_BUFFERED,FILE_ANY_ACCESS) jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation B-208 (1/2) CE4.2 Application (2) int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation port_parallèle_présentation.V1.0.ppt

Module d'affichage LCD sur le port parallèle : présentation Application (3) // TODO: // Déclarations et réservations // TODO: // Chargement du driver // TODO: // Ouverture du driver // TODO: // Envoi première chaîne // TODO: // Positionnement du curseur au début de la ligne 2 jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Application (4) // TODO: // Envoi deuxième chaîne // TODO: // Fermeture des handles return 0; } jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation

Module d'affichage LCD sur le port parallèle : présentation Conclusion Nous avons dû construire un driver et une application rudimentaires pour commander un module d’affichage LCD installé sur un port parallèle standard de PC. jc/md/lp-01/05 Module d'affichage LCD sur le port parallèle : présentation