|
以下是用STC12C5A32S2的AD转换过程,你看看吧
- ADC_RES = 0;
- ADC_RESL = 0;
-
- TempIO=TempIO|7; //计算出要选则的IO口寄存器值
- TempIO=TempIO^(7-KeyIO);
-
- KeyIO &= 0x07; //0000,0111 清0高5位
- ADC_CONTR = AD_SPEED;
- nop();
- ADC_CONTR |= KeyIO; //选择 A/D 当前通道
- nop();
- ADC_CONTR |= 0x80; //启动 A/D 电源
- delay(1); //使输入电压达到稳定
- ADC_CONTR |= 0x08; //0000,1000 令 ADCS = 1, 启动A/D转换,
- ReadOver = 0;
- while (ReadOver ==0 ){ //等待A/D转换结束
- ReadOver = (ADC_CONTR & 0x10); //0001,0000 测试A/D转换结束否
- }
- ADC_CONTR &= 0xE7; //1111,0111 清 ADC_FLAG 位, 关闭A/D转换
- return (ADC_RES); //返回 A/D 高 8 位转换结果
复制代码 |
|