c语言kbi键盘中断,第九章键盘中断模块与AD转换模块.ppt

第九章键盘中断模块与AD转换模块.ppt

第九章 键盘中断模块与A/D转换模块 主要内容 键盘基本问题与GP32的键盘中断口 汇编语言键盘中断模块编程实例 08C语言键盘中断模块编程实例 MC68HC908GP32 MCU内部的A/D转换模块 MC68HC908GP32 MCU A/D转换编程实例 9.1 键盘基本问题与GP32的键盘中断口 9.1.1 键盘的基本问题 (1)键的识别 如何知道键盘上哪个键被按下就是键盘识别问题。键盘识别主要有行扫描法与行反转法。 (2)抖动问题 当按下一个键时,会出现所按的键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况,当释放一个按键时也会出现类似的情况,这就是抖动问题。解决抖动的方法通常是延迟等待抖动的消失或多次识别判定。 (3)重键问题 有两个或两个以上按键同时处于闭合状态的处理问题。在软件上,处理重键问题通常有连锁法与巡回法。 4×4键盘结构 9.1.2 MC68HC908GP32单片机的键盘中断模块 (1)键盘状态和控制寄存器(Keyboard Status and Control Register ,INTKBSCR) INTKBSCR包含了键盘中断请求标志、屏蔽键盘中断请求、定义键盘中断的触发方式、清除键盘中断标志等功能。其地址是$001A。 (2)键盘中断允许寄存器(Keyboard Interrupt Enable Register,INTBIER) INTBIER的各位决定所对应的引脚是否允许中断进入。地址为:$001B。 (3)键盘中断编程相关问题 要进行键盘中断方面的编程,需了解下列问题: 1)键盘中断矢量地址:$FFE0—$FFE1。 2)键盘中断初始化顺序:先设置键盘状态和控制寄存器(INTKBSCR),后设置键盘中断允许寄存器(INTKBIER)。 3)为避免键盘误中断,在键盘初始化时,建议按下列顺序: 令IMASKK=1(屏蔽键盘中断)、设置KBIEx=1(定义中断引脚)、写ACKK=1(清除键盘中断请求)、令IMASKK=0(开放键盘中断)。 也可以用下述方法: 通过DDRA定义PTAx pin为输出、写1到PTAx(使得PTAx pin为高电平)、设置KBIEx=1(定义中断引脚)。 4)注意在中断子程序中的入口和出口参数。 5)在Wait和Stop模式下,键盘中断仍可发生。 9.2 汇编语言键盘中断模块编程实例 4×4键盘与单片机接法示例 9.2.1 按键识别与键盘定义子程序 (1)键值计算方法 按上图的接法可以得出键值表,如下图。键值可以通过扫描法获得,由键值通过查表法编程得到定义值。 9.2.2 键盘中断编程举例 (1)键盘中断编程汇编主程序 (2)键盘中断编程的PC机方的VB界面与程序 9.3 08C语言键盘中断模块编程实例 9.3.1 按键识别与键盘定义函数 9.3.2 键盘中断编程08C语言举例 (1)键盘中断编程实例的08C主函数 (2)键盘中断编程实例的08C中断矢量表文件 9.4 MC68HC908GP32 MCU内部的A/D转换模块 9.4.1 A/D转换相关基础知识 A/D转换模块(Analog To Digital Convert Module)即模数转换模块的功能是将电压信号转换为对应的数字信号。实际应用中,这个电压信号可能由温度、湿度、压力等实际物理量经过传感器和相应的变换电路转化而来。经过A/D转换,MCU就可以处理这些物理量。 (1)采样精度:数字量变化一个最小量时模拟信号的变化量。 (2)采样速率:完成一次A/D采样所要花费的时间。 (3)滤波:对采样的数据进行筛选去掉误差较大的毛刺。 (4)物理量回归:把A/D采样值与实际物理量对应起来。 9.4.2 MC68HC908GP32 A/D转换模块的寄存器 (1)A/D转换状态和控制寄存器(Analog-to-Digital Status and Control Register—ADSCR) ADSCR主要功能是:选取要转换的通道、决定转换结束数据获取的方式、设置是连续转换还是一次转换。其地址是$003C。 (2)A/D转换数据寄存器(Analog-to-Digital Data Register—ADR) ADR存放A/D转换的8位结果,每次A/D转换结束更新该寄存器。编程从该寄存器读取A/D转换结果。该寄存器地址为:$003D,为只读寄存器,复位时为$00。 (3)A/D转换输入时钟寄存器(Analog-to-Digit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值