
numEctron                                                                                                        http://nalhossri.free.fr 
____________________________________________________________________________________ 
et affichage direct dans la RAM du LCD : */ 
 
void aff_base(dword hexa, byte base); 
void aff_float(float data, byte decimale); 
void aff_CAN(byte CAN, byte decimal); 
void aff_heure(byte heures, byte minutes, byte secondes); 
 
/* Temporisation logicielle: */ 
 
void tempo_ms(word temps); 
 
//********************************************************************************* 
/* Constante utile pour la conversion HEXA/ASCII. Elle contient les codes ascii des caractères de 0 à F. 
ex: h[12]=code ascii (0x43) du caractère C. */ 
 
const byte *h="0123456789ABCDEF";    
 
//********************************************************************************* 
#include "car_spec.h"       //table définissant quelques caractères spéciaux. 
 
/********************************************************************************** 
void ecr_ctrl(byte ctrl) 
 
Envoie un octet ctrl de contrôle pour modifier la configuration du LCD. L'envoi au LCD de cet octet se fait 
en mode deux fois 4 bits. 
    
**********************************************************************************/ 
void ecr_ctrl(byte ctrl){ 
 
 //utilise la variable mon_octet.octet pour avoir accès aux bits de ctrl : 
 mon_octet.octet=ctrl; 
 
 //met d'abord les 4 bits de poids forts de ctrl sur les 4 lignes DATA 7-4 utilisées du LCD  
           //(mode 4 bits) 
 
 DATA4 = mon_octet.bits.bit4;         
 DATA5 = mon_octet.bits.bit5;   
 DATA6 = mon_octet.bits.bit6;   
 DATA7 = mon_octet.bits.bit7;   
 
 LCD_RS=0;         //envoie un octet de commande. 
 LCD_RW=0;         //écriture dans la RAM du LCD. 
 LCD_E=1;         //validation par l'impulsion E. 
 LCD_E=0; 
 
 //met par la suite les 4 bits de poids faible de ctrl sur les 4 lignes DATA 7-4  
 //utilisées du LCD (mode 4 bits) 
 DATA4 = mon_octet.bits.bit0;         
 DATA5 = mon_octet.bits.bit1;   
 DATA6 = mon_octet.bits.bit2;   
 DATA7 = mon_octet.bits.bit3;   
 
 LCD_E=1;         //validation par l'impulsion E. 
 LCD_E=0; 
 
 //test du bit Busy ou attente de #2ms pour que le LCD soit prêt. 
 busy_lcd();        
} 
 
 
 
 
 
______________________________________________________________________________ 
Bibliothèque de fonctions en langage C- LCD                                                                 Nabil AL HOSSRI 
5