飞思卡尔8位单片机MC9S89键盘中断模块与AD转换模块ppt课件.ppt

上传人:本田雅阁 文档编号:3229329 上传时间:2019-08-03 格式:PPT 页数:16 大小:284.05KB
返回 下载 相关 举报
飞思卡尔8位单片机MC9S89键盘中断模块与AD转换模块ppt课件.ppt_第1页
第1页 / 共16页
飞思卡尔8位单片机MC9S89键盘中断模块与AD转换模块ppt课件.ppt_第2页
第2页 / 共16页
飞思卡尔8位单片机MC9S89键盘中断模块与AD转换模块ppt课件.ppt_第3页
第3页 / 共16页
飞思卡尔8位单片机MC9S89键盘中断模块与AD转换模块ppt课件.ppt_第4页
第4页 / 共16页
飞思卡尔8位单片机MC9S89键盘中断模块与AD转换模块ppt课件.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《飞思卡尔8位单片机MC9S89键盘中断模块与AD转换模块ppt课件.ppt》由会员分享,可在线阅读,更多相关《飞思卡尔8位单片机MC9S89键盘中断模块与AD转换模块ppt课件.ppt(16页珍藏版)》请在三一文库上搜索。

1、第九章 键盘中断模块与A/D转换模块,主要内容 键盘基本问题与GP32的键盘中断口 汇编语言键盘中断模块编程实例 08C语言键盘中断模块编程实例 MC68HC908GP32 MCU内部的A/D转换模块 MC68HC908GP32 MCU A/D转换编程实例,嵌入式应用技术基础教程课件,9.1 键盘基本问题与GP32的键盘中断口,9.1 键盘基本问题与GP32的键盘中断口,9.1.1 键盘的基本问题 (1)键的识别 如何知道键盘上哪个键被按下就是键盘识别问题。键盘识别主要有行扫描法与行反转法。 (2)抖动问题 当按下一个键时,会出现所按的键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况,当

2、释放一个按键时也会出现类似的情况,这就是抖动问题。解决抖动的方法通常是延迟等待抖动的消失或多次识别判定。 (3)重键问题 有两个或两个以上按键同时处于闭合状态的处理问题。在软件上,处理重键问题通常有连锁法与巡回法。,嵌入式应用技术基础教程课件,9.1 键盘基本问题与GP32的键盘中断口,44键盘结构,嵌入式应用技术基础教程课件,9.1 键盘基本问题与GP32的键盘中断口,9.1.2 MC68HC908GP32单片机的键盘中断模块,(1)键盘状态和控制寄存器(Keyboard Status and Control Register ,INTKBSCR) INTKBSCR包含了键盘中断请求标志、屏

3、蔽键盘中断请求、定义键盘中断的触发方式、清除键盘中断标志等功能。其地址是$001A。,嵌入式应用技术基础教程课件,键盘中断屏蔽位,键盘中断引脚触发方式位,键盘(中断)应答位,键盘(中断)标志位,未用,9.1 键盘基本问题与GP32的键盘中断口,(2)键盘中断允许寄存器(Keyboard Interrupt Enable Register,INTBIER),INTBIER的各位决定所对应的引脚是否允许中断进入。地址为:$001B。,嵌入式应用技术基础教程课件,D7D0,分别记为KBIE7KBIE0,可读写。若KBIEx=1,表示相应引脚KBIEx pin(也就是引脚PTAx pin)被定义为中断

4、引入引脚,反之则不能作为中断输入引脚。复位时,全为0。,9.1 键盘基本问题与GP32的键盘中断口,(3)键盘中断编程相关问题,要进行键盘中断方面的编程,需了解下列问题: 1)键盘中断矢量地址:$FFE0$FFE1。 2)键盘中断初始化顺序:先设置键盘状态和控制寄存器(INTKBSCR),后设置键盘中断允许寄存器(INTKBIER)。 3)为避免键盘误中断,在键盘初始化时,建议按下列顺序: 令IMASKK=1(屏蔽键盘中断)、设置KBIEx1(定义中断引脚)、写ACKK=1(清除键盘中断请求)、令IMASKK=0(开放键盘中断)。 也可以用下述方法: 通过DDRA定义PTAx pin为输出、写

5、1到PTAx(使得PTAx pin为高电平)、设置KBIEx1(定义中断引脚)。 4)注意在中断子程序中的入口和出口参数。 5)在Wait和Stop模式下,键盘中断仍可发生。,嵌入式应用技术基础教程课件,返回,9.2 汇编语言键盘中断模块编程实例,9.2 汇编语言键盘中断模块编程实例,44键盘与单片机接法示例,嵌入式应用技术基础教程课件,9.2 汇编语言键盘中断模块编程实例,(1)键值计算方法 按上图的接法可以得出键值表,如下图。键值可以通过扫描法获得,由键值通过查表法编程得到定义值。,9.2.1 按键识别与键盘定义子程序,嵌入式应用技术基础教程课件,(2)键盘编程汇编语言子程序,9.3 08

