[PIC16F723-S EVM] ADC테스트 - TFT LCD에 그래프 표시
PIC16F723은 저렴한 MCU 임에도 8bit ADC가 13채널이 있다. 8bit라 약간 아쉬움이 있지만 VREF도 있고 속도도 빨라 여러가지로 사용가능할것 같다.
PIC16F723 ADC 블록도
PIC16F723 ADC 레지스터
PIC16F723 ADC 초기화 함수
void AdcInit(void)
{
// initial A/D channel 0,1
Sbi(TRISA, BIT0);
Sbi(ANSELA, BIT0);
VCFG1 = 0; //Low Voltage refences = VSS
VCFG0 = 0; //High Voltage refences = VDD
GODONE = 0; //A/D Conversion Start and Check this bit, if done,ADGO => 0
ADON = 1; //A/D Conversion Operating
//Sampling rate
ADCS1 = 1;
ADCS0 = 1;
}
PIC16F723 ADC Read 함수
unsigned char AdcRead(unsigned char port)
{
ADCON0 = (0x3C&(port<<2)) | BIT0;
//AD Converter Start
GODONE = 1;
//AD End Check
while(GODONE)continue;
//Read AD Converting Value
return ADRES;
}
PIC16F723 ADC테스트 동영상
PIC16F723 EVM 확장 보드 ADC0 에 연결된 가변저항의 전압값을 TFT LCD에 표시하는 예제 이다.
PIC16F723 ADC 테스트 소스코드
void main(void)
{
unsigned char adc_value;
SystemInit();
Led1Init();
U0_Init(BAUD_57600);
DebugPrint("PIC16F723 EVM Test\r\n");
IntAdc();
while(1)
{
adc_value = AdcRead(0);
DebugPrint("%d\r\n", adc_value );
Delay(10);
}
}