飞思卡位单片机MCS键盘中断模块与AD转换模块

上传人:pu****.1 文档编号:567514356 上传时间:2024-07-21 格式:PPT 页数:16 大小:284.02KB
返回 下载 相关 举报
飞思卡位单片机MCS键盘中断模块与AD转换模块_第1页
第1页 / 共16页
飞思卡位单片机MCS键盘中断模块与AD转换模块_第2页
第2页 / 共16页
飞思卡位单片机MCS键盘中断模块与AD转换模块_第3页
第3页 / 共16页
飞思卡位单片机MCS键盘中断模块与AD转换模块_第4页
第4页 / 共16页
飞思卡位单片机MCS键盘中断模块与AD转换模块_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《飞思卡位单片机MCS键盘中断模块与AD转换模块》由会员分享,可在线阅读,更多相关《飞思卡位单片机MCS键盘中断模块与AD转换模块(16页珍藏版)》请在金锄头文库上搜索。

1、第九章第九章 键盘中断模块与键盘中断模块与A/D转换模块转换模块 主要内容v 键盘基本问题与GP32的键盘中断口v 汇编语言键盘中断模块编程实例 v 08C语言键盘中断模块编程实例 v MC68HC908GP32 MCU内部的A/D转换模块 v MC68HC908GP32 MCU A/D转换编程实例 9.1 键盘基本问题与键盘基本问题与GP32的键盘中断口的键盘中断口9.1.1 键盘的基本问题键盘的基本问题 (1)键的识别)键的识别 如何知道键盘上哪个键被按下就是键盘识别问题。键盘识别主要如何知道键盘上哪个键被按下就是键盘识别问题。键盘识别主要有行扫描法与行反转法。有行扫描法与行反转法。(2)

2、抖动问题)抖动问题 当按下一个键时,会出现所按的键在闭合位置和断开位置之间跳当按下一个键时,会出现所按的键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况,当释放一个按键时也会出现类似的情几下才稳定到闭合状态的情况,当释放一个按键时也会出现类似的情况,这就是抖动问题。解决抖动的方法通常是延迟等待抖动的消失或况,这就是抖动问题。解决抖动的方法通常是延迟等待抖动的消失或多次识别判定。多次识别判定。(3)重键问题)重键问题 有两个或两个以上按键同时处于闭合状态的处理问题。在软件上,有两个或两个以上按键同时处于闭合状态的处理问题。在软件上,处理重键问题通常有连锁法与巡回法。处理重键问题通常有连锁法

3、与巡回法。 9.1 键盘基本问题与GP32的键盘中断口 +5V 5K4行线行线m1 m2 m3 m4 列线列线 n1 n2 n3 n4 44键盘结构键盘结构9.1 键盘基本问题与GP32的键盘中断口9.1.2 MC68HC908GP32单片机的键盘中断模块单片机的键盘中断模块(1)键盘状态和控制寄存器()键盘状态和控制寄存器(Keyboard Status and Control Register ,INTKBSCR) INTKBSCR包含了键盘中断请求标志、屏蔽键盘中断请求、定义包含了键盘中断请求标志、屏蔽键盘中断请求、定义键盘中断的触发方式、清除键盘中断标志等功能。其地址是键盘中断的触发方

4、式、清除键盘中断标志等功能。其地址是$001A。数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0定义定义 KEY ACKK IMASKK MODEK复位复位 0 0 0 0 0 0 0 0键盘中断键盘中断屏蔽位屏蔽位 键盘中断键盘中断引脚触发引脚触发方式位方式位 键盘键盘(中断中断)应答位应答位键盘键盘(中断中断)标志位标志位 未用未用9.1 键盘基本问题与GP32的键盘中断口(2)键盘中断允许寄存器()键盘中断允许寄存器(Keyboard Interrupt Enable Register,INTBIER) INTBIER的各位决定所对应的引脚是否允许中断进入。地址为:的各位决定

