Bonjour tout le monde,
je viens d'ecrire un code en c, le but est de lire RA0 du port A et envoyer cette valeur sur un lcd 2x16, ceci sans convertir en code ascii.
Exemple si RA0 egale: 0010001000 , je dois lire 136 en decimal. Le probleme est que je n'arrive pas a afficher cette valeur, la communication entre pic et lcd fonnctionne.
La valeur lue est afficher sur lcd comme indiquée dans le programme.
Voici le code.
merci d'avance si qqn peut me dépanner.
Code:// LCD module connections sbit LCD_RS at RB0_bit; sbit LCD_EN at RB1_bit; sbit LCD_D4 at RB2_bit; sbit LCD_D5 at RB3_bit; sbit LCD_D6 at RB4_bit; sbit LCD_D7 at RB5_bit; sbit LCD_RS_Direction at TRISB0_bit; sbit LCD_EN_Direction at TRISB1_bit; sbit LCD_D4_Direction at TRISB2_bit; sbit LCD_D5_Direction at TRISB3_bit; sbit LCD_D6_Direction at TRISB4_bit; sbit LCD_D7_Direction at TRISB5_bit; // End LCD module connections unsigned char ch; // unsigned int adc_rd; // Declare variables char *text; // void main() { INTCON = 0; // All interrupts disabled CMCON = 0X7; // Disable comparators Lcd_Init(); // LCD display initialization Lcd_Cmd(_LCD_CURSOR_OFF); // LCD command (cursor off) Lcd_Cmd(_LCD_CLEAR); // LCD command (clear LCD) text = "valeur lue"; // Define the first message Lcd_Out(1,1,text); // Write the first message in the first line ADCON1 = 0x82; // A/D voltage reference is VCC TRISA = 0xFF; // All port A pins are configured as inputs Delay_ms(2000); while (1) { adc_rd = ADC_Read(0); // A/D conversion. Pin RA0 is an input. Lcd_Out(2,1,adc_rd); // Write result in the second line Delay_ms(10); } }
-----