收藏 分享(赏)

单片机ADC模块.ppt

上传人:HR专家 文档编号:6182834 上传时间:2019-04-01 格式:PPT 页数:38 大小:876KB
下载 相关 举报
单片机ADC模块.ppt_第1页
第1页 / 共38页
单片机ADC模块.ppt_第2页
第2页 / 共38页
单片机ADC模块.ppt_第3页
第3页 / 共38页
单片机ADC模块.ppt_第4页
第4页 / 共38页
单片机ADC模块.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、单片机原理与应用,10.3 A/D转换模块,2,单片机原理与应用,本节提要,一、A/D转换基础知识 二、ATD模块简介 三、ATD模块寄存器 四、ATD模块编程范例,3,单片机原理与应用,本节提要,一、A/D转换基础知识 二、ATD模块简介 三、ATD模块寄存器 四、ATD模块编程范例,4,单片机原理与应用,ADC概述,微控制器处理的是离散量 (数字量) ,而现实中往往是连续量 (模拟量) 物理量如:温度, 压力,湿度以及速度等等 传感器 将物理量转换为电信号 (电压, 电流) 需要模拟-数字转换器将电信号转换为数字量以供微控制器处理,5,单片机原理与应用,基本概念,传感器,控制器,执行器,6

2、,单片机原理与应用,ADC 工作原理,将输入电压与若干等间距的参考电压进行比较 因此需要比较器 Uin Uref Uout=V+ 1 Uin Uref Uout=0V 0,Uin,Uref,Uout,1位ADC,7,单片机原理与应用,ADC 工作原理,3 个比较器可将电压分成4 级 (以 2位来表示),Uref1,Uref2,Uref3,Rank0,Rank1,Rank2,Rank3,Uref1,Uref2,Uref3,Uout1,Uout2,Uout3,Quiz1: For voltage in rank2, Uout1 = ? Uout2 = ? Uout3 = ?,Umax,Umin,U

3、in,8,单片机原理与应用,ADC工作原理,2位ADC,Uin,Uref,R,R,R,R,D0,D1,编码器,8位 ADC, 需要多少个比较器?,9,单片机原理与应用,ADC工作原理,Flash Converter ADC 优点: 速度极快 缺点: 非常复杂 逐次逼近式A/D转换器,10,单片机原理与应用,ADC工作原理,逐次逼近式转换器转换过程 ( 4位 ),SA-ADC 完成一次转换至少需要 n 个时钟周期,11,单片机原理与应用,ADC工作原理,必须进行采样保持以避免输入电压在转换期间发生变化,12,单片机原理与应用,ADC工作原理,逐次逼近式转换器( SA-ADC ) 非常快 比较复杂

4、 SA-ADC在单片机中较为常见 单片机中常见 典型为8-12位 具有多个多路复用的模拟通道,13,单片机原理与应用,ADC 参数,转换位数(Bits) 分辨率 = 2-n (8bits = 0.39%) 转换速度(Speed) 由工作时钟频率和转换位数确定 转换范围(Range) 05V, 010V, -5V+5V. Etc 转换通道数(Channels) Distinguish the channel and converter,14,单片机原理与应用,本节提要,一、A/D转换基础知识 二、ATD模块简介 三、ATD模块寄存器 四、ATD模块编程范例,15,单片机原理与应用,8/10/12

5、位可选转换速度较高,10位精度,单次转换时间为7usec 采样时间可编程设置多种转换模式:数据对齐方式、单次/连续转换、转换结果比较外触发控制转换结束可产生中断可用于8个模拟输入通道的模拟输入多路转换器.模拟/数字输入引脚复用 18 转换序列长度.多通道扫描,S12单片机ADC特性,16,单片机原理与应用,转换时间计算举例: (假设A/D 时钟为2MHz,10位精度 )转换时间 = Initial Sample Time + Programmed Sample Time + Resolution Period= 2 + 2 + 10 = 14 A/D Clocks= 7uSec,S12单片机A

6、DC转换时间,17,单片机原理与应用,S12单片机ADC模块框图,ADC 引脚可用于数字输入,ADC 结果寄存器,模拟 输入 通道,参考电压,18,单片机原理与应用,本节提要,一、A/D转换基础知识 二、ATD模块简介 三、ATD模块寄存器 四、ATD模块编程范例,19,单片机原理与应用,ATD 模块寄存器,共27个寄存器 控制寄存器(ATDCTL0ATDCTL5,6个) 状态寄存器(ATDSTAT0ATDSTAT1,2个 ) 比较使能寄存器(ATDCMPE, 1个) 比较方式寄存器(ATDCMPHT , 1个,) 转换输入使能寄存器(ATDDIEN , 1个) 转换结果寄存器(ATDDR0A

7、TDDR15,16个)其中:8位寄存器: ATDCTL0ATDCTL5, ATDSTAT016位寄存器:其余,20,单片机原理与应用,ATD Registers 1/12,ATD Control Register 0 (ATDCTL0),WRAP3-0 - Wrap Around Channel Select 0 = Reserved X = 多通道转换模式从ANx回绕到AN0 1x 15仅在ATDCTL5的MULT=1时有效,21,单片机原理与应用,ATD Registers 2/12,SRES1:0 - A/D Resolution Select,ATD Control Register

