?? ad.txt
字號:
/**************進行一次AD轉換**************/
unsigned char get_ad_result(unsigned char n)
{
//打開AD轉換電源
ADC_CONTR=ADC_CONTR|0x80;
delay_10us(100); //延時1ms
//設置p1.0~p1.6口為開漏模式
P1M0=P1M0|0x7f;
P1M1=P1M1|0x7f;
//選擇p1.x做為AD轉換通道
ADC_CONTR =n; //設置P1.x作為AD輸入
delay_10us(10); //更換通道要加延時20到200us
//進行AD轉換及取結果
ADC_DATA = 0;
ADC_CONTR=ADC_CONTR|0x08; //啟動AD轉換
do
{ ; }
while((ADC_CONTR & 0x10)==0); //等待A/D轉換結束
ADC_CONTR=ADC_CONTR&0x0E7; //清標志位并停止轉換
adc_channel1_result= ADC_DATA;
return adc_channel1_result; //結果用10位的如何處理?
}
/****************ad轉換值比較*******************/
void ad_compare(void)
{
unsigned int n;
m[0] = get_ad_result(adc_channel1_0); //多通道輪流轉換(0~4光轉換)
delay_10us(10);
m[1] = get_ad_result(adc_channel1_1);
delay_10us(10);
m[2] = get_ad_result(adc_channel1_2);
delay_10us(10);
m[3] = get_ad_result(adc_channel1_3);
delay_10us(10);
m[4] = get_ad_result(adc_channel1_4);
delay_10us(10);
m[5] = get_ad_result(adc_channel1_5);
delay_10us(10);
m[6] = get_ad_result(adc_channel1_6);
delay_10us(10);
max=m[0]; //比較5個AD轉換值
for(n=0; n<6;n++)
{
if(max<m[n+1])
max=m[n+1];
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -