/*************PIC16F917單片機程序*************************/
/******************************************************************/
/*****File Function : 內部AD練習程序 *****/
/*****Program Author : ZhengWen(ClimberWin) *****/
/*****MCU : PIC16F917 內部晶振 *****/
/*****Compile Date : 2014/08/17 *****/
/*****Edition Info : V1.0 *****/
/*************************************************************/
//RA5(AN4)作為AD輸入,電位器調節電壓,LED顯示電壓數值
//引腳定義:PORTD=8LED,KEY=RB0(INT)
/*修改日期: */
#include <pic.h>
#define uchar unsigned char
#define uint unsigned int
void Init(void);//初始化子程序
#define KEY RB0
void Init(void)
{
PORTA = 0B00000000;
PORTB = 0B00000000;
PORTC = 0B00000000;
PORTD = 0B00000000;
TRISB = 0B00100001;//設置RB0為輸入,作為按鍵口
TRISC = 0B00000000;//設置RC0為輸出
LCDCON=0x00;//關閉LCD功能,不然PORTC不能作為普通I/O輸出
ANSEL= 0B00010000; //選擇AN4作為AD輸入 (PDF 148)
ADCON0=0B10010001;//AD結果格式Right justified,選擇參考電壓VDD-VSS,AN4輸入,關閉AD轉換
ADCON1=0B01010000; //AD轉換時鐘選擇
ADIE=1;//AD中斷使能
PEIE=1;
ADIF=0;//清除中斷標志位
GIE=1; //開總中斷
}
{
PORTD=~ADRESL;//LED輸出顯示低8位
PORTC=~ADRESH;//LED輸出顯示高2位
ADIF=0;//清除中斷標志位
ADCON0=ADCON0|0B00000010;//開始AD轉換
}
int main (void)
{
while(1) //等待AD轉換
{
;
}
}