|
#include "intrins.h"
/*Declare SFR associated with the ADC
sfr ADC_CONTR = 0xBC; //ADC控制寄存器
sfr ADC_RES = 0xBD; //AD結(jié)果寄存器
sfr ADC_LOW2 = 0xBE; //AD結(jié)果寄存器 ADC low 2-bit result register
sfr P1ASF = 0x9D; //P1模擬功能設(shè)置寄存器 */
/*Define ADC operation const for ADC_CONTR*/
#define ADC_POWER 0x80 //ADC電源控制位
#define ADC_FLAG 0x10 //AD轉(zhuǎn)換結(jié)束標(biāo)志位
#define ADC_START 0x08 //AD轉(zhuǎn)換開始控制位
#define ADC_SPEEDLL 0x00 //420時鐘周期轉(zhuǎn)換一次
#define ADC_SPEEDL 0x20 //280時鐘周期轉(zhuǎn)換一次
#define ADC_SPEEDH 0x40 //140時鐘周期轉(zhuǎn)換一次
#define ADC_SPEEDHH 0x60 //70時鐘周期轉(zhuǎn)換一次void Delay(uint n);//延時
void InitADC();//ADC寄存
void Delay(uint n)//延時
{
uint x;
while (n--)
{
x = 5000;
while (x--);
}
}
void InitADC()//ADC寄存器初始化
{
P1ASF = 0x80; //打開P17 ADC通道
ADC_RES = 0; //Clear previous result
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | 7; //ADC設(shè)置
Delay(2); //ADC power-on and delay
}
|
|