STC12C5A06S2单片机的10位AD转换C语言程序,有哪位大侠会编写的,教教可以吗?

2025-03-01 22:30:44
推荐回答(2个)
回答1:

// 定义与 ADC 有关的特殊功能寄存器
sfr P1_ASF = 0x9d; //A/D转换功能允许寄存器
sfr ADC_CONTR = 0xbc; //A/D转换控制寄存器
sfr ADC_RES = 0xbd; //A/D转换结果寄存器
sfr ADC_RESL = 0xbe; //A/D转换结果寄存器

uint8 get_AD(uint8 channel)
{
ADC_RES = 0;
P1 |= (0x01 << channel); //要设置为 A/D 转换的P1.x 口,先设为高
P1_ASF &= (~(0x01 << channel));//设置 A/D 转换输入脚
ADC_CONTR =0xa8 | channel; // 选择 A/D 当前通道
while (!(ADC_CONTR & 0x10)) // 等待A/D 转换结束
{
}
ADC_CONTR &= 0xF7; //1111,0111 令 ADC_START = 0, 关闭A/D 转换,
return (((unint16)ADC_RES)<<2 | (0xfc & ADC_RESL); // 返回 A/D 转换结果
}

回答2:

STC12C5A06S2单片机 的 数据手册 第329页 有例程。有C语言程序,也有汇编语言程序。
可以上 STC 官网 下载 数据手册。