
第+章STC15F2K60S2单片机的A/D转换
第十章 STC15F2K60S2单片机 的A/D转换

A/D转换:·模数转换:将模拟量转化为数字量的过程。计算机可以处理的是数字量,而传感器测得的电压等量为模拟量。需要进行转换才可以显示处理。例如:假设某传感器输出电压在0~5V之间,如何将它的输出值其化为10位二进制数?
A/D转换: • 模数转换:将模拟量转化为数字量的过程。计算机可以处理的是 数字量,而传感器测得的电压等量为模拟量。需要进行转换才可 以显示处理。 例如:假设某传感器输出电压在0~5V之间,如何将它的输出值其 化为10位二进制数?

A/D转换:·10位代表转换精度,假设参考电压为5V。10位有1024个数码可将5V细分成1024等分。10位二进制数每增大一个,电压增大精度为5/1024V。10位二进制数为B10时,电压大小5/1024V。为(B10*5V)/1024oV.0000000000·00000000011*5/1024V·00000000102*5/1024V·B10B10*5/1024当输入电压为x时,B10=×*1024/5当输出的二进制数为B10时,对应的输入电压为B10*1024/5
A/D转换: • 10位代表转换精度,假设参考电压为5V。10位有1024个数码, 可将5V细分成1024等分。10位二进制数每增大一个,电压增大 5/1024V。精度为5/1024V。10位二进制数为B10时,电压大小 为(B10*5V)/1024 • 0000 0000 00 0V • 0000 0000 01 1*5/1024V • 0000 0000 10 2*5/1024V • B10 B10*5/1024 • 当输入电压为x时,B10= x*1024/5 • 当输出的二进制数为B10时,对应的输入电压为B10*1024/5

STC15F2K60S2的模数转换传统的51单片机的AD转换需要通过外接芯片完成,而STC15F2K60S2具有8个10位高速输入型模数转换器。8个通道为P1.0~P1.7,转换信号为电压模数转换一般分为:双积分型:速度最慢,需要几百毫秒。逐次逼近型:速度较快,需要几十微秒。并行比较型:速度最快,几十纳秒。STC15F2K60S2用的是逐次比较法
STC15F2K60S2的模数转换 • 传统的51单片机的AD转换需要通过外接芯片完成,而 STC15F2K60S2 具有8个10位高速输入型模数转换器。 • 8个通道为P1.0~P1.7,转换信号为电压。 模数转换一般分为: 双积分型:速度最慢,需要几百毫秒。 逐次逼近型:速度较快,需要几十微秒。 并行比较型:速度最快,几十纳秒。 ST C15F2K60S2用的是逐次比较法 •

STC15F2K60S2的模数转换采用的转换方法为逐次逼近法。过程为:先将结果B10最高位置1,对比(B10*5V)/1024·值和电压值的大小。若电压大说明,最高位为1,若电压小说明最高位为0,再将次高位值1,依次往后比出每一位
STC15F2K60S2的模数转换 • 采用的转换方法为逐次逼近法。 • 过程为:先将结果B10最高位置1,对比(B10*5V)/1024 • 值和电压值的大小。若电压大说明,最高位为1,若电压小说明 最高位为0,再将次高位值1,依次往后比出每一位

控制AD转换的寄存器P1ASF(9DH)::P1ASF(9DH):B7B5B1B6B4B3B2BOP17ASFP13ASFP12ASFP11ASFP10ASFP16ASFP15ASFP14ASF·控制P1对应位是否切换到了ADC通道,没有切换的位可作为普通1/0口使用。思考:如何打开0.2.4.6引脚作为ADC转换思考:如何关闭4引脚的ADC功能,其余位保持不变
控制AD转换的寄存器P1ASF(9DH): • P1ASF(9DH): • 控制P1对应位是否切换到了ADC通道,没有切换的位可作为普通 I/O口使用。 • 思考:如何打开0.2.4.6引脚作为ADC转换。 • 思考:如何关闭4引脚的ADC功能,其余位保持不变。 B7 B6 B5 B4 B3 B2 B1 B0 P17ASF P16ASF P15ASF P14ASF P13ASF P12ASF P11ASF P10ASF