8、1 (ATDCTL1),ETRIGSEL - External Trigger Source SelectS12XS此位无效,ETRIGCH3:0 - External Trigger Channel Select,SMP_DIS - Discharge Before Sampling Bit0=No discharge 1 = discharge,注:写ATDCTL1会终止当前转换序列,22,单片机原理与应用,ATD Registers 3/12,ATD Control Register 2 (ATDCTL2),AFFC - ATD Fast Flag Clear All 0 = 向CCFn

9、 标志位写1则清零 1 =读ATD转换结果寄存器则CCFn 标志位清零(当比较功能被禁止)写ATD转换结果寄存器则CCFn 标志位清零(当比较功能被使能),ICLKSTP - Internal Clock in Stop Mode Bit 0 = 停止模式下,停止当前转换,退出停止模式后ATD转换自动重新开始 1 = 停止模式下,可继续使用内部时钟进行ATD转换,ETRIGLE - External Trigger Level/Edge Control ETRIGP - External Trigger Polarity,ETRIGE - External Trigger Mode Enabl

10、e 0 = 禁止外部触发信号 1 = 使能外部触发信号,ASCIE- ATD Sequence Complete Interrupt Enable 0 = 禁止ATD转换序列结束中断 1 = 使能ATD转换序列结束中断,ACMPIE - Internal Clock in Stop Mode Bit 0 = 禁止比较中断 1 = 使能比较中断,注:写ATDCTL2会终止当前转换序列,23,单片机原理与应用,ATD Registers 4/12,ATD Control Register 3 (ATDCTL3),DJM - Result Register Data Justification 0=

11、Left justified data in the result registers 1=Right justified data in the result registers,S8C, S4C,S2C, S1C - Conversion Sequence Length,FIFO - Result Register FIFO Mode 0=Conversion results are placed in the corresponding resultregister up to the selected sequence length. 1=Conversion results are

12、placed in consecutive result registers(wrap around at end).,FRZ1:0 - Background Debug Freeze Enable,注:写ATDCTL3会终止当前转换序列,24,单片机原理与应用,ATD Registers 5/12,设置预分频因子时,0.25MHzAEDCLK 8.3MHz,ATD Control Register 4 (ATDCTL4),SMP2:0 - Sample Time Select,PRS4:0 - ATD Clock Prescaler,采样时间长,采样点电平更准确的逼近外部信号电平,注:写AT

13、DCTL4会终止当前转换序列,25,单片机原理与应用,ATD启动: 写ATDCTL5会终止当前转换序列,并开始新一次转换 此后,若外部触发信号每次满足触发条件都会开始一次ATD转换,ATD Registers 6/12,ATD Control Register 5 (ATDCTL5),SC - Special Channel Conversion 0=Special channel conversions disabled 1=Special channel conversions enabled,SCAN - Continuous Conversion Sequence Mode 0=Sin

14、gle conversion sequence 1=Continuous conversion sequences (scan mode),MULT - Multi-Channel Sample 0=Sample only one channel 1=Sample across several channels,CD,CC,CB,CA - Analog Input Channel Select Code,26,单片机原理与应用,单通道,单次转换 多通道,单次转换 单通道,序列转换模式 多通道,序列转换模式 特殊通道测试模式,ADC 工作方式,27,单片机原理与应用,ATD Registers

15、7/12,ATD Status Register 0 (ATDSTAT0),SCF - Sequence Complete Flag 0=Conversion sequence not completed 1=Conversion sequence has completed,ETORF - External Trigger Overrun Flag 0=No External trigger over run error has occurred 1=External trigger over run error has occurred,FIFOR- Result Register Ove

16、r Run Flag 0=No over run has occurred 1=Overrun condition exists (result register has been written while associated CCFx flag was still set),CC3:0 - Conversion Counter当前转换结果将写入的结果寄存器编号例如: CC3:0=0110, 转换结果写入第6个结果寄存器先入先出模式下,不被初始化,当计数到最大值回最小值 非先入先出模式下,转换开始和结束时被初始化为0两种模式下终止ATD转换或开始新ATD转换均被清零,28,单片机原理与应用

17、,ATD Registers 8/12,ATD Compare Enable Register (ATDCMPE),CMPE15:0 - Compare Enable for Conversion Number n (n= 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) of a Sequence 0=No automatic compare 1= Automatic compare of results for conversion n of a sequence is enabled,对一个序列中第n次ATD转换结果进行比较,除C

