?? stc5410adc8.h
字號:
//////////////////////////////////////////////////
//* 文件名: ADC.h //
//* 描述: 自帶8位AD轉(zhuǎn)換 //
//* 程序員: //
//* 創(chuàng)建日期:2007.7.14 //
//* 修改日期:2007.7.14 //
//////////////////////////////////////////////////
#ifndef ADC_H
#define ADC_H
void ADC_Power_ON(void); //開啟ADC電源
void Set_P1x_Open_Drain(unsigned char x); //設(shè)置P1x口為開漏模式
void Set_ADC_Channelx(unsigned char x); //設(shè)置AD轉(zhuǎn)換通道
void Set_P1x_Normal_IO(unsigned char x); //設(shè)置成普通I0口
unsigned char Get_ADC_Result(void); //AD轉(zhuǎn)換
unsigned char Get_ADC_Data(void); //讀取AD轉(zhuǎn)換數(shù)據(jù)
void ADC_Power_ON(void) //開啟ADC電源
{
ADC_CONTR|=0x80; //adc_power=1
Delay1ms(6); //延時2MS
}
void Set_P1x_Open_Drain(unsigned char x) //設(shè)置P1x口為開漏模式
{
unsigned char temp;
temp=(1<<x);
P1M1|=temp;
P1M0|=temp;//如x=3則tmep=0000 0100B
}
void Set_P1x_Normal_IO(unsigned char x) //設(shè)置普通I/O口
{
unsigned char temp;
temp=~(1<<x);
P1M1&=temp;
P1M0&=temp;
}
void Set_ADC_Channelx(unsigned char x) //設(shè)置AD轉(zhuǎn)換通道
{
unsigned char temp;
temp=(0xe0|x);
ADC_CONTR=temp;
Delay1ms(6);
}
unsigned char Get_ADC_Result(void) //獲取AD轉(zhuǎn)換數(shù)據(jù)
{
unsigned char temp;
ADC_DATA=0;
ADC_CONTR|=0x08; //adc_start=1,開始轉(zhuǎn)換
while((ADC_CONTR&0x10)==0); //判斷標(biāo)志位是否為1,如果未轉(zhuǎn)換完繼續(xù)等待
temp=ADC_DATA;
Delay1ms(10);
ADC_CONTR&=0xe7; //adc_flag=0;清標(biāo)志位,adc_start=0,停止轉(zhuǎn)換
return temp; //temp為浮點數(shù)
}
unsigned char Get_ADC_Data(void) //AD轉(zhuǎn)換獲取數(shù)據(jù)
{
unsigned char hbyte,result=0; //參數(shù)傳遞一致
//unsigned char i;
//for(i=0;i<5;i++)
//{
ADC_Power_ON(); //開啟電源
Delay1ms(6);
Set_P1x_Open_Drain(2); //設(shè)置P12為開漏狀態(tài)
Set_ADC_Channelx(2); //設(shè)置P12為AD轉(zhuǎn)換通道
hbyte=Get_ADC_Result(); //開始轉(zhuǎn)換
// Set_P1x_Normal_IO(2); //設(shè)置成普通I/O口
// result+=hbyte;
//}
//result/=5; //采樣五次取平均值
result=hbyte;
return result;
}
//AD轉(zhuǎn)換流程--ADC_Power_ON();//開啟電源 --delay(2);--Set_P1x_Open_Drain(x);//設(shè)置P1x為開漏狀態(tài)--Set_ADC_Channelx(x);//設(shè)置P1x為AD轉(zhuǎn)換通道
//--result=Get_ADC_Result();//開始轉(zhuǎn)換--delay(10);--Set_P1x_Normal_IO(x);
#endif //ADC.h
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -