看手册后面部分,有AD转换的汇编例子,下面是我用C改过来的
//10位转换精度,channel范围0~7,对应P1.0~P1.7口 //返回10位宽度量化值 UINT STC12C5410AD_ADC_Convert_10(UCHAR channel){ ADC_CONTR&=0x80+channel; //设定A/D转换通道 usDelay(10); ADC_CONTR|=0x08; //启动AD转换
while((ADC_CONTR&0x10)==0){} //等待AD转换结束 ADC_CONTR&=0xe7; //清ADC_FLAG位和ADC_START位
return (UINT)(ADC_DATA*4+ADC_LOW2); }
|