In this tutorial we will see how to read the ADC values on PIC16f877A starter board.
Starter board comes with on board POT connected to ADC0, same POT value will be read and transmitted on UART at 9600 baudrate.
PIC16F877A ADC pins
PIC16F877A has inbuilt 8channel 10-bit ADC. Below tables shows the ADC pin mapping.
Adc Channel | Pic16f877a Pin |
---|---|
0 | PA.0 |
1 | PA.1 |
2 | PA.2 |
3 | PA.3 |
4 | PA.5 |
2 | PE.0 |
3 | PE.1 |
4 | PE.2 |
Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "adc.h" | |
#include "uart.h" | |
int main() | |
{ | |
int adcValue; | |
ADC_Init(); /* Initialize the ADC module */ | |
UART_Init(9600); /* Initialize UART at 9600 baud rate */ | |
while(1) | |
{ | |
adcValue = ADC_GetAdcValue(0); // Read the ADC value of channel zero | |
UART_Printf("ADC0 Value:%4d \n\r",adcValue); // Send the value on UART | |
} | |
return (0); | |
} |