6、C语言键盘中断模块编程实例,(1)键盘中断编程汇编主程序 (2)键盘中断编程的PC机方的VB界面与程序 9.3 08C语言键盘中断模块编程实例 9.3.1 按键识别与键盘定义函数 9.3.2 键盘中断编程08C语言举例 (1)键盘中断编程实例的08C主函数 (2)键盘中断编程实例的08C中断矢量表文件,9.2.2 键盘中断编程举例,嵌入式应用技术基础教程课件,返回,9.4 MC68HC908GP32 MCU内部的A/D转换模块,9.4 MC68HC908GP32 MCU内部的 A/D转换模块,9.4.1 A/D转换相关基础知识 A/D转换模块(Analog To Digital Convert

7、 Module)即模数转换模块的功能是将电压信号转换为对应的数字信号。实际应用中,这个电压信号可能由温度、湿度、压力等实际物理量经过传感器和相应的变换电路转化而来。经过A/D转换,MCU就可以处理这些物理量。 (1)采样精度:数字量变化一个最小量时模拟信号的变化量。 (2)采样速率:完成一次A/D采样所要花费的时间。 (3)滤波:对采样的数据进行筛选去掉误差较大的毛刺。 (4)物理量回归:把A/D采样值与实际物理量对应起来。,嵌入式应用技术基础教程课件,9.4 MC68HC908GP32 MCU内部的A/D转换模块,9.4.2 MC68HC908GP32 A/D转换模块的寄存器,(1)A/D转

8、换状态和控制寄存器(Analog-to-Digital Status and Control RegisterADSCR) ADSCR主要功能是:选取要转换的通道、决定转换结束数据获取的方式、设置是连续转换还是一次转换。其地址是$003C。,嵌入式应用技术基础教程课件,转换完成标志位,A/D转换中断允许标志位,连续转换控制位,通道选择,9.4 MC68HC908GP32 MCU内部的A/D转换模块,(2)A/D转换数据寄存器(Analog-to-Digital Data RegisterADR),ADR存放A/D转换的8位结果,每次A/D转换结束更新该寄存器。编程从该寄存器读取A/D转换结果。

9、该寄存器地址为:$003D,为只读寄存器,复位时为$00。,嵌入式应用技术基础教程课件,9.4 MC68HC908GP32 MCU内部的A/D转换模块,(3)A/D转换输入时钟寄存器(Analog-to-Digital Input Clock RegisterADCLK),ADCLK决定A/D转换的时钟频率来源、分频系数值,芯片内的A/D转换器要求ADC时钟频率为1MHz左右。ADCLK 的地址是:$003E。,嵌入式应用技术基础教程课件,ADC时钟分频系数选择位,ADC输入时钟源选择位,未用,ADC时钟要求: ADC时钟频率1MHz。具体编程时根据A/D转换的时钟频率来源确定分频系数值,确保

10、芯片内的A/D转换器时钟频率为1MHz左右即可。,9.4 MC68HC908GP32 MCU内部的A/D转换模块,9.4.3 A/D转换模块的基本编程方法,(1)A/D转换初始化 LDA #%00110000 ;使用内部总线时钟,2分频 STA ADCLK ;送入寄存器ADCLK (2)启动A/D转换 LDA #%00000000 ;0通道,转换结束不产生中断,一次A/D转换 STA ADSCR ;并启动0通道转换 (3)获A/D转换结果 BRCLR 7, ADSCR,* ;COCO位=0则等待COCO位=1 LDA ADR ;转换结束,转换结果送入A中,嵌入式应用技术基础教程课件,返回,9.

11、5 MC68HC908GP32 MCU A/D转换编程实例,9.5 MC68HC908GP32 MCU A/D转换编程实例,9.5.1 A/D转换汇编语言编程实例 (1)A/D转换有关子程序 (2)A/D转换测试程序汇编主程序 9.5.2 A/D转换08C语言编程实例 (1)A/D转换有关C语言子函数 (2)A/D转换08C测试实例主函数,嵌入式应用技术基础教程课件,返回,本章共介绍了两部分内容。 键盘部分:介绍键盘中断模块的编程方法,并给出规范的扫描法识别键值子程序、键值转为定义值子程序,及测试实例。在掌握键盘中断使用方法的基本上,着重掌握扫描法读取键值、键值转为定义值的编程方法。 A/D转换部分:介绍了GP32单片机A/D转换模块的基本编程方法,给出了中值滤波与平均值滤波相结合的滤波程序,可供实际开发参考使用。,本章小结,嵌入式应用技术基础教程课件,返回,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1