Difference between revisions of "PIC16F877A ADC on Starter Borad"
(Created page with "Category:Starter PIC16F877 File:Pic16f877aADC01.PNG<br><br>") |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Starter PIC16F877]] | [[Category:Starter PIC16F877]] | ||
+ | In this tutorial we will see how to read the ADC values on PIC16f877A starter board.<br> | ||
+ | Starter board comes with on board POT connected to ADC0, same POT value will be read and transmitted on UART at 9600 baudrate. | ||
+ | <br><br> | ||
+ | |||
+ | =PIC16F877A ADC pins= | ||
+ | PIC16F877A has inbuilt 8channel 10-bit ADC. Below tables shows the ADC pin mapping.<br> | ||
+ | {| class="table table-striped table-hover table-condensed table-bordered" | ||
+ | |-class="info" | ||
+ | !Adc Channel || Pic16f877a Pin || Pin Function | ||
+ | |- | ||
+ | |0|| PA.0 || AN0 | ||
+ | |- | ||
+ | |1|| PA.1 || AN1 | ||
+ | |- | ||
+ | |2|| PA.2 || AN2/VREF- | ||
+ | |- | ||
+ | |3|| PA.3 || AN3/VREF+ | ||
+ | |- | ||
+ | |4|| PA.5 || AN4 | ||
+ | |- | ||
+ | |2|| PE.0 || AN5 | ||
+ | |- | ||
+ | |3|| PE.1 || AN6 | ||
+ | |- | ||
+ | |4|| PE.2 || AN7 | ||
+ | |}<br><br> | ||
+ | |||
+ | =Code= | ||
+ | Below is the sample code to read the ADC value of channel0 and sent it on UART at 9600 baud rate.<br> | ||
+ | As the POT is connected to ADC0, the values can be varied using this POT. | ||
+ | <html> | ||
+ | <script src="https://gist.github.com/sharanago/83a7537783383c8130576a79a493c87a.js"></script> | ||
+ | </html> | ||
[[File:Pic16f877aADC01.PNG]]<br><br> | [[File:Pic16f877aADC01.PNG]]<br><br> | ||
+ | |||
+ | =Demo= | ||
+ | [[File:Pic16f877aADC00.gif]]<br><br> |
Latest revision as of 18:58, 2 May 2016
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 | Pin Function |
---|---|---|
0 | PA.0 | AN0 |
1 | PA.1 | AN1 |
2 | PA.2 | AN2/VREF- |
3 | PA.3 | AN3/VREF+ |
4 | PA.5 | AN4 |
2 | PE.0 | AN5 |
3 | PE.1 | AN6 |
4 | PE.2 | AN7 |
Code
Below is the sample code to read the ADC value of channel0 and sent it on UART at 9600 baud rate.
As the POT is connected to ADC0, the values can be varied using this POT.
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); | |
} |