📄 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 + -