- Đăng vào
Tạo một project cho PIC16f877A bằng MPLAB XC8
Giới thiệu
MPLAB XC8 là trình biên dịch cho ngôn ngữ C mới nhất của Mỉcrochip với khả năng tối ưu code rất mạnh. MPLAB XC8 hỗ trợ lập trình trên C cho các dòng vi điều khiển PIC10/12/16/18.
Video này hướng dẫn tạo một project đơn giản cho pic16f877a bằng Mplab xc8 thực hiện công việc đọc adc và xuất led. Sau đó tiến hành mô phỏng trong proteus.
Code file main.c
/******************************************************************************/
/* Files to Include */
/******************************************************************************/
#if defined(__XC)
#include /* XC8 General Include File */
#elif defined(HI_TECH_C)
#include /* HiTech General Include File */
#endif
#include /* For uint8_t definition */
#include /* For true/false definition */
#include "system.h" /* System funct/params, like osc/peripheral config */
#include "user.h" /* User funct/params, such as InitApp */
/******************************************************************************/
/* User Global Variable Declaration */
/******************************************************************************/
/* i.e. uint8_t ; */
/******************************************************************************/
/* Main Program */
/******************************************************************************/
void main(void)
{
/* define variable for program */
unsigned short ADC_value;
/* Configure the oscillator for the device */
ConfigureOscillator();
/* Initialize I/O and Peripherals for application */
InitApp();
/*main loop*/
while(1)
{
/* TODO */
__delay_us(25); //Waits for the acquisition to complete
ADCON0bits.GO = 1; //Starts ADC conversion
while (ADCON0bits.nDONE) continue; //wait till ADC conversion is over
ADC_value = (ADRESH << 8) + ADRESL ; //Merging the MSB and LSB
if (ADC_value > 512) RD0 = 1;
else RD0 = 0;
}
}