您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第八章AD转换和DA转换
1嵌入式系统设计原理与应用DesignandapplicationofembeddedsystembasedonMCU第8章A/D转换孙文义wenyisun@126.com东北大学秦皇岛分校自动化工程系2014年3月2提纲A/D和D/A转换的基本问题DG128内部A/D转换模块DG128内部A/D转换编程实例高位AD扩展接口扩展实现DA转换常用传感器3A/D转换1.采样精度(分辨率)2.采样速率(转换速率)3.滤波4.物理量回归数字控制系统框图参量/电压转换A/D转换器数字电子计算机D/A转换器被控制对象被测参量数字量模拟量数字量模拟量4A/D转换器积分型A/D转换器(TLC7135)逐次逼近型A/D转换器(TLC0831)并行比较型/串并行比较型(如TLC5510)Σ-Δ调制型(如AD7705)电容阵列逐次比较型压频变换型(如AD650)5常用传感器热敏电阻温度传感器XΩVREFA/D采样点热敏电阻6常用传感器灰度传感器7常用传感器超声波传感器8常用传感器红外线传感器红外发射管红外接收管引脚9常用传感器压力传感器10常用传感器温度传感器11电阻型传感器采集电路由三部分组成:传感器接口、恒流源电路和放大电路。12A/D寄存器名称描述复位值ATDCTL0控制寄存器00x0FATDCTL1控制寄存器10x2FATDCTL2控制寄存器20x00ATDCTL3控制寄存器30x20ATDCTL4控制寄存器40x05ATDCTL5控制寄存器50x0013名称描述复位值ATDSTAT0A/D状态寄存器00x00ATDSTAT2A/D状态寄存器20x0000ATDCMPEA/D比较使能寄存器10x0000ATDDIENA/D输入使能寄存器0x0000ATDCMPHTA/D比较方式寄存器0x0000ATDDRnA/D转换结果寄存器0x000014数据位D7D6D5D4D3D2D1D0读写预留0----0----0----WRAP3WRAP2WRAP1WRAP0复位00001111ATDCTL0数据位D7D6D5D4D3D2D1D0读写ETRTGSELSRES1SRES0SMP_DISETRIGCH3ETRIGCH2ETRIGCH1ETRIGCH0复位00101111ATDCTL115数据位D7D6D5D4D3D2D1D0读写0----AFFCICLKSTPETRIGLEETRIGPETRIGEASCIEACMPIE复位00000000ATDCTL2数据位D7D6D5D4D3D2D1D0读写DIMS8CS4CS2CS1CFIFOFRZ1FRZ0复位00100000ATDCTL316数据位D7D6D5D4D3D2D1D0读写SMP2SMP1SMP0PRS4PRS3PRS2PRS1PRS0复位00000000ATDCTL4数据位D7D6D5D4D3D2D1D0读写0----SCSCANMULTCDCCCBCA复位00000000ATDCTL517数据位D7D6D5D4D3D2D1D0读写SCF0----ETORFFIFORCC3----CC2----CC1----CC0----复位00000000ATDSTAT0数据位D15D14D13...D1D0读CCF[15:0]复位000...00ATDSTAT218ATDCMPE数据位D15D14D13...D1D0读写CMPE[15:0]复位000...00ATDDIEN数据位D15D14D13...D1D0读写IEN[15:0]复位000...0019ATDCMPHT数据位D15D14D13...D1D0读写CMPH[15:0]复位000...00ATDDRn数据位D15D14D13..D2D1D0读写复位000..00020A/D模块基本编程方法1.A/D转换初始化在程序初始化时应对A/D转换的5个控制寄存器写入控制字节,决定序列长度,设置分频系数和转换精度等。2.启动A/D转换对于A/D转换状态向控制寄存器写入控制字节,选取要转换的通道、结果寄存器的调整方式、设置是连续转换还是一次转换。3.获得A/D转换结果若是中断方式,在A/D中断程序中取得,若是查询方式,通过A/D转换状态寄存器0(ATDSTAT0)的第7位(SCF位)取得,当SCF=1时可从A/D数据寄存器中取的数据。21/****************************************//*初始化AD模块*//****************************************/voidINIT_AD(void){ATD0CTL2=0x40;//启动A/D模块,快速清零,禁止中断ATD0CTL1_SRES=0;//选用8位模数转换ATD0CTL3=0x88;//每次只转换一个通道ATD0CTL4=0x01;//AD模块时钟}22/*起动AD转换*/unsignedcharAD_capture(unsignedchars){unsignedcharAD_data;switch(s){case1:ATD0CTL5=0x01;//转换AD01while(!ATD0STAT2_CCF0);AD_data=ATD0DR0L;break;case2:ATD0CTL5=0x00;//转换AD00while(!ATD0STAT2_CCF0);AD_data=ATD0DR0L;break;}return(AD_data);}
本文标题:第八章AD转换和DA转换
链接地址:https://www.777doc.com/doc-2085956 .html