实验 AD转换 一、实验目的 了解STC单片机ADC的结构; 掌握STC单片机ADC的使用。 二、实验原理 STC15F2K60S2单片机内含8路10位高速AD转换器,速度可达30万次/秒。单片机P1口既可作为普通I/O口,也可作为AD转换器模拟电压输入口。AD转换器相关的寄存器如表1所示。 表1 ADC转换相关寄存器
①P1口控制寄存器P1ASF P1ASF某一位为“1”,P1口对应的引脚设为模拟功能。某一位为“0”,对应的引脚设为普通I/O。 ②ADC控制寄存器ADC_CONTR ADC_POWER=1,打开AD转换器电源(关闭电源可降低功耗,ADC初次上电需适当延时,再启动AD转换)。 SPEED1、SPEED0选择AD转换速度。
ADC_FLAG:AD转换结束标志,需由软件清0。 ADC_START:AD转换启动控制。 CHS2、CHS1、CHS0:选择模拟输入通道P1.0~P1.7。 转换结果存放在ADC_RES和ADC_RESL寄存器中,当CLK_DIV.5/ADRJ=0时,ADC_RES为结果的高8位,ADC_RESL为结果的低2位(如表2所示)。当CLK_DIV.5/ADRJ=1时,ADC_RES为结果的高2位,ADC_RESL为结果的低8位(如表3所示)。 表2 ADRJ=0时ADC转换结果寄存器格式
表3 ADRJ=1时ADC转换结果寄存器格式
STC15F2K60S2的AD转换器以Vcc为参考电压,当ADRJ=0时,10位转换结果与输入模拟电压的关系由式(1)计算: …………...……………………(1)
如果只取高8位,则由式(2)计算: ……………………………………...…………………(2)
当ADRJ=1时,10位转换结果与输入模拟电压的关系由式(3)计算: …………………………………(3)
如果单片机Vcc电压不稳,会引起AD转换误差,在实际应用中,可用一路AD采样外部的基准电压(如用TL431基准电源),另一路AD采样被测电压,按式(4)计算: ………………………………..…………………..(4)
三、实验环境 Windows XP; Keil μ Vision 4; STC-ISP-6.28。 四、实验内容 1.实验连线 分别用两根8芯杜邦线将单片机P2口与J61、单片机P0口与J62连接起来,P0口用于数码管的位选择,P2口输出数码管的显示码。用跳线帽短接JP8、JP9,模拟输入经过RC滤波(如图1所示)。用杜邦线连接连接J35和P1.3,单片机通道3采样模拟输入电压。 
图1 ADC模拟输入滤波电路 2.程序设计 Keil汇编或C语言头文件REG51.H不包含STC单片机ADC寄存器定义,而编程时需要用到ADC_CONTR、ADC_RES等特殊功能寄存器,STC-ISP软件提供各种STC单片机的寄存器定义头文件。在STC-ISP软件界面,选择头文件选项卡,选择好单片机系列,该系列的寄存定义出现在文本框中,可以复制头文件内容,也可以保存头文件(如图8-2所示)。本实验可以将头文件命名为STC15F2K.H,保存到\Keil\C51\INC文件夹中,以后编程时直接用该头文件替换REG51.H。 AD转换可以用中断的方式,也可以用查询的方式。每次转换结束,将ADC_RES寄存器和ADC_RESL寄存器内容存入整型变量result。当ADRJ=0时: int result; result=(ADC_RES<<2)|(ADC_RESL&3); vin=result*Vcc/1024; //Vcc单位为毫伏 
图9-2 STC15F2K系列头文件 3.程序设计 程序经编译生成HEX文件,再利用STC-ISP软件将代码下载到单片机中,调节多圈电位器W3,观察数码管显示值的变化。用数字万用表核对J35的输入电压与数码管显示的电压是否一致。 五、思考题 1. ADC通道2对2.45V基准电压(J41)采样,通道3对模拟输入电压采样,根据(4)式计算并显示被测电压。 2.如何实现多路电压检测并轮流显示?
以上图文的Word格式文档下载(内容和本网页上的一模一样,方便保存):
实验 AD转换.docx
(104.09 KB, 下载次数: 228)
|