控制AD转换的寄存器ADCCONTRADC CONTR(BCH):B7B5B4B6B3B2B1BOCH1CH2CHOADCPSPEEDSPEEDADC FLADC ST0AG1ARTOWER模拟通道选择,芯片一次只能做一个通道的转换。切换通道需要20~200微秒延时。CH2、CH1、CH0:指示目前正在进行模拟转换的是哪个通道。·000P10011P13110 P16001P11111 P17100P14010 P12101P15
控制AD转换的寄存器 ADC_CONTR: • ADC_CONTR(BCH): • 模拟通道选择,芯片一次只能做一个通道的转换。切换通道 需要20~200微秒延时。CH2、CH1、CH0:指示目前正在 进行模拟转换的是哪个通道。 • 000 P10 011 P13 110 P16 • 001 P11 100 P14 111 P17 • 010 P12 101 P15 B7 B6 B5 B4 B3 B2 B1 B0 ADC_P OWER SPEED 1 SPEED 0 ADC_FL AG ADC_ST ART CH2 CH1 CH0

控制AD转换的寄存器ADCCONTR:·ADC CONTR(BCH):B7B6B5B4B1B3B2BOCH1ADCPSPEEDADCFLADCSTCH2CHOSPEED0AG1ARTOWER·ADCPOWER:ADC电源控制位。ADCPOWER=O,关闭ADC电源ADCPOWER=1,打开ADC电源·启动A/D转换前一定要确认ADC电源已经打开,初次打开ADC电源需要适当时延(1ms),等ADC电路稳定后在启动A/D转换。思考:打开模拟转换电源并打开通道P11程序为?假设SPEED0SPEED1和ADC_FLAG均为0PLASF=0x02;ADCCONTR=0x81;
控制AD转换的寄存器 ADC_CONTR: • ADC_CONTR(BCH): • ADC_POWER: ADC电源控制位。ADC_POWER=0,关闭ADC电源, ADC_POWER=1,打开ADC电源。 • 启动A/D转换前一定要确认ADC电源已经打开,初次打开ADC电源需要 适当时延(1ms),等ADC电路稳定后在启动A/D转换。 • 思考:打开模拟转换电源并打开通道P11程序为?假设SPEED0 SPEED1 和ADC_FLAG均为0. • PLASF=0x02; ADC_CONTR=0x81; B7 B6 B5 B4 B3 B2 B1 B0 ADC_P OWER SPEED 1 SPEED 0 ADC_FL AG ADC_ST ART CH2 CH1 CH0

控制AD转换的寄存器ADCCONTR:ADC CONTR(BCH):B4B7B6B5B3B2B1BOCH2CH1CHOADCPSPEEDSPEEDADCFLADCST0AG1OWERART·ADCSTART:A/D转换启动位,ADCSTART=1,开始转换,ADCSTART=O不转换·思考:打开模拟转换通道1,开启电源,进行适当延时后,开启模拟转换,假设SPEEDOSPEED1和ADCFLAG均为OPLASF=0x02;ADC_CONTR=0x81;Delay8ms();ADCCONTR=0x89;
控制AD转换的寄存器 ADC_CONTR: • ADC_CONTR(BCH): • ADC_START: A/D转换启动位,ADC_START=1,开始转换, ADC_START=0不转换。 • 思考:打开模拟转换通道1,开启电源,进行适当延时后,开启 模拟转换,假设SPEED0 SPEED1 和ADC_FLAG均为0. • PLASF=0x02; ADC_CONTR=0x81; • Delay8ms();ADC_CONTR=0x89; B7 B6 B5 B4 B3 B2 B1 B0 ADC_P OWER SPEED 1 SPEED 0 ADC_FL AG ADC_ST ART CH2 CH1 CH0

控制AD转换的寄存器ADCCONTR:: ADC CONTR(BCH):B7B6B5B4B1B3B2BOCH1CH2CHOADCPSPEEDSPEEDADCFLADCST0AG1ARTOWER·SPEED1、SPEEDOADC转换速度控制位。ADCFLAG:ADC转换完成后将这一位置1,检测到这一位为1自动调用中断函数。·思考中断号为几
控制AD转换的寄存器 ADC_CONTR: • ADC_CONTR(BCH): • SPEED1、SPEED0 ADC转换速度控制位。 • ADC_FLAG:ADC转换完成后将这一位置1,检测到这一位为1, 自动调用中断函数。 • 思考中断号为几 B7 B6 B5 B4 B3 B2 B1 B0 ADC_P OWER SPEED 1 SPEED 0 ADC_FL AG ADC_ST ART CH2 CH1 CH0