5、所对应的引脚是否允许中断进入。地址为:$001B。 数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0定义定义KBIE7 KBIE6 KBIE5 KBIE4 KBIE3 KBIE2 KBIE1 KBIE0复位复位 0 0 0 0 0 0 0 0 D7D0,分别记为,分别记为KBIE7KBIE0,可读写。若,可读写。若KBIEx=1,表,表示相应引脚示相应引脚KBIEx pin(也就是引脚(也就是引脚PTAx pin)被定义为中断引入引)被定义为中断引入引脚,反之则不能作为中断输入引脚。复位时,全为脚,反之则不能作为中断输入引脚。复位时,全为0。 9.1 键盘基本问题与GP32的键盘中

6、断口(3)键盘中断编程相关问题)键盘中断编程相关问题 要进行键盘中断方面的编程,需了解下列问题:要进行键盘中断方面的编程,需了解下列问题: 1)键盘中断矢量地址:)键盘中断矢量地址:$FFE0$FFE1。 2)键盘中断初始化顺序:先设置键盘状态和控制寄存器)键盘中断初始化顺序:先设置键盘状态和控制寄存器(INTKBSCR),后设置键盘中断允许寄存器(),后设置键盘中断允许寄存器(INTKBIER)。)。 3)为避免键盘误中断,在键盘初始化时,建议按下列顺序:)为避免键盘误中断,在键盘初始化时,建议按下列顺序: 令令IMASKK=1(屏蔽键盘中断屏蔽键盘中断)、设置、设置KBIEx1(定义中断引

7、脚定义中断引脚)、写、写ACKK=1(清除键盘中断请求清除键盘中断请求)、令、令IMASKK=0(开放键盘中断开放键盘中断)。 也可以用下述方法:也可以用下述方法: 通过通过DDRA定义定义PTAx pin为输出、写为输出、写1到到PTAx(使得(使得PTAx pin为高电平)为高电平)、设置、设置KBIEx1(定义中断引脚定义中断引脚)。 4)注意在中断子程序中的入口和出口参数。)注意在中断子程序中的入口和出口参数。 5)在)在Wait和和Stop模式下,键盘中断仍可发生。模式下,键盘中断仍可发生。返回返回9.1 键盘基本问题与GP32的键盘中断口9.2 汇编语言键盘中断模块编程实例汇编语言

8、键盘中断模块编程实例44键盘与单片机接法示例键盘与单片机接法示例 VDD 单片机单片机 内部上拉电阻内部上拉电阻 1 2 3 A 单片机单片机PTA口引脚口引脚行线行线m1 PTA0 4 5 6 B m2 PTA1 7 8 9 C m3 PTA2 * 0 # D m4 PTA3 列线列线 n1 n2 n3 n4 PTA7 PTA6 PTA5 PTA49.2 汇编语言键盘中断模块编程实例(1)键值计算方法)键值计算方法按按上上图图的的接接法法可可以以得得出出键键值值表表,如如下下图图。键键值值可可以以通通过过扫扫描描法法获获得得,由由键键值值通通过过查查表表法法编编程程得到定义值。得到定义值。9

9、.2.1 按键识别与键盘定义子程序按键识别与键盘定义子程序 1 EE 2 DE 3 BE A 7E 4 ED 5 DD 6 DD B 7D 7 EB 8 DB 9 BB C 7B * E7 0 D7 # B7 D 77定义符定义符键值键值键盘定义键盘定义(2)键盘编程汇编语言子程序键盘编程汇编语言子程序9.2 汇编语言键盘中断模块编程实例(1)键盘中断编程汇编主程序键盘中断编程汇编主程序(2)键盘中断编程的键盘中断编程的PC机方的机方的VB界面与程序界面与程序9.3 08C语言键盘中断模块编程实例语言键盘中断模块编程实例 9.3.1 按键识别与键盘定义函数按键识别与键盘定义函数 9.3.2 键

10、盘中断编程键盘中断编程08C语言举例语言举例(1)键盘中断编程实例的键盘中断编程实例的08C主函数主函数(2)键盘中断编程实例的键盘中断编程实例的08C中断矢量表文件中断矢量表文件9.2.2 键盘中断编程举例键盘中断编程举例返回返回9.3 08C语言键盘中断模块编程实例9.4 MC68HC908GP32 MCU内部的内部的A/D转换模块转换模块9.4.1 A/D转换相关基础知识转换相关基础知识 A/D转换模块(转换模块(Analog To Digital Convert Module)即模数转换)即模数转换模块的功能是将电压信号转换为对应的数字信号。实际应用中,这个模块的功能是将电压信号转换为

