Bonjour tous le monde.
Je buche depuis quelque heurs sur ce probleme et je j'arrive pas a me decider de la solution voila les detailles:
J'ai un ecran LCD de 2 lignes pour 16 caracteres, Je doit definire " les ligne de controle " les lignes de control sont bien annoter dans les image si dessous.
Cepandant, dans le programmes, je ne voit pas comment les notée?? conversion de decimal vers binnaire??? hexa???
Voila le programme:
#ifndef __XLCD_H
#define __XLCD_H
#include <delays.h> // temporisation pour afficheur LCD
/* ------------------ Début de la partie à compléter ------------------ */
// Définition du type d'interface : 8 bits ou 4 bits
// Pour un fonctionnement sur 8 bits, décommenter la ligne #define BIT8
// #define BIT8
// Pour un fonctionnement en 4 bits, indiquer si les données sont sur les quatres bits
// de poids fort ou de poids faible du PORT utilisé par le PIC
// Si elles sont sur les poids faibles, commenter la ligne #define UPPER
#define UPPER
// Définition du PORT utilisé pour les lignes de données
// DATA_PORT indique le port sur lequel les lignes de données du LCD sont connectées.
// TRIS_DATA_PORT indique le registre de direction correspondant
#define DATA_PORT /* à compléter */
#define TRIS_DATA_PORT /* à compléter */
// Définitions des lignes du PIC sur lesquelles les lignes de contrôle du LCD sont connectées.
// Pour chaque signal RW, RS et E :
// - la définition _PIN indique la ligne du PIC utilisée
// - la définition TRIS_ indique le bit du registre de direction correspondant
#define RW_PIN /* à compléter */
#define TRIS_RW /* à compléter */
#define RS_PIN /* à compléter */
#define TRIS_RS /* à compléter */
#define E_PIN /* à compléter */
#define TRIS_E /* à compléter */
/* ------------------ Fin de la partie à compléter ------------------ */
// Définitions des commandes ON/OFF
#define DON 0b00001111 /* Display on */
#define DOFF 0b00001011 /* Display off */
#define CURSOR_ON 0b00001111 /* Cursor on */
#define CURSOR_OFF 0b00001101 /* Cursor off */
#define BLINK_ON 0b00001111 /* Cursor Blink */
#define BLINK_OFF 0b00001110 /* Cursor No Blink */
#define CLEAR_DISP 0b00000001 /* Clear Display */
#define RET_HOME 0b00000010 /* Return Home */
// Définitions pour le curseur et le décalage de l'affichage (shift)
#define SHIFT_CUR_LEFT 0b00010011 /* Cursor shifts to the left */
#define SHIFT_CUR_RIGHT 0b00010111 /* Cursor shifts to the right */
#define SHIFT_DISP_LEFT 0b00011011 /* Display shifts to the left */
#define SHIFT_DISP_RIGHT 0b00011111 /* Display shifts to the right */
// Définitions pour le choix du mode de fonctionnement
#define FOUR_BIT 0b00101100 /* 4-bit Interface */
#define EIGHT_BIT 0b00111100 /* 8-bit Interface */
#define LINE_5X7 0b00110000 /* 5x7 characters, single line */
#define LINE_5X10 0b00110100 /* 5x10 characters */
#define LINES_5X7 0b00111000 /* 5x7 characters, multiple line */
#define PARAM_SCLASS auto
#define MEM_MODEL far /* Change this to near for small memory model */
/* OpenXLCD
* Configures I/O pins for external LCD
*/
void OpenXLCD(PARAM_SCLASS unsigned char);
/* SetCGRamAddr
* Sets the character generator address
*/
void SetCGRamAddr(PARAM_SCLASS unsigned char);
/* SetDDRamAddr
* Sets the display data address
*/
void SetDDRamAddr(PARAM_SCLASS unsigned char);
/* BusyXLCD
* Returns the busy status of the LCD
*/
unsigned char BusyXLCD(void);
/* ReadAddrXLCD
* Reads the current address
*/
unsigned char ReadAddrXLCD(void);
/* ReadDataXLCD
* Reads a byte of data
*/
char ReadDataXLCD(void);
/* WriteCmdXLCD
* Writes a command to the LCD
*/
void WriteCmdXLCD(PARAM_SCLASS unsigned char);
/* WriteDataXLCD
* Writes a data byte to the LCD
*/
void WriteDataXLCD(PARAM_SCLASS char);
/* putcXLCD
* A putc is a write
-----