单片机12C5604AD A/D转化 C语言程序 求高手给一个!

如题所述

#include <stc12c56.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint z) //延时程序
{
uint i,j;
for(i=0;i<z;i++)
for(j=0;j<110;j++);
}
void init()
{
P1M0=0x03; //0000 0011设置P1口低2位为开喽模式,用于A/D采集
P1M1=0x03;
ADC_CONTR=0xe0; //1110 0000开启A/D电源,设置最高转换速度
delay(100); //延时使电源稳定
}
uint readad(uchar m) //m为通道值
{
uchar AD_finished=0;
uint result;
ADC_DATA=0;
ADC_LOW2=0;
ADC_CONTR&=0xf8;
ADC_CONTR|=m; //选择通道
ADC_CONTR|=0x08; //启动AD转换
delay(1);
while(AD_finished==0) //等待AD转换结束
{
AD_finished=(ADC_CONTR&0x10);
}
result=ADC_DATA*4+ADC_LOW2;
ADC_CONTR&=0xf7;
return(result);
}
void main()
{
while(1);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-15

这是STC官网的例程,供参考。

相似回答