Beruflich Dokumente
Kultur Dokumente
h>
//__CONFIG(0X3F3A);
__CONFIG(0X3F39);
#define ALCD_DATA PORTB
#define ALCD_RS RC0
#define ALCD_Enable RC1
#define ADC_START GO_DONE
unsigned char ADC_Arr[7]={'0','0','0','0','0','C','\0'};
unsigned char ADC_Arr1[7]={'0','0','0','0','0','V','\0'};
unsigned int ADC_Result_L = 0;
unsigned int ADC_Result_H = 0;
unsigned int ADC_Raw_Data = 0;
unsigned int Temp = 0;
void ALCD_Init( void );
void ALCD_Comm( unsigned char comm_data );
// Sending Commands
void ALCD_Data( unsigned char disp_data );
void Delay_Little( void );
void ALCD_Message( char disp_addr, char *data_ptr );
void MSDelay( unsigned int Milli_Sec );
// Delay
of 1 milli second
void ADC_IO_Pin_Config(void);
void ADC_Config(void);
unsigned int ADC_Start_Conversion(unsigned char ADC_Channel );
void Device_Init( void );
void main (void)
{
TRISB = 0x00;
TRISC0 = 0;
TRISC1 = 0;
Device_Init();
ADC_IO_Pin_Config( );
ADC_Config( );
while(1)
{
ADC_Raw_Data = ADC_Start_Conversion( 0 );
Temp = ADC_Raw_Data;
ADC_Arr[4] = (Temp%10)+48;
Temp = Temp/10;
ADC_Arr[3] = '.';
ADC_Arr[2] = (Temp%10)+48;
Temp = Temp/10;
ADC_Arr[1] = (Temp%10+48);
Temp = Temp/10;
ADC_Arr[0] = Temp+48;
ALCD_Message( 0x80, "TEMP : ");
ALCD_Message( 0x87, ADC_Arr);
MSDelay( 1000 );
ADC_Raw_Data = ADC_Start_Conversion( 1 );
Temp = ADC_Raw_Data;
ADC_Arr1[4] = (Temp%10)+48;
Temp = Temp/10;
ADC_Arr1[1] = '.';
ADC_Arr1[2] = (Temp%10)+48;
Temp = Temp/10;
ADC_Arr1[3] = (Temp%10+48);
Temp = Temp/10;
ADC_Arr1[0] = Temp+48;
ALCD_Message( 0xC0, "VOLTAGE : ");
);
);
);
);
// Description
{
for(y=0;y<100;y++)
{
;
}
}
}
void ADC_IO_Pin_Config(void)
{
TRISA = 0xFF;
}
/*********************************************************************
*
*
Configure ADC
*
*********************************************************************/
void ADC_Config(
{
ADCON0 =
ADCON1 =
MSDelay(
void )
0x01;
0x89;
50 );
}
/*********************************************************************
*
*
ADC Conversion
*
*********************************************************************/
unsigned int ADC_Start_Conversion( unsigned char ADC_Channel )
{
unsigned int Result = 0;
switch(ADC_Channel)
{
case 0: ADCON0 = 0x01;
break;
case 1: ADCON0 = 0x09;
break;
}
MSDelay( 20 );
ADC_START = 1;
while( ADC_START != 0);
ADC_Result_H = ADRESH;
ADC_Result_L = ADRESL;
Result = (ADC_Result_L |(ADC_Result_H<<8));
unsigned int Result = (unsigned int)((Result*( 5/1023.0))*1000.0);
return Result;
}