S08_10_Freescale HCS08单片机ADC编程应用.ppt_第1页
S08_10_Freescale HCS08单片机ADC编程应用.ppt_第2页
S08_10_Freescale HCS08单片机ADC编程应用.ppt_第3页
S08_10_Freescale HCS08单片机ADC编程应用.ppt_第4页
S08_10_Freescale HCS08单片机ADC编程应用.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Freescale单片机原理及应用 FreescaleHCS08单片机ADC编程应用 Slide1 Slide1 FreescaleHCS08单片机ADC编程应用 ContentsandObjectives 理解HCS08的ADC模块原理ADC如何启动如何判断ADC转换结束查询方式中断方式学会ADC模块设计ADC模块寄存器功能查询方式程序中断方式程序进一步认识 对MCU外部管脚 内部模块的控制正是通过Regs的控制来实现 S08系列MCU内部的模数转换器ADC Analog to DigitalConverter 是一个逐次逼近型10位ADC 它集成在MCU内部 支持28个独立的模拟输入 AD0 AD27 MC9S08AW60系列的MCU仅使用了其中的18个输入通道 AD0 AD15 AD26和AD27 这些输入通道通过ADCH位进行选择 有些输入和I O管脚复用 Slide2 8 1概述 外部信号管脚ADC模块支持高达28个独立的模拟输入 它还有4个电源 参考 地连接管脚模拟通道输入 ADx ADC模块支持高达28个独立的模拟输入 转换器的模拟输入通过ADCH通道选择位选定 Slide3 8 1概述 外部信号管脚ADC模块支持高达28个独立的模拟输入 它还有4个电源 参考 地连接管脚模拟供电电源 VDDAD ADC模块使用VDDAD管脚供电 只需要把VDDAD管脚连接到VDD管脚 建议在VDDAD管脚连接退耦电容 在有些封装中 VDDAD管脚内部连接到VDD Slide4 8 1概述 外部信号管脚ADC模块支持高达28个独立的模拟输入 它还有4个电源 参考 地连接管脚模拟地 VSSAD ADC模块使用VSSAD管脚接地 只需要把VSSAD管脚连接到VSS管脚 在有些封装中 VSSAD管脚内部连接到VSS Slide5 8 1概述 外部信号管脚ADC模块支持高达28个独立的模拟输入 它还有4个电源 参考 地连接管脚高参考电压 VREFH VREFH管脚是ADC模块的高参考电压输入管脚 VREFH管脚可以被连接到VDDAD管脚 也可以连接到一个外部参考电压源 要求外部参考电压源不能超过VDDAD 不能低于最小VDDAD 在有些封装中 VREFH管脚内部连接到VDDAD Slide6 8 1概述 外部信号管脚ADC模块支持高达28个独立的模拟输入 它还有4个电源 参考 地连接管脚低参考电压 VREFL VREFL管脚是ADC模块的低参考电压输入管脚 只需要把VREFL管脚连接到VSSAD管脚 在有些封装中 VREFL管脚内部连接到VSSAD Slide7 8 1概述 外部信号管脚ADC模块支持高达28个独立的模拟输入 它还有4个电源 参考 地连接管脚 Slide8 8 1概述 内部结构 Slide9 8 2功能描述 ADC管脚允许3个8位管脚控制寄存器APCTL1 APCTL2 APCTL3 PinControlRegisters 用于禁止被用作模拟输入的I O管脚的端口控制 当ADPCx 0时 允许相应管脚的I O控制 即管脚不作为ADC通道 当ADPCx 1时 禁止相应管脚的I O控制 即管脚作为ADC通道 Slide10 8 2功能描述 ADC通道选择 28个通道 Slide11 8 2功能描述 ADC时钟选择和分频控制总线时钟和ICGERCLK时钟可作为ADC模块时钟ADC时钟具有频率范围 Slide12 8 2功能描述 ADC时钟选择和分频控制 Slide13 8 2功能描述 ADC时钟选择和分频控制可以选用四种时钟源中的一种来作为ADC模块的时钟 然后再把这个时钟源分频后产生转换器的输入时钟ADCK 四种时钟源的选择通过ADICLK位的设定来完成 分频系数通过ADIV位被设成1 2 4或8 Slide14 8 2功能描述 ADC时钟选择和分频控制无论选定哪一个时钟源 其频率必须处在ADCK的许可频率范围之内 ADLPC 0时 0 4MHz fADCK 4MHzADLPC 1时 0 4MHz fADCK 8MHz Slide15 8 2功能描述 ADC时钟选择和分频控制总转换时间依赖于采样时间 由ADLSMP决定 MCU总线频率 转换模式 8位或10位 和转换时钟频率 fADCK Slide16 8 2功能描述 ADC时钟选择和分频控制总转换时间依赖于采样时间 由ADLSMP决定 MCU总线频率 转换模式 8位或10位 和转换时钟频率 fADCK Slide17 8 2功能描述 转换控制既可以按照10位模式转换 也可以按照8位模式转换 这取决于MODE位的设定 既可以采用软件启动转换 也可以采用硬件启动转换 另外 ADC模块也能配置成为低功耗操作 长采样时间 连续转换以及采样值与软件设定值自动比较功能 启动AD转换若选用软件触发 那么写ADC1SC1 ADCH位不全为1 后将启动AD转换若选用硬件触发 那么在一个硬件触发 ADHWT 事件之后将启动AD转换若允许连续转换方式 那么转换结果传送到结果数据寄存器之后将启动下一次AD转换 Slide18 8 2功能描述 转换控制软件触发和硬件触发 Slide19 8 2功能描述 转换控制单次转换和连续转换 Slide20 8 2功能描述 转换控制转换结束当转换结果被传送到数据结果寄存器ADC1RH和ADC1RL时 一次转换结束 转换结束通过设置COCO位为1来指示 如果AIEN位为1 在COCO位为1时还可以产生一次中断 Slide21 8 2功能描述 转换控制转换结束当转换结果被传送到数据结果寄存器ADC1RH和ADC1RL时 一次转换结束 转换结束通过设置COCO位为1来指示 如果AIEN位为1 在COCO位为1时还可以产生一次中断 Slide22 8 2功能描述 其余功能自动比较功能自动比较功能用于检测一个上门限电压或下门限电压 在输入信号被采样并转换之后 转换结果和二进制补码值ADC1CVH ADC1VL相加 若选上门限比较 ACFGT 1 那么当结果大于或等于比较值时 COCO位变为1 若选用下门限比较 ACFGT 0 那么当结果小于比较值时 COCO位变为1 和二进制补码比较值相加的结果值被传送到ADC1RH和ADC1RL中 Slide23 8 2功能描述 管脚控制寄存器 APCTLx ADPCx 0时 允许相应管脚的I O控制 当ADPCx 1时 禁止相应管脚的I O控制 建议作为AD功能的管脚都禁止其IO控制 Slide24 8 3内部寄存器 状态和控制寄存器1 ADC1SC1 Slide25 8 3内部寄存器 状态和控制寄存器1 ADC1SC1 Slide26 8 3内部寄存器 状态和控制寄存器2 ADC1SC2 Slide27 8 3内部寄存器 配置寄存器 ADC1CFG Slide28 8 3内部寄存器 配置寄存器 ADC1CFG Slide29 8 3内部寄存器 结果数据寄存器 ADC1RH ADC1RL ADC1RH包括10位转换结果的高2位 当配置为8位转换方式时 ADR8和ADR9等于0 ADC1RL包括10位转换结果的低8位或者8位转换的所有8位结果 Slide30 8 3内部寄存器 比较值寄存器 ADC1CVH ADC1CVL ADC1CVH包括10位比较值的高2位 ADC1CVL包含10位比较值的低8位或者8位比较值的所有位 如果允许比较功能 这两位用来和接下来的10位转换结果或8位结果的低8位进行比较 Slide31 8 3内部寄存器 初始化ADC通道顺序 在ADC模块能进行采样 转换之前 必须对它进行一序列初始化操作 典型初始化过程如下 更新配置寄存器ADCCFG以选定输入时钟源和分频因子来产生内部时钟ADCK 此寄存器还用于选定采样时间和低功耗配置 更新状态和控制寄存器2 ADSC2 以选定启动方式是硬件启动还是软件启动 是否允许比较功能等 更新状态和控制寄存器1 ADSC1 以选定是采用连续转换还是单次转换 是否允许转换结束中断等 此时也选定对哪一个通道上的电压进行转换 Slide32 8 4ADC应用举例 ADC模块配置如下 10位单次转换 低功耗 对通道1采用长采样时间 ADCK时钟由总线时钟除以1得来 软件启动 禁止比较功能 允许ADC中断 写出ADC初始化子程序ADC Init 经过分析 知ADC寄存器取值如表9 9所示 Slide33 8 4ADC应用举例 ADC模块配置如下 10位单次转换 低功耗 对通道1采用长采样时间 ADCK时钟由总线时钟除以1得来 软件启动 禁止比较功能 允许ADC中断 写出ADC初始化子程序ADC Init Slide34 8 4ADC应用举例 ADC Init ADC模块初始化MOV 98 ADC1CFG 低功耗长采样 10位模式 ADC时钟 总线时钟 1MOV 00 ADC1SC2 软件启动ADC 禁止比较功能MOV 41 ADC1SC1 允许ADC中断 对ADC1通道启动单次转换CLI 开总中断RTS ADC模块配置如下 10位单次转换 低功耗 对通道1采用长采样时间 ADCK时钟由总线时钟除以1得来 软件启动 禁止比较功能 允许ADC中断 写出ADC初始化子程序ADC Init ADC Init之后 一旦对ADC1通道 即PTB1管脚 电压进行采样 AD转换之后 如何判断ADC转换结束 软件延时转换时间查询COCO标志位状态通过MCU的中断机制一次转换结束后 如何启动下一次AD转换因为采用单次软件启动方式 所以通过写ADC1SC1来启动下一次转换若采用连续转换方式 该如何修改初始化代码 如何启动下一次转换 如何读取转换结果 Slide35 8 4ADC应用举例 ADC Init ADC模块初始化MOV 98 ADC1CFG 低功耗长采样 10位模式 ADC时钟 总线时钟 1MOV 00 ADC1SC2 软件启动ADC 禁止比较功能MOV 41 ADC1SC1 允许ADC中断 对ADC1通道启动单次转换CLI 开总中断RTS Slide36 8 4ADC应用举例 ADC的中断向量表首地址为 FFD0 读取ADC1通道10位电压值 保存到 70 71单元的完整程序例子 Slide37 8 4ADC应用举例 org 0070ADC RDS B2 保存ADC结果org 1860ADC Init ADC模块初始化RTSADC IRQ LDAADC1RH 读结果高位STAADC R 保存LDAADC1RL 读结果低位 同时清零COCOSTAADC R 1 保存MOV 41 ADC1SC1 启动ADC1通道下一次单次转换RTI 中断返回Main JSRADC Init ADC模块初始化B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论