飞思卡尔8位单片机MC9S08+09+键盘中断模块与AD转换模块.ppt_第1页
飞思卡尔8位单片机MC9S08+09+键盘中断模块与AD转换模块.ppt_第2页
飞思卡尔8位单片机MC9S08+09+键盘中断模块与AD转换模块.ppt_第3页
飞思卡尔8位单片机MC9S08+09+键盘中断模块与AD转换模块.ppt_第4页
飞思卡尔8位单片机MC9S08+09+键盘中断模块与AD转换模块.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

第九章键盘中断模块与A D转换模块 主要内容键盘基本问题与GP32的键盘中断口汇编语言键盘中断模块编程实例08C语言键盘中断模块编程实例MC68HC908GP32MCU内部的A D转换模块MC68HC908GP32MCUA D转换编程实例 嵌入式应用技术基础教程 课件 9 1键盘基本问题与GP32的键盘中断口 9 1键盘基本问题与GP32的键盘中断口 9 1 1键盘的基本问题 1 键的识别如何知道键盘上哪个键被按下就是键盘识别问题 键盘识别主要有行扫描法与行反转法 2 抖动问题当按下一个键时 会出现所按的键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况 当释放一个按键时也会出现类似的情况 这就是抖动问题 解决抖动的方法通常是延迟等待抖动的消失或多次识别判定 3 重键问题有两个或两个以上按键同时处于闭合状态的处理问题 在软件上 处理重键问题通常有连锁法与巡回法 嵌入式应用技术基础教程 课件 9 1键盘基本问题与GP32的键盘中断口 4 4键盘结构 嵌入式应用技术基础教程 课件 9 1键盘基本问题与GP32的键盘中断口 9 1 2MC68HC908GP32单片机的键盘中断模块 1 键盘状态和控制寄存器 KeyboardStatusandControlRegister INTKBSCR INTKBSCR包含了键盘中断请求标志 屏蔽键盘中断请求 定义键盘中断的触发方式 清除键盘中断标志等功能 其地址是 001A 嵌入式应用技术基础教程 课件 键盘中断屏蔽位 键盘中断引脚触发方式位 键盘 中断 应答位 键盘 中断 标志位 未用 9 1键盘基本问题与GP32的键盘中断口 2 键盘中断允许寄存器 KeyboardInterruptEnableRegister INTBIER INTBIER的各位决定所对应的引脚是否允许中断进入 地址为 001B 嵌入式应用技术基础教程 课件 D7 D0 分别记为KBIE7 KBIE0 可读写 若KBIEx 1 表示相应引脚KBIExpin 也就是引脚PTAxpin 被定义为中断引入引脚 反之则不能作为中断输入引脚 复位时 全为0 9 1键盘基本问题与GP32的键盘中断口 3 键盘中断编程相关问题 要进行键盘中断方面的编程 需了解下列问题 1 键盘中断矢量地址 FFE0 FFE1 2 键盘中断初始化顺序 先设置键盘状态和控制寄存器 INTKBSCR 后设置键盘中断允许寄存器 INTKBIER 3 为避免键盘误中断 在键盘初始化时 建议按下列顺序 令IMASKK 1 屏蔽键盘中断 设置KBIEx 1 定义中断引脚 写ACKK 1 清除键盘中断请求 令IMASKK 0 开放键盘中断 也可以用下述方法 通过DDRA定义PTAxpin为输出 写1到PTAx 使得PTAxpin为高电平 设置KBIEx 1 定义中断引脚 4 注意在中断子程序中的入口和出口参数 5 在Wait和Stop模式下 键盘中断仍可发生 嵌入式应用技术基础教程 课件 返回 9 2汇编语言键盘中断模块编程实例 9 2汇编语言键盘中断模块编程实例 4 4键盘与单片机接法示例 嵌入式应用技术基础教程 课件 9 2汇编语言键盘中断模块编程实例 1 键值计算方法按上图的接法可以得出键值表 如下图 键值可以通过扫描法获得 由键值通过查表法编程得到定义值 9 2 1按键识别与键盘定义子程序 嵌入式应用技术基础教程 课件 2 键盘编程汇编语言子程序 9 308C语言键盘中断模块编程实例 1 键盘中断编程汇编主程序 2 键盘中断编程的PC机方的VB界面与程序9 308C语言键盘中断模块编程实例9 3 1按键识别与键盘定义函数9 3 2键盘中断编程08C语言举例 1 键盘中断编程实例的08C主函数 2 键盘中断编程实例的08C中断矢量表文件 9 2 2键盘中断编程举例 嵌入式应用技术基础教程 课件 返回 9 4MC68HC908GP32MCU内部的A D转换模块 9 4MC68HC908GP32MCU内部的A D转换模块 9 4 1A D转换相关基础知识A D转换模块 AnalogToDigitalConvertModule 即模数转换模块的功能是将电压信号转换为对应的数字信号 实际应用中 这个电压信号可能由温度 湿度 压力等实际物理量经过传感器和相应的变换电路转化而来 经过A D转换 MCU就可以处理这些物理量 1 采样精度 数字量变化一个最小量时模拟信号的变化量 2 采样速率 完成一次A D采样所要花费的时间 3 滤波 对采样的数据进行筛选去掉误差较大的毛刺 4 物理量回归 把A D采样值与实际物理量对应起来 嵌入式应用技术基础教程 课件 9 4MC68HC908GP32MCU内部的A D转换模块 9 4 2MC68HC908GP32A D转换模块的寄存器 1 A D转换状态和控制寄存器 Analog to DigitalStatusandControlRegister ADSCR ADSCR主要功能是 选取要转换的通道 决定转换结束数据获取的方式 设置是连续转换还是一次转换 其地址是 003C 嵌入式应用技术基础教程 课件 转换完成标志位 A D转换中断允许标志位 连续转换控制位 通道选择 9 4MC68HC908GP32MCU内部的A D转换模块 2 A D转换数据寄存器 Analog to DigitalDataRegister ADR ADR存放A D转换的8位结果 每次A D转换结束更新该寄存器 编程从该寄存器读取A D转换结果 该寄存器地址为 003D 为只读寄存器 复位时为 00 嵌入式应用技术基础教程 课件 9 4MC68HC908GP32MCU内部的A D转换模块 3 A D转换输入时钟寄存器 Analog to DigitalInputClockRegister ADCLK ADCLK决定A D转换的时钟频率来源 分频系数值 芯片内的A D转换器要求ADC时钟频率为1MHz左右 ADCLK的地址是 003E 嵌入式应用技术基础教程 课件 ADC时钟分频系数选择位 ADC输入时钟源选择位 未用 ADC时钟要求 ADC时钟频率 1MHz 具体编程时根据A D转换的时钟频率来源确定分频系数值 确保芯片内的A D转换器时钟频率为1MHz左右即可 9 4MC68HC908GP32MCU内部的A D转换模块 9 4 3A D转换模块的基本编程方法 1 A D转换初始化LDA 00110000 使用内部总线时钟 2分频STAADCLK 送入寄存器ADCLK 2 启动A D转换LDA 00000000 0通道 转换结束不产生中断 一次A D转换STAADSCR 并启动0通道转换 3 获A D转换结果BRCLR7 ADSCR COCO位 0则等待COCO位 1LDAADR 转换结束 转换结果送入A中 嵌入式应用技术基础教程 课件 返回 9 5MC68HC908GP32MCUA D转换编程实例 9 5MC68HC908GP32MCUA D转换编程实例 9 5 1A D转换汇编语言编程实例 1 A D转换有关子程序 2 A D转换测试程序汇编主程序9 5 2A D转换08C语言编程实例 1 A D转换有关C语言子函数 2 A D转换08C测试实例主函数 嵌入式应用技术基础教程 课件 返回 本章共介绍了两部分内容 键盘部分 介绍键盘中断模块的编程方法 并给

温馨提示

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

评论

0/150

提交评论