11、对应的数字信号。实际应用中,这个电压信号可能由温度、湿度、压力等实际物理量经过传感器和相应的电压信号可能由温度、湿度、压力等实际物理量经过传感器和相应的变换电路转化而来。经过变换电路转化而来。经过A/D转换,转换,MCU就可以处理这些物理量。就可以处理这些物理量。(1)采样精度)采样精度:数字量变化一个最小量时模拟信号的变化量。数字量变化一个最小量时模拟信号的变化量。 (2)采样速率)采样速率:完成一次完成一次A/D采样所要花费的时间。采样所要花费的时间。 (3)滤波)滤波:对采样的数据进行筛选去掉误差较大的毛刺。对采样的数据进行筛选去掉误差较大的毛刺。 (4)物理量回归)物理量回归:把把A/

12、D采样值与实际物理量对应起来。采样值与实际物理量对应起来。 9.4 MC68HC908GP32 MCU内部的A/D转换模块9.4.2 MC68HC908GP32 A/D转换模块的寄存器转换模块的寄存器(1)A/D转换状态和控制寄存器(转换状态和控制寄存器(Analog-to-Digital Status and Control RegisterADSCR) ADSCR主要功能是:选取要转换的通道、决定转换结束数据获取主要功能是:选取要转换的通道、决定转换结束数据获取的方式、设置是连续转换还是一次转换。其地址是的方式、设置是连续转换还是一次转换。其地址是$003C。数据位 D7 D6 D5 D4

13、 D3 D2 D1 D0定义COCO AIEN ADCO ADCH4 ADCH3 ADCH2 ADCH1 ADCH0复位 0 0 0 1 1 1 1 1转换完成转换完成标志位标志位A/D转换转换中断允许中断允许标志位标志位 连续转换连续转换控制位控制位通道选择通道选择 9.4 MC68HC908GP32 MCU内部的A/D转换模块(2)A/D转换数据寄存器(转换数据寄存器(Analog-to-Digital Data RegisterADR) ADR存放存放A/D转换的转换的8位结果,每次位结果,每次A/D转换结束更新该寄存器。转换结束更新该寄存器。编程从该寄存器读取编程从该寄存器读取A/D转

14、换结果。该寄存器地址为:转换结果。该寄存器地址为:$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输入时输

15、入时钟源选择位钟源选择位 未用未用 数据位 D7 D6 D5 D4 D3 D2 D1 D0定义 ADIV2 ADIV1 ADIV0 ADICLK - - - -复位 0 0 0 1 1 1 1 1 ADC时钟要求:时钟要求: ADC时钟频率时钟频率1MHz。具体编程时根据。具体编程时根据A/D转换转换的时钟频率来源确定分频系数值,确保芯片内的的时钟频率来源确定分频系数值,确保芯片内的A/D转换器时钟频率为转换器时钟频率为1MHz左右即可。左右即可。9.4 MC68HC908GP32 MCU内部的A/D转换模块9.4.3 A/D转换模块的基本编程方法转换模块的基本编程方法(1)A/D转换初始化转

16、换初始化 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.4 MC68HC908GP32 MCU内部的A/D转换模块9.5

17、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测试实例主函数测试实例主函数返回返回9.5 MC68HC908GP32 MCU A/D转换编程实例 本章共介绍了两部分内容。本章共介绍了两部分内容。 键盘部分:介绍键盘中断模块的编程方法,并给出规范的扫描法键盘部分:介绍键盘中断模块的编程方法,并给出规范的扫描法识别键值子程序、键值转为定义值子程序,及测试实例。在掌握键盘识别键值子程序、键值转为定义值子程序,及测试实例。在掌握键盘中断使用方法的基本上,着重掌握扫描法读取键值、键值转为定义值中断使用方法的基本上,着重掌握扫描法读取键值、键值转为定义值的编程方法。的编程方法。 A/D转换部分:介绍了转换部分:介绍了GP32单片机单片机A/D转换模块的基本编程方法,转换模块的基本编程方法,给出了中值滤波与平均值滤波相结合的滤波程序,可供实际开发参考给出了中值滤波与平均值滤波相结合的滤波程序,可供实际开发参考使用。使用。本章小结本章小结返回返回

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号