18、MPEn=1,还要完成如下设置: 将比较阈值写入ATDDRn 写ATDCPMHT的CMPHTn位选择比较方法,注:写ATDCMPE会终止当前转换序列,29,单片机原理与应用,ATD Registers 9/12,ATD Status Register 2 (ATDSTAT2),CCF15:0 - Conversion Complete Flag n (n= 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) 0=Conversion number n not completed or successfully compared 1=If

19、(CMPEn=0): Conversion number n has completed. Result is ready in ATDDRn.If (CMPEn=1): Compare for conversion result number n with compare value in ATDDRn, using compare operator CMPGTnis true. (No result available in ATDDRn),出现以下任一情况,CCFn被清零: 写ATDCTL5 当AFFC=0,向CCFn写1 当AFFC=1,且CMPEn=1,写ATDDRn,30,单片机原

20、理与应用,ATD Registers 10/12,ATD Input Enable Register (ATDDIEN),IEN15:0 - ATD Digital Input Enable on channel x (x= 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) 0=Disable digital input buffer to ANx pin 1=Enable digital input buffer on ANx pin,通用I/O口AD口与ATD模块的模拟输入引脚复用 将某个模拟输入引脚作为通用输入引脚使用时,必须将对

21、应IEN位置位,31,单片机原理与应用,ATD Registers 11/12,ATD Compare Higher Than Register (ATDCMPHT),CMPHT15:0 - Compare Operation Higher Than Enable for conversion number n (n= 15, 14, , 2, 1, 0) of a Sequence 0= If result of conversion n is lower or same than compare value in ATDDRn, this is flagged in ATDSTAT2 1=

22、 If result of conversion n is higher than compare value in ATDDRn, this is flagged in ATDSTAT2,注:写ATDCMPHT会终止当前转换序列,32,单片机原理与应用,ATD Registers 12/12- data format,ATD Conversion Result Registers (ATDDRn),ATDDR0ATDDR15,关闭比较操作时,ATD转换结果写入ATDDRn,要写入的ATDDRn的编号由ATDSTAT0的CC3CC0转换计数给出,转换结果在ATDDRn中的放置位置与转换精度和结

23、果对齐方式有关,使能比较功能时,ATD转换结果和比较阈值都总是12位,与SRES1:0(ATDCTL1)无关,DJM=0 左对齐,DJM=1 右对齐,转换结果不放入结果寄存器,比较完成后丢失,33,单片机原理与应用,本节提要,一、A/D转换基础知识 二、ATD模块简介 三、ATD模块寄存器 四、ATD模块编程范例,34,单片机原理与应用,ATD模块编程范例,ATD模块编程方法,ATD模块编程范例,ATD初始化:先写除ATD0CTL5外的控制寄存器,再写ATD0CTL5完成初始化,并启动转换;,ATD结果读取:通过查询ATD0STAT0中的SCF位或采用中断方式,确定转换完成,读取相关结果寄存器

24、取得ATD转换结果。,任务:分别对特殊通道VRH、VRL和(VRH+VRL)/2进行ATD转换,35,单片机原理与应用,ATD模块编程范例(续1),/* / *S12X128 ATD模块范例程序* /*#include /* common defines and macros */ #include /SCI相关函数/SCI初始化函数 void SCI_init(void);void SCISendChar(char c1);void SCISendString(char * pc2);void SCISendHex(char c1);unsigned char dtoa(char c1);/

25、ATD相关函数/ATD初始化函数 void ATD_init(void) ;,36,单片机原理与应用,ATD模块编程范例(续2),/*主程序*/ void main(void) SCI_init(); ATD_init();ATD0CTL5=0x45; /单次转换,单通道,选择特殊通道VRL while(!(ATD0STAT0) /END OF MIAN,37,单片机原理与应用,ATD模块编程范例(续3),/*SCI相关函数*/void SCI_init(void) SCI0BDH=0;SCI0BDL=52;SCI0CR2=0x0C; void SCISendChar(char c1) whi

26、le(SCI0SR1_TC=0);SCI0DRL=c1; void SCISendString(char *pc1)while(*pc1)!=0) SCISendChar(*pc1);pc1+ ; void SCISendHex(char c1)SCISendChar(dtoa(c1 ,38,单片机原理与应用,ATD模块编程范例(续4),/*ATD相关函数*/ATD初始化函数void ATD_init(void) ATD0CTL1=0x0F; /选择8位转换精度 ATD0CTL2=0x40; /打开CCF快速清零,关闭外部触发输入,关闭中断 ATD0CTL3=0x08; /数据左对齐,non-fifo,转换序列长度为1 ATD0CTL4=0xE3; /采样时间为24个ATD时钟周期,ATDClk=8MB/8=1MHz,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报