单片机飞思卡尔ADC模块.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.3 A/D转换模块 本节提要 一、A/D转换基础知识 二、ATD模块简介 三、ATD模块寄存器 四、ATD模块编程范例 本节提要 一、A/D转换基础知识 二、ATD模块简介 三、ATD模块寄存器 四、ATD模块编程范例 ADC概述 微控制器处理的是离散量 (数字量) ,而现实中往往是连续量 (模拟量) 物理量如:温度, 压力,湿度以及速度等等 传感器 将物理量转换为电信号 (电压, 电流) 需要模拟-数字转换器将电信号转换为数字量以供微控制器处理 基本概念 ADC 工作原理 将输入电压与若干等间距的参考电压进行比较 因此需要比较器 Uin Uref Uout=V+ ‘1’ Uin Uref Uout=0V ‘0’ ADC 工作原理 3 个比较器可将电压分成4 级 (以 2位来表示) ADC工作原理 2位ADC ADC工作原理 Flash Converter ADC 优点: 速度极快 缺点: 非常复杂 逐次逼近式A/D转换器 ADC工作原理 ADC工作原理 必须进行采样保持以避免输入电压在转换期间发生变化 ADC工作原理 逐次逼近式转换器( SA-ADC ) 非常快 比较复杂 SA-ADC在单片机中较为常见 单片机中常见 典型为8-12位 具有多个多路复用的模拟通道 ADC 参数 转换位数(Bits) 分辨率 = 2-n (8bits = 0.39%) 转换速度(Speed) 由工作时钟频率和转换位数确定 转换范围(Range) 0~5V, 0~10V, -5V~+5V. Etc.. 转换通道数(Channels) Distinguish the channel and converter 本节提要 一、A/D转换基础知识 二、ATD模块简介 三、ATD模块寄存器 四、ATD模块编程范例 S12单片机ADC特性 S12单片机ADC转换时间 S12单片机ADC模块框图 本节提要 一、A/D转换基础知识 二、ATD模块简介 三、ATD模块寄存器 四、ATD模块编程范例 ATD 模块寄存器 共27个寄存器 控制寄存器(ATDCTL0~ATDCTL5,6个) 状态寄存器(ATDSTAT0~ATDSTAT1,2个 ) 比较使能寄存器(ATDCMPE, 1个) 比较方式寄存器(ATDCMPHT , 1个,) 转换输入使能寄存器(ATDDIEN , 1个) 转换结果寄存器(ATDDR0~ATDDR15,16个) 其中: 8位寄存器: ATDCTL0~ATDCTL5, ATDSTAT0 16位寄存器:其余 ATD Registers 1/12 ATD Registers 2/12 ATD Registers 3/12 ATD Registers 4/12 ATD Registers 5/12 ATD Registers 6/12 ADC 工作方式 ATD Registers 7/12 ATD Registers 8/12 ATD Registers 9/12 ATD Registers 10/12 ATD Registers 11/12 ATD Registers 12/12- data format 本节提要 一、A/D转换基础知识 二、ATD模块简介 三、ATD模块寄存器 四、ATD模块编程范例 ATD模块编程范例 ATD模块编程方法 ATD模块编程范例(续1) //******************************** // *S12X128 ATD模块范例程序* //******************************** #include hidef.h /* common defines and macros */ #include mc9s12XS128.h //SCI相关函数 //SCI初始化函数 void SCI_init(void); void SCISendChar(char c1); void SCISendString(char * pc2); void SCISendHex(char c1); unsigned char dtoa(char c1); //ATD相关函数 //ATD初始化函数 void ATD_init(void) ; ATD模块编程范例(续2) /*******主程序********/ void main(void) { SCI_init(); ATD_init(); ATD0CTL5=0x45; //单次转换,单通道,选择特殊通道VRL while(!(ATD0STAT00x80)); //查询ATD是否完成 SCISe

文档评论(0)

新起点 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档