51单片机程序问题 stc12c5a60s2 的a⼀d转换问题..

2025-01-04 08:50:00
推荐回答(2个)
回答1:

好吧,先声明我也正在学单片机,回答可能不专业,因为AD问题我只接触过一次。以下结论来着STC12的手册。
1.转换的引脚由ADC_CONTG的低3位CHS2、CHS1和CHS0控制,三位二进制能表示0~7八个数,与P1口一一对应。ADC的结构决定了它一次只能转换一个口,但是STC的转换速度达到10万次/秒,依次转换P1.0和P1.1与同时转换差别不大。设置P1.0时,ch=0x00.设置P1.1时,ch=0x01.
2.是按照一个字节读的,直接读ADC_RES的话只能读到数据的高八位。只用8位ADC转换的话,读ADC_RES就可以了。要想得到10位数据必须加上SendData(ADC_LOW2);
3.既然send函数提到了SBUF,那么说明转换结果是通过串口传到电脑上,用STC下载工具的串口调试应该可以看到转换结果。
4.连续读取可以用函数循环或定时器循环来调用转换函数。例子嘛,定时器我还不会用而你给的值定时器中断法。所以我说下函数的方法,大概是这样:
void main{
InitADC();//初始化ADC
while(1){//死循环
adc_isr();//转换函数
delay(xx);//延时一段时间,否则转换太快,数据量太大。
}
}
5.UART是一种通用串行数据总线,在这里是用于与电脑进行串口通信的。

回答2:

UART是波特率 串口通讯的吧。A/D值的读取是可以设置的,可以是高2位低8位,也可以高8位低2位。