Paso 2: El código...
Hasta abajo está el código, que hará que el proyecto de trabajo:
Conexiones del módulo LCD
SBIT LCD_RS en RA0_bit;
SBIT LCD_EN en RA1_bit; SBIT LCD_EN en RB3_bit;
SBIT LCD_D4 en RB4_bit;
SBIT LCD_D5 en RB5_bit;
SBIT LCD_D6 en RB6_bit;
SBIT LCD_D7 en RB7_bit;
SBIT LCD_RS_Direction en TRISA0_bit;
SBIT LCD_EN_Direction en TRISA1_bit; SBIT LCD_EN_Direction en TRISB3_bit;
SBIT LCD_D4_Direction en TRISB4_bit;
SBIT LCD_D5_Direction en TRISB5_bit;
SBIT LCD_D6_Direction en TRISB6_bit;
SBIT LCD_D7_Direction en TRISB7_bit;
char LCDTXT [] = "Salvo [FINIS]";
char LCDMSG [] = "Datos";
uart_rd Char;
unsigned new_DC corto, current_DC;
ADC_Value largo = 0;
unsigned int adc_rd;
unsigned char ch;
char * temp = "0000";
int i = 0;
tlong largo;
/*
Configura los valores del sistema de arranque
*/
void TempDisplay()
{
adc_value = ADC_Read(4);
adc_value = adc_value (largo) * 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);
}
void IOConfig()
{
Desactivar el analógico
ANSELA = 0X08;
ANSELB = 0 X 0;
Puertos
TRISB = 0XF8;
TRISA = 0 X 10;
PIC16F1827 tiene dos captura comparar módulos y ambos necesitan ser deshabilitado
CCP1CON = 0 X 0;
CCP2CON = 0 X 0;
INTCON = 0; deshabilitar todas las interrupciones
CPSCON0 = 0;
ADCON0 = 0 X 10;
CM1CON0 = 0 X 0;
}
void LCDConfig()
{
Lcd_Init(); Inicializar LCD
Lcd_Cmd(_LCD_CLEAR); Visualización clara
Lcd_Cmd(_LCD_CURSOR_OFF); Cursor apagado
Lcd_Out(1,1,LCDTXT); Escribir texto en la primera fila
}
void main() {}
IOConfig();
LCDConfig();
while(1)
{
LED(); Señal de visualización de prueba
TempDisplay();
}
}