專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

PIC16F917 內(nèi)部AD練習(xí)程序

作者:佚名   來源:不詳   點擊數(shù):  更新時間:2014年08月31日   【字體:

/*************PIC16F917單片機程序*************************/
/******************************************************************/
/*****File  Function :  內(nèi)部AD練習(xí)程序                 *****/
/*****Program Author :  ZhengWen(ClimberWin) *****/
/*****MCU            : PIC16F917  內(nèi)部晶振         *****/
/*****Compile Date   :  2014/08/17                     *****/
/*****Edition Info   :  V1.0                                   *****/
/*************************************************************/
//RA5(AN4)作為AD輸入,電位器調(diào)節(jié)電壓,LED顯示電壓數(shù)值
//引腳定義: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;   
     TRISA = 0B00100000;//設(shè)置RA5(AN4)作為輸入
     TRISB = 0B00100001;//設(shè)置RB0為輸入,作為按鍵口
     TRISC = 0B00000000;//設(shè)置RC0為輸出
     LCDCON=0x00;//關(guān)閉LCD功能,不然PORTC不能作為普通I/O輸出
     TRISD = 0B00000000;//設(shè)置PORTD口為輸出,作為LED顯示口
    
   
///////////AD配置///////////////////////////////////////
     ANSEL= 0B00010000; //選擇AN4作為AD輸入 (PDF 148)
     ADCON0=0B10010001;//AD結(jié)果格式Right justified,選擇參考電壓VDD-VSS,AN4輸入,關(guān)閉AD轉(zhuǎn)換
     ADCON1=0B01010000;  //AD轉(zhuǎn)換時鐘選擇

     ADIE=1;//AD中斷使能
     PEIE=1;
     ADIF=0;//清除中斷標(biāo)志位
     GIE=1;  //開總中斷
}
void  interrupt  ADint(void)
  {
    
      PORTD=~ADRESL;//LED輸出顯示低8位
      PORTC=~ADRESH;//LED輸出顯示高2位
       ADIF=0;//清除中斷標(biāo)志位
      ADCON0=ADCON0|0B00000010;//開始AD轉(zhuǎn)換
  }
 
////////////主程序/////////////////////////
int main (void)
{
  Init();//初始化程序
  ADCON0=ADCON0|0B00000010;//開始AD轉(zhuǎn)換
  while(1) //等待AD轉(zhuǎn)換
   {
    ;
   }
}
關(guān)閉窗口