Étape 2: Le code...
Voici donc le code, ce qui rendra le projet travailler :
Connexions de module LCD
sbit LCD_RS à RA0_bit ;
sbit LCD_EN à RA1_bit ; sbit LCD_EN à RB3_bit ;
sbit LCD_D4 à RB4_bit ;
sbit LCD_D5 à RB5_bit ;
sbit LCD_D6 à RB6_bit ;
sbit LCD_D7 à RB7_bit ;
sbit LCD_RS_Direction à TRISA0_bit ;
sbit LCD_EN_Direction à TRISA1_bit ; sbit LCD_EN_Direction à TRISB3_bit ;
sbit LCD_D4_Direction à TRISB4_bit ;
sbit LCD_D5_Direction à TRISB5_bit ;
sbit LCD_D6_Direction à TRISB6_bit ;
sbit LCD_D7_Direction à TRISB7_bit ;
char LCDTXT [] = "Salvo [FINIS]" ;
char LCDMSG [] = "Data" ;
char uart_rd ;
unsigned short new_DC, current_DC ;
long ADC_Value = 0 ;
unsigned int adc_rd ;
unsigned char ch ;
char * temp = « 0000 » ;
int i = 0 ;
tlong long ;
/*
Configure les valeurs du système de démarrage
*/
Sub TempDisplay()
{
adc_value = ADC_Read(4) ;
adc_value = adc_value (long) * 5000 ;
adc_value = adc_value / 1023 ;
Temp [0] = adc_value/1000 + 48 ;
Temp [1] = (adc_value/100)%10 + 48 ;
Temp [2] = (adc_value/10)%10 + 48 ;
Temp [3] = adc_value % 10 + 48 ;
Lcd_Out(2,1,"Temp:") ;
Lcd_Out(2,7,Temp) ;
Delay_ms(20) ;
}
Sub IOConfig()
{
Désactiver l’analogique
ANSELA = 0 X 08 ;
ANSELB = 0 X 0 ;
Ports
TRISB = 0XF8 ;
TRISA = 0 X 10 ;
PIC16F1827 a deux capture comparer les modules et les deux doivent être désactivés
CCP1CON = 0 X 0 ;
CCP2CON = 0 X 0 ;
INTCON = 0 ; désactiver toutes les interruptions
CPSCON0 = 0 ;
ADCON0 = 0 X 10 ;
CM1CON0 = 0 X 0 ;
}
Sub LCDConfig()
{
Lcd_Init() ; Initialiser le LCD
Lcd_Cmd(_LCD_CLEAR) ; Affichage clair
Lcd_Cmd(_LCD_CURSOR_OFF) ; Curseur hors
Lcd_Out(1,1,LCDTXT) ; Écrire du texte en première ligne
}
Sub main() {}
IOConfig() ;
LCDConfig() ;
while(1)
{
LED() ; Test affichage signal
TempDisplay() ;
}
}