版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
10.3A/D转换模块单片机原理与应用10.3A/D转换模块单片机原理与应用本节提要一、A/D转换基础知识二、ATD模块简介三、ATD模块寄存器四、ATD模块编程范例单片机原理与应用本节提要一、A/D转换基础知识单片机原理与应用本节提要一、A/D转换基础知识二、ATD模块简介三、ATD模块寄存器四、ATD模块编程范例单片机原理与应用本节提要一、A/D转换基础知识单片机原理与应用ADC概述微控制器处理的是离散量(数字量),而现实中往往是连续量(模拟量)物理量如:温度,压力,湿度以及速度等等传感器将物理量转换为电信号
(电压,电流)需要模拟-数字转换器将电信号转换为数字量以供微控制器处理单片机原理与应用ADC概述微控制器处理的是离散量(数字量),而现实中往往基本概念传感器
控制器执行器单片机原理与应用基本概念传感器控制器执行器单片机原理与应用ADC工作原理将输入电压与若干等间距的参考电压进行比较因此需要比较器Uin>UrefUout=V+‘1’Uin<UrefUout=0V‘0’+-UinUrefUout1位ADC单片机原理与应用ADC工作原理将输入电压与若干等间距的参考电压进行比较+-ADC工作原理3个比较器可将电压分成4级(以2位来表示)Uref1Uref2Uref3Rank0Rank1Rank2Rank3Uref1Uref2Uref3Uout1Uout2Uout3Quiz1:Forvoltageinrank2,Uout1=?Uout2=?Uout3=?UmaxUmin+-+-+-Uin单片机原理与应用ADC工作原理3个比较器可将电压分成4级(以2位来ADC工作原理2位ADC+-+-+-UinUrefRRRRD0D1编码器8位ADC,需要多少个比较器?单片机原理与应用ADC工作原理2位ADC+-+-+-UinUrefRRRRDADC工作原理FlashConverterADC优点:速度极快缺点:非常复杂逐次逼近式A/D转换器+-Uin逐次逼近寄存器D/A转换器结果Uref单片机原理与应用ADC工作原理FlashConverterADC+-UiADC工作原理逐次逼近式转换器转换过程(4位)SA-ADC完成一次转换至少需要n个时钟周期单片机原理与应用ADC工作原理逐次逼近式转换器转换过程(4位)SA-AADC工作原理必须进行采样保持以避免输入电压在转换期间发生变化+-Uin单片机原理与应用ADC工作原理必须进行采样保持以避免输入电压在转换期间发生变ADC工作原理逐次逼近式转换器(SA-ADC)非常快比较复杂SA-ADC在单片机中较为常见单片机中常见典型为8-12位具有多个多路复用的模拟通道SA-ADC通道选择寄存器单片机原理与应用ADC工作原理逐次逼近式转换器(SA-ADC)SA-ADADC参数转换位数(Bits)分辨率=2-n(8bits=0.39%)转换速度(Speed)由工作时钟频率和转换位数确定转换范围(Range)0~5V,0~10V,-5V~+5V.Etc..转换通道数(Channels)Distinguishthechannelandconverter单片机原理与应用ADC参数转换位数(Bits)单片机原理与应用本节提要一、A/D转换基础知识二、ATD模块简介三、ATD模块寄存器四、ATD模块编程范例单片机原理与应用本节提要一、A/D转换基础知识单片机原理与应用8/10/12位可选转换速度较高,10位精度,单次转换时间为7usec
采样时间可编程设置多种转换模式:数据对齐方式、单次/连续转换、转换结果比较外触发控制转换结束可产生中断可用于8个模拟输入通道的模拟输入多路转换器.模拟/数字输入引脚复用1~8转换序列长度.多通道扫描S12单片机ADC特性单片机原理与应用8/10/12位可选S12单片机ADC特性单片机原理与应用2,4,8,16ClocksAlways2Clocks转换时间计算举例:(假设A/D时钟为2MHz,10位精度
)转换时间=InitialSampleTime+ProgrammedSampleTime+ResolutionPeriod=2+2+10=14A/DClocks=7uSecS12单片机ADC转换时间单片机原理与应用2,4,8,16Always转换时间计算举例:(假S12单片机ADC模块框图ADC引脚可用于数字输入ADC结果寄存器模拟输入通道参考电压单片机原理与应用S12单片机ADC模块框图ADC引脚可用于数字输入ADC本节提要一、A/D转换基础知识二、ATD模块简介三、ATD模块寄存器四、ATD模块编程范例单片机原理与应用本节提要一、A/D转换基础知识单片机原理与应用ATD模块寄存器共27个寄存器控制寄存器(ATDCTL0~ATDCTL5,6个)状态寄存器(ATDSTAT0~ATDSTAT1,2个)比较使能寄存器(ATDCMPE,1个)比较方式寄存器(ATDCMPHT,1个,)转换输入使能寄存器(ATDDIEN,1个)转换结果寄存器(ATDDR0~ATDDR15,16个)其中:8位寄存器:ATDCTL0~ATDCTL5,ATDSTAT016位寄存器:其余单片机原理与应用ATD模块寄存器共27个寄存器单片机原理与应用ATDRegisters1/12ATDControlRegister0(ATDCTL0)WRAP[3-0]-WrapAroundChannelSelect0=ReservedX=多通道转换模式从ANx回绕到AN0
1≤x≤15仅在ATDCTL5的MULT=1时有效单片机原理与应用ATDRegisters1/12ATDControlATDRegisters2/12SRES[1:0]-A/DResolutionSelectATDControlRegister1(ATDCTL1)ETRIGSEL-ExternalTriggerSourceSelect
S12XS此位无效ETRIGCH[3:0]-ExternalTriggerChannelSelectSMP_DIS-DischargeBeforeSamplingBit0=Nodischarge1=discharge注:写ATDCTL1会终止当前转换序列单片机原理与应用ATDRegisters2/12SRES[1:0]-ATDRegisters3/12ATDControlRegister2(ATDCTL2)AFFC-ATDFastFlagClearAll0=向CCF[n]标志位写1则清零1=读ATD转换结果寄存器则CCF[n]标志位清零(当比较功能被禁止)写ATD转换结果寄存器则CCF[n]标志位清零(当比较功能被使能)ICLKSTP-InternalClockinStopModeBit0=停止模式下,停止当前转换,退出停止模式后ATD转换自动重新开始1=停止模式下,可继续使用内部时钟进行ATD转换ETRIGLE-ExternalTriggerLevel/EdgeControlETRIGP-ExternalTriggerPolarityETRIGE-ExternalTriggerModeEnable0=禁止外部触发信号1=使能外部触发信号ASCIE-ATDSequenceCompleteInterruptEnable0=禁止ATD转换序列结束中断1=使能ATD转换序列结束中断ACMPIE-InternalClockinStopModeBit0=禁止比较中断1=使能比较中断注:写ATDCTL2会终止当前转换序列单片机原理与应用ATDRegisters3/12ATDControlATDRegisters4/12ATDControlRegister3(ATDCTL3)DJM-ResultRegisterDataJustification0=Leftjustifieddataintheresultregisters1=RightjustifieddataintheresultregistersS8C,S4C,S2C,S1C-ConversionSequenceLengthFIFO-ResultRegisterFIFOMode0=Conversionresultsareplacedinthecorrespondingresultregisteruptotheselectedsequencelength.1=Conversionresultsareplacedinconsecutiveresultregisters(wraparoundatend).FRZ[1:0]-BackgroundDebugFreezeEnable注:写ATDCTL3会终止当前转换序列单片机原理与应用ATDRegisters4/12ATDControlATDRegisters5/12设置预分频因子时,0.25MHz≤AEDCLK≤8.3MHzATDControlRegister4(ATDCTL4)SMP[2:0]-SampleTimeSelectPRS[4:0]-ATDClockPrescalerDivideBy25-BitModulusCounterPrescalerPRS0-PRS4SYSTEMCLOCKA/DClock采样时间长,采样点电平更准确的逼近外部信号电平注:写ATDCTL4会终止当前转换序列单片机原理与应用ATDRegisters5/12设置预分频因子时,0.2ATD启动:写ATDCTL5会终止当前转换序列,并开始新一次转换此后,若外部触发信号每次满足触发条件都会开始一次ATD转换ATDRegisters6/12ATDControlRegister5(ATDCTL5)SC-SpecialChannelConversion0=Specialchannelconversionsdisabled1=SpecialchannelconversionsenabledSCAN-ContinuousConversionSequenceMode0=Singleconversionsequence1=Continuousconversionsequences(scanmode)MULT-Multi-ChannelSample0=Sampleonlyonechannel1=SampleacrossseveralchannelsCD,CC,CB,CA-AnalogInputChannelSelectCode单片机原理与应用ATD启动:ATDRegisters6/12ATDCo单通道,单次转换多通道,单次转换单通道,序列转换模式多通道,序列转换模式特殊通道测试模式ADC工作方式单片机原理与应用单通道,单次转换ADC工作方式单片机原理与应用ATDRegisters7/12ATDStatusRegister0(ATDSTAT0)SCF-SequenceCompleteFlag0=Conversionsequencenotcompleted1=ConversionsequencehascompletedETORF-ExternalTriggerOverrunFlag0=NoExternaltriggeroverrunerrorhasoccurred1=ExternaltriggeroverrunerrorhasoccurredFIFOR-ResultRegisterOverRunFlag0=Nooverrunhasoccurred1=Overrunconditionexists(resultregisterhasbeenwrittenwhileassociatedCCFxflagwasstillset)CC[3:0]-ConversionCounter当前转换结果将写入的结果寄存器编号
例如:CC[3:0]=0110,转换结果写入第6个结果寄存器先入先出模式下,不被初始化,当计数到最大值回最小值非先入先出模式下,转换开始和结束时被初始化为0两种模式下终止ATD转换或开始新ATD转换均被清零单片机原理与应用ATDRegisters7/12ATDStatusRATDRegisters8/12ATDCompareEnableRegister(ATDCMPE)CMPE[15:0]-CompareEnableforConversionNumbern(n=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)ofaSequence0=Noautomaticcompare1=Automaticcompareofresultsforconversionnofasequenceisenabled对一个序列中第n次ATD转换结果进行比较,除CMPE[n]=1,还要完成如下设置:将比较阈值写入ATDDRn写ATDCPMHT的CMPHT[n]位选择比较方法注:写ATDCMPE会终止当前转换序列单片机原理与应用ATDRegisters8/12ATDCompareATDRegisters9/12ATDStatusRegister2(ATDSTAT2)CCF[15:0]-ConversionCompleteFlagn(n=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)0=Conversionnumbernnotcompletedorsuccessfullycompared1=If(CMPE[n]=0):Conversionnumbernhascompleted.ResultisreadyinATDDRn.If(CMPE[n]=1):CompareforconversionresultnumbernwithcomparevalueinATDDRn,usingcompareoperatorCMPGT[n]istrue.(NoresultavailableinATDDRn)出现以下任一情况,CCF[n]被清零:写ATDCTL5当AFFC=0,向CCF[n]写1当AFFC=1,且CMPE[n]=1,写ATDDRn单片机原理与应用ATDRegisters9/12ATDStatusRATDRegisters10/12ATDInputEnableRegister(ATDDIEN)IEN[15:0]-ATDDigitalInputEnableonchannelx(x=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)0=DisabledigitalinputbuffertoANxpin1=EnabledigitalinputbufferonANxpin通用I/O口AD口与ATD模块的模拟输入引脚复用将某个模拟输入引脚作为通用输入引脚使用时,必须将对应IEN位置位单片机原理与应用ATDRegisters10/12ATDInputEATDRegisters11/12ATDCompareHigherThanRegister(ATDCMPHT)CMPHT[15:0]-CompareOperationHigherThanEnableforconversionnumbern(n=15,14,…,2,1,0)ofaSequence0=IfresultofconversionnislowerorsamethancomparevalueinATDDRn,thisisflaggedinATDSTAT21=IfresultofconversionnishigherthancomparevalueinATDDRn,thisisflaggedinATDSTAT2注:写ATDCMPHT会终止当前转换序列单片机原理与应用ATDRegisters11/12ATDCompareATDRegisters12/12-dataformatATDConversionResultRegisters(ATDDRn)ATDDR0~ATDDR15关闭比较操作时,ATD转换结果写入ATDDRn要写入的ATDDRn的编号由ATDSTAT0的CC3~CC0转换计数给出转换结果在ATDDRn中的放置位置与转换精度和结果对齐方式有关使能比较功能时,ATD转换结果和比较阈值都总是12位,与SRES[1:0](ATDCTL1)无关DJM=0左对齐DJM=1右对齐转换结果不放入结果寄存器,比较完成后丢失单片机原理与应用ATDRegisters12/12-dataform本节提要一、A/D转换基础知识二、ATD模块简介三、ATD模块寄存器四、ATD模块编程范例单片机原理与应用本节提要一、A/D转换基础知识单片机原理与应用ATD模块编程范例ATD模块编程方法ATD模块编程范例ATD初始化:先写除ATD0CTL5外的控制寄存器,再写ATD0CTL5完成初始化,并启动转换;ATD结果读取:通过查询ATD0STAT0中的SCF位或采用中断方式,确定转换完成,读取相关结果寄存器取得ATD转换结果。任务:分别对特殊通道VRH、VRL和(VRH+VRL)/2进行ATD转换单片机原理与应用ATD模块编程范例ATD模块编程方法ATD模块编程范例ATDATD模块编程范例(续1)//********************************//*S12X128ATD模块范例程序*//********************************#include<hidef.h>/*commondefinesandmacros*/#include<mc9s12XS128.h>//SCI相关函数//SCI初始化函数voidSCI_init(void);voidSCISendChar(charc1);voidSCISendString(char*pc2);voidSCISendHex(charc1);unsignedchardtoa(charc1);//ATD相关函数//ATD初始化函数voidATD_init(void);单片机原理与应用ATD模块编程范例(续1)//***************ATD模块编程范例(续2)/*******主程序********/voidmain(void){SCI_init();ATD_init();ATD0CTL5=0x45;//单次转换,单通道,选择特殊通道VRLwhile(!(ATD0STAT0&0x80));//查询ATD是否完成SCISendString("VRL=");SCISendHex(ATD0DR0H);SCISendString("\r\n");ATD0CTL5=0x44;//单次转换,单通道,选择特殊通道VRHwhile(!(ATD0STAT0&0x80));//查询ATD是否完成SCISendString("VRH=");SCISendHex(ATD0DR0H);SCISendString("\r\n");ATD0CTL5=0x46;//单次转换,单通道,选择特殊通道(VRL+VRH)/2while(!(ATD0STAT0&0x80));//查询ATD是否完成SCISendString("(VRL+VRH)/2=");SCISendHex(ATD0DR0H);SCISendString("\r\n");for(;;){}}//ENDOFMIAN单片机原理与应用ATD模块编程范例(续2)/*******主程序******ATD模块编程范例(续3)/****SCI相关函数****/voidSCI_init(void){SCI0BDH=0;SCI0BDL=52;SCI0CR2=0x0C;}voidSCISendChar(charc1){while(SCI0SR1_TC==0);SCI0DRL=c1;}
voidSCISendString(char*pc1){while((*pc1)!=0){SCISendChar(*pc1);pc1++;}}voidSCISendHex(charc1){SCISendChar(dtoa((c1&0xF0)>>4));SCISendChar(dtoa((c1&0x0F)));}unsignedchardtoa(charc1){return(c1>=10)?(c1+0x37):(c1+0x30);}单片机原理与应用ATD模块编程范例(续3)/****SCI相关函数****/ATD模块编程范例(续4)/****ATD相关函数****///ATD初始化函数voidATD_init(void){ATD0CTL1=0x0F;//选择8位转换精度ATD0CTL2=0x40;//打开CCF快速清零,关闭外部触发输入,关闭中断ATD0CTL3=0x08;//数据左对齐,non-fifo,转换序列长度为1ATD0CTL4=0xE3;//采样时间为24个ATD时钟周期,ATDClk=8MB/8=1MHz}单片机原理与应用ATD模块编程范例(续4)/****ATD相关函数****/10.3A/D转换模块单片机原理与应用10.3A/D转换模块单片机原理与应用本节提要一、A/D转换基础知识二、ATD模块简介三、ATD模块寄存器四、ATD模块编程范例单片机原理与应用本节提要一、A/D转换基础知识单片机原理与应用本节提要一、A/D转换基础知识二、ATD模块简介三、ATD模块寄存器四、ATD模块编程范例单片机原理与应用本节提要一、A/D转换基础知识单片机原理与应用ADC概述微控制器处理的是离散量(数字量),而现实中往往是连续量(模拟量)物理量如:温度,压力,湿度以及速度等等传感器将物理量转换为电信号
(电压,电流)需要模拟-数字转换器将电信号转换为数字量以供微控制器处理单片机原理与应用ADC概述微控制器处理的是离散量(数字量),而现实中往往基本概念传感器
控制器执行器单片机原理与应用基本概念传感器控制器执行器单片机原理与应用ADC工作原理将输入电压与若干等间距的参考电压进行比较因此需要比较器Uin>UrefUout=V+‘1’Uin<UrefUout=0V‘0’+-UinUrefUout1位ADC单片机原理与应用ADC工作原理将输入电压与若干等间距的参考电压进行比较+-ADC工作原理3个比较器可将电压分成4级(以2位来表示)Uref1Uref2Uref3Rank0Rank1Rank2Rank3Uref1Uref2Uref3Uout1Uout2Uout3Quiz1:Forvoltageinrank2,Uout1=?Uout2=?Uout3=?UmaxUmin+-+-+-Uin单片机原理与应用ADC工作原理3个比较器可将电压分成4级(以2位来ADC工作原理2位ADC+-+-+-UinUrefRRRRD0D1编码器8位ADC,需要多少个比较器?单片机原理与应用ADC工作原理2位ADC+-+-+-UinUrefRRRRDADC工作原理FlashConverterADC优点:速度极快缺点:非常复杂逐次逼近式A/D转换器+-Uin逐次逼近寄存器D/A转换器结果Uref单片机原理与应用ADC工作原理FlashConverterADC+-UiADC工作原理逐次逼近式转换器转换过程(4位)SA-ADC完成一次转换至少需要n个时钟周期单片机原理与应用ADC工作原理逐次逼近式转换器转换过程(4位)SA-AADC工作原理必须进行采样保持以避免输入电压在转换期间发生变化+-Uin单片机原理与应用ADC工作原理必须进行采样保持以避免输入电压在转换期间发生变ADC工作原理逐次逼近式转换器(SA-ADC)非常快比较复杂SA-ADC在单片机中较为常见单片机中常见典型为8-12位具有多个多路复用的模拟通道SA-ADC通道选择寄存器单片机原理与应用ADC工作原理逐次逼近式转换器(SA-ADC)SA-ADADC参数转换位数(Bits)分辨率=2-n(8bits=0.39%)转换速度(Speed)由工作时钟频率和转换位数确定转换范围(Range)0~5V,0~10V,-5V~+5V.Etc..转换通道数(Channels)Distinguishthechannelandconverter单片机原理与应用ADC参数转换位数(Bits)单片机原理与应用本节提要一、A/D转换基础知识二、ATD模块简介三、ATD模块寄存器四、ATD模块编程范例单片机原理与应用本节提要一、A/D转换基础知识单片机原理与应用8/10/12位可选转换速度较高,10位精度,单次转换时间为7usec
采样时间可编程设置多种转换模式:数据对齐方式、单次/连续转换、转换结果比较外触发控制转换结束可产生中断可用于8个模拟输入通道的模拟输入多路转换器.模拟/数字输入引脚复用1~8转换序列长度.多通道扫描S12单片机ADC特性单片机原理与应用8/10/12位可选S12单片机ADC特性单片机原理与应用2,4,8,16ClocksAlways2Clocks转换时间计算举例:(假设A/D时钟为2MHz,10位精度
)转换时间=InitialSampleTime+ProgrammedSampleTime+ResolutionPeriod=2+2+10=14A/DClocks=7uSecS12单片机ADC转换时间单片机原理与应用2,4,8,16Always转换时间计算举例:(假S12单片机ADC模块框图ADC引脚可用于数字输入ADC结果寄存器模拟输入通道参考电压单片机原理与应用S12单片机ADC模块框图ADC引脚可用于数字输入ADC本节提要一、A/D转换基础知识二、ATD模块简介三、ATD模块寄存器四、ATD模块编程范例单片机原理与应用本节提要一、A/D转换基础知识单片机原理与应用ATD模块寄存器共27个寄存器控制寄存器(ATDCTL0~ATDCTL5,6个)状态寄存器(ATDSTAT0~ATDSTAT1,2个)比较使能寄存器(ATDCMPE,1个)比较方式寄存器(ATDCMPHT,1个,)转换输入使能寄存器(ATDDIEN,1个)转换结果寄存器(ATDDR0~ATDDR15,16个)其中:8位寄存器:ATDCTL0~ATDCTL5,ATDSTAT016位寄存器:其余单片机原理与应用ATD模块寄存器共27个寄存器单片机原理与应用ATDRegisters1/12ATDControlRegister0(ATDCTL0)WRAP[3-0]-WrapAroundChannelSelect0=ReservedX=多通道转换模式从ANx回绕到AN0
1≤x≤15仅在ATDCTL5的MULT=1时有效单片机原理与应用ATDRegisters1/12ATDControlATDRegisters2/12SRES[1:0]-A/DResolutionSelectATDControlRegister1(ATDCTL1)ETRIGSEL-ExternalTriggerSourceSelect
S12XS此位无效ETRIGCH[3:0]-ExternalTriggerChannelSelectSMP_DIS-DischargeBeforeSamplingBit0=Nodischarge1=discharge注:写ATDCTL1会终止当前转换序列单片机原理与应用ATDRegisters2/12SRES[1:0]-ATDRegisters3/12ATDControlRegister2(ATDCTL2)AFFC-ATDFastFlagClearAll0=向CCF[n]标志位写1则清零1=读ATD转换结果寄存器则CCF[n]标志位清零(当比较功能被禁止)写ATD转换结果寄存器则CCF[n]标志位清零(当比较功能被使能)ICLKSTP-InternalClockinStopModeBit0=停止模式下,停止当前转换,退出停止模式后ATD转换自动重新开始1=停止模式下,可继续使用内部时钟进行ATD转换ETRIGLE-ExternalTriggerLevel/EdgeControlETRIGP-ExternalTriggerPolarityETRIGE-ExternalTriggerModeEnable0=禁止外部触发信号1=使能外部触发信号ASCIE-ATDSequenceCompleteInterruptEnable0=禁止ATD转换序列结束中断1=使能ATD转换序列结束中断ACMPIE-InternalClockinStopModeBit0=禁止比较中断1=使能比较中断注:写ATDCTL2会终止当前转换序列单片机原理与应用ATDRegisters3/12ATDControlATDRegisters4/12ATDControlRegister3(ATDCTL3)DJM-ResultRegisterDataJustification0=Leftjustifieddataintheresultregisters1=RightjustifieddataintheresultregistersS8C,S4C,S2C,S1C-ConversionSequenceLengthFIFO-ResultRegisterFIFOMode0=Conversionresultsareplacedinthecorrespondingresultregisteruptotheselectedsequencelength.1=Conversionresultsareplacedinconsecutiveresultregisters(wraparoundatend).FRZ[1:0]-BackgroundDebugFreezeEnable注:写ATDCTL3会终止当前转换序列单片机原理与应用ATDRegisters4/12ATDControlATDRegisters5/12设置预分频因子时,0.25MHz≤AEDCLK≤8.3MHzATDControlRegister4(ATDCTL4)SMP[2:0]-SampleTimeSelectPRS[4:0]-ATDClockPrescalerDivideBy25-BitModulusCounterPrescalerPRS0-PRS4SYSTEMCLOCKA/DClock采样时间长,采样点电平更准确的逼近外部信号电平注:写ATDCTL4会终止当前转换序列单片机原理与应用ATDRegisters5/12设置预分频因子时,0.2ATD启动:写ATDCTL5会终止当前转换序列,并开始新一次转换此后,若外部触发信号每次满足触发条件都会开始一次ATD转换ATDRegisters6/12ATDControlRegister5(ATDCTL5)SC-SpecialChannelConversion0=Specialchannelconversionsdisabled1=SpecialchannelconversionsenabledSCAN-ContinuousConversionSequenceMode0=Singleconversionsequence1=Continuousconversionsequences(scanmode)MULT-Multi-ChannelSample0=Sampleonlyonechannel1=SampleacrossseveralchannelsCD,CC,CB,CA-AnalogInputChannelSelectCode单片机原理与应用ATD启动:ATDRegisters6/12ATDCo单通道,单次转换多通道,单次转换单通道,序列转换模式多通道,序列转换模式特殊通道测试模式ADC工作方式单片机原理与应用单通道,单次转换ADC工作方式单片机原理与应用ATDRegisters7/12ATDStatusRegister0(ATDSTAT0)SCF-SequenceCompleteFlag0=Conversionsequencenotcompleted1=ConversionsequencehascompletedETORF-ExternalTriggerOverrunFlag0=NoExternaltriggeroverrunerrorhasoccurred1=ExternaltriggeroverrunerrorhasoccurredFIFOR-ResultRegisterOverRunFlag0=Nooverrunhasoccurred1=Overrunconditionexists(resultregisterhasbeenwrittenwhileassociatedCCFxflagwasstillset)CC[3:0]-ConversionCounter当前转换结果将写入的结果寄存器编号
例如:CC[3:0]=0110,转换结果写入第6个结果寄存器先入先出模式下,不被初始化,当计数到最大值回最小值非先入先出模式下,转换开始和结束时被初始化为0两种模式下终止ATD转换或开始新ATD转换均被清零单片机原理与应用ATDRegisters7/12ATDStatusRATDRegisters8/12ATDCompareEnableRegister(ATDCMPE)CMPE[15:0]-CompareEnableforConversionNumbern(n=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)ofaSequence0=Noautomaticcompare1=Automaticcompareofresultsforconversionnofasequenceisenabled对一个序列中第n次ATD转换结果进行比较,除CMPE[n]=1,还要完成如下设置:将比较阈值写入ATDDRn写ATDCPMHT的CMPHT[n]位选择比较方法注:写ATDCMPE会终止当前转换序列单片机原理与应用ATDRegisters8/12ATDCompareATDRegisters9/12ATDStatusRegister2(ATDSTAT2)CCF[15:0]-ConversionCompleteFlagn(n=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)0=Conversionnumbernnotcompletedorsuccessfullycompared1=If(CMPE[n]=0):Conversionnumbernhascompleted.ResultisreadyinATDDRn.If(CMPE[n]=1):CompareforconversionresultnumbernwithcomparevalueinATDDRn,usingcompareoperatorCMPGT[n]istrue.(NoresultavailableinATDDRn)出现以下任一情况,CCF[n]被清零:写ATDCTL5当AFFC=0,向CCF[n]写1当AFFC=1,且CMPE[n]=1,写ATDDRn单片机原理与应用ATDRegisters9/12ATDStatusRATDRegisters10/12ATDInputEnableRegister(ATDDIEN)IEN[15:0]-ATDDigitalInputEnableonchannelx(x=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)0=DisabledigitalinputbuffertoANxpin1=EnabledigitalinputbufferonANxpin通用I/O口AD口与ATD模块的模拟输入引脚复用将某个模拟输入引脚作为通用输入引脚使用时,必须将对应IEN位置位单片机原理与应用ATDRegisters10/12ATDInputEATDRegisters11/12ATDCompareHigherThanRegister(ATDCMPHT)CMPHT[15:0]-CompareOperationHigherThanEnableforconversionnumbern(n=15,14,…,2,1,0)ofaSequence0=IfresultofconversionnislowerorsamethancomparevalueinATDDRn,thisisflaggedinATDSTAT21=IfresultofconversionnishigherthancomparevalueinATDDRn,thisisflaggedinATDSTAT2注:写ATDCMPHT会终止当前转换序列单片机原理与应用ATDRegisters11/12ATDCompareATDRegisters12/12-dataformatATDConversionResultRegisters(ATDDRn)ATDDR0~ATDDR15关闭比较操作时,ATD转换结果写入ATDDRn要写入的ATDDRn的编号由ATDSTAT0的CC3~CC0转换计数给出转换结果在ATDDRn中的放置位置与转换精度和结果对齐方式有关使能比较功能时,ATD转换结果和比较阈值都总是12位,与SRES[1:0](ATDCTL1)无关DJM=0左对齐DJM=1右对齐转换结果不放入结果寄存器,比较完成后丢失单片机原理与应用ATDRegisters12/12-dataform本节提要一、A/D转换基础知识二、ATD模块简介三、ATD模块寄存器四、ATD模块编程范例单片机原理与应用本节提要一、A/D转
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客服部工作人员奖惩制度
- 后勤人员奖惩制度模板
- 安全指标奖惩制度范本
- 仓库人员管理奖惩制度
- 事业单位面试奖惩制度
- 厨师奖惩制度实施细则
- 学校作文发奖惩制度
- 小公司业绩任务奖惩制度
- 学校安全排查奖惩制度
- 展厅人员奖惩制度
- 客运公司安全生产培训和教育学习制度
- 攻读博士学位期间材料科学研究计划参考范文
- 2023陆上石油天然气停产井安全风险防控指南
- DB32∕T2621-2014 特大型桥梁机电工程质量检验评定规范
- 三氧化硫泄露现场预案(6篇)
- 西方社会学理论教案
- 考点24 人与环境-五年(2020-2024年)高考生物学真题专项分类汇编
- 概率论与数理统计章节练习题及答案
- 医疗设备的保养与维护
- 2024届中职对口(职教)高考语文冲刺复习题(应用文写作)(含解析)
- 第二单元 理想之光 课件-高二上学期音乐人音版(2019)必修2 歌唱
评论
0/150
提交评论