1. 实验背景与硬件准备
ADC(Analog-to-Digital Converter)模数转换是嵌入式开发中的基础功能模块,它能将模拟信号转换为数字信号供MCU处理。在工业控制、传感器数据采集等领域应用广泛。普中51单片机开发板(包括普中-2、普中-3、普中-4型号)均内置了8通道10位ADC模块,最高采样率可达100kHz,完全满足大多数教学和基础开发需求。
1.1 所需硬件清单
- 普中51开发板(任意型号)
- USB数据线(供电与程序下载)
- 电位器(10kΩ)或光敏电阻模块
- 杜邦线若干
- 万用表(可选,用于电压测量验证)
注意:不同型号的普中开发板ADC引脚位置可能不同,建议先查阅对应原理图。例如普中-3的ADC0通道对应P1.0口,而普中-4可能是P1.1。
1.2 开发环境搭建
- Keil C51安装:建议使用μVision V5.25以上版本
- STC-ISP下载工具:用于程序烧录(V6.88以上支持自动冷启动)
- 驱动安装:CH340串口驱动(开发板USB转串口芯片)
配置Keil时需特别注意:
- 选择正确的Device型号(如STC89C52RC)
- Target选项卡中设置XTAL频率为11.0592MHz(与开发板晶振一致)
- Output选项卡勾选"Create HEX File"
2. ADC工作原理深度解析
2.1 逐次逼近型ADC原理
普中51采用的ADC属于SAR(Successive Approximation Register)型,其工作流程如下:
- 采样保持电路捕获输入电压
- DAC生成比较电压,从MSB开始逐位比较
- 经过10次比较后得到最终数字量
数学关系式:
[ Digital,Value = \frac{V_{in}}{V_{ref}} \times 1023 ]
其中Vref通常接VCC(5V),因此每个LSB对应约4.88mV。
2.2 关键寄存器配置
c复制// ADC控制寄存器
sfr ADC_CONTR = 0xBC; // 控制寄存器地址
sbit ADC_FLAG = ADC_CONTR^4; // 转换完成标志
sbit ADC_START = ADC_CON
