项目6 彩灯键盘显示控制系统电路.ppt_第1页
项目6 彩灯键盘显示控制系统电路.ppt_第2页
项目6 彩灯键盘显示控制系统电路.ppt_第3页
项目6 彩灯键盘显示控制系统电路.ppt_第4页
项目6 彩灯键盘显示控制系统电路.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、项目6 彩灯键盘显示控制系统电路,学习目标,通过本项目的学习,能够熟练阐述键盘中断模块(KBI)的特点;能够阐述端口A作为键盘中断模块(KBI)的用法;能够熟悉键盘状态和控制寄存器(KBI1SC)的配置;能够熟悉键盘使能寄存器(KBI1PE)的配置;能够应用键盘中断模块(KBI)编写相关的应用程序。,学习要求,能够熟练阐述键盘中断模块(KBI)的特点 能够阐述端口A作为键盘中断模块(KBI)的用法 能够熟悉键盘状态和控制寄存器(KBI1SC)的配置 能够熟悉键盘使能寄存器(KBI1PE)的配置 能够应用键盘中断模块(KBI)编写相关的应用程序,项目导入,由飞思卡尔MC9S08GB60单片机组成

2、最小应用系统,用4个数字键控制选择彩灯的8种变化,并用LED数码管显示器显示键号,彩灯是由16个LED发光二极管组成的彩灯阵列。如图6-1所示。,项目导入,项目分析,1用最少的元器件构成一个单片机的最小应用系统。 2利用单片机静态显示数码管的方法显示按键号。LED数码管的段输入由MC9S08GB60单片机的端口B控制,位输入由该单片机的端口F的PTF7控制。 3按键采用独立式按键,分别连接到MC9S08GB60型单片机的键盘中断模块(与端口A共享引脚)。 3MC9S08GB60型单片机的端口C和端口D分别与16个发光二极管连接,实现彩灯的的闪烁。 在动手实现彩灯键盘显示控制系统电路之前,首先学

3、习MC9S08GB60型单片机的键盘中断模块的相关知识及其寄存器的配置。,相关知识,6.1 键盘中断模块的概述 6.2 键盘中断模块的应用,6.1 键盘中断模块的概述,键盘是由若干个按键组成的开关矩阵,它是最简单的单片机的数字量输入设备,操作员通过键盘输入数据或命令,实现简单的人机通信。键盘的基本电路是一个接触开关,通、断两种状态分别表示0和1,如图6-2所示的简单按键电路,单片机很容易检测到开关的闭合。当开关打开时,提供逻辑“1”;当开关闭合时,提供逻辑“0”。,6.1 键盘中断模块的概述,6.1 键盘中断模块的概述,按键盘的排布方式可分为独立键盘和矩阵键盘。独立键盘是指将每个独立按键按一对

4、一的方式直接接到I/O输入线上,读键值时直接读I/O口,每一个键的状态通过读入键值来反映。矩阵键盘是用n条I/O线组成行输入口,m条I/O线组成列输出口,在行列线的每一个交点上设置一个按键,读键值方法一般采用扫描方式,即输出口按位轮换输出低电平,再从输入口读入键值信息,最后获得键码。,6.1 键盘中断模块的概述,按键盘的编码方式可分为编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如BCD码键盘、ASCLL码键盘等;而靠软件来识别的称为非编码键盘。一般地,由单片机组成的各种控制系统和仪器中,都是非编码键盘。,6.1 键盘中断模块的概述,键盘中

5、断是指以一个或两个以上的按键事件作为外部中断的中断源,从而使程序流程进入相应中断服务程序以实现中断实时控制的一种中断方法。它也可作为一种唤醒手段,即是键盘中断将CPU从“停止”或“等待”等低功耗模式唤醒的一种手段。,6.1 键盘中断模块的概述,概括地说,键盘中断(KBI)模块具有以下的特点: 4个“下降沿/低电平“方式触发 4个“下降沿/低电平”方式触发或“上升沿/高电平”方式触发 可编程的“仅边沿”或“边沿和电平”触发方式 通用的中断标号和中断使能控制 从停止模式或等待模式下唤醒的功能,6.1 键盘中断模块的概述,键盘中断(KBI)模块包含2个寄存器,分别是键盘状态和控制寄存器(KBI1SC

6、)和键盘使能寄存器(KBI1PE)。它们控制和显示该模块的相关信息,图6-4为键盘中断模块的内部结构图。,6.1 键盘中断模块的概述,6.1 键盘中断模块的概述,键盘中断模块允许KBI1PE寄存器的8个控制位KBI1PEn用于设置是否开放端口A的8个引脚的键盘中断功能,从图6-4可知,当KBI1PEn=1时,允许相应引脚用作键盘中断,允许其中断请求,同时也接通与引脚对应的内部上拉电阻;当KBI1PEn=0时,禁止该引脚的键盘中断,引脚与键盘中断模块无关,只作一般的输入输出I/O端口使用。此时,端口A可由数据寄存器(PTAD)、数据方向寄存器(PTADD)、上拉使能寄存器(PTAPE)等寄存器配

7、置。,6.1 键盘中断模块的概述,在处理键盘中断事件时,需要对中断请求进行清除,以便响应下一次的键盘中断。为避免一次请求导致多次响应与多次服务的错误操作,因此,一旦CPU响应中断就会发出应答信号并清除键盘中断请求。中断请求的清除方法有以下两种: 1中断向量的预取 中断向量是一个地址信息,该地址操作数的取得将产生一个中断确认信号从而清除中断请求。 2软件清除 软件可以通过向键盘状态和控制寄存器的KBACK位中写一个逻辑1产生中断确认信号,并且清除中断请求。在退出中断服务程序前,KBACK位写1可以防止因噪声干扰产生的伪中断,而且置位KBACK也不会影响后续其他键盘中断引脚的传输。KBACK位置1

8、后的下降沿将产生另一个中断请求,如果键盘中断请求位KBIE已被清除,则CPU就会将$FFD2和$FFD3的中断向量地址装入程序计数器。,6.1 键盘中断模块的概述,6.1.1 键盘状态和控制寄存器(KBI1SC) 该寄存器控制和显示键盘中断模块的相关选项及其状态。如图6-5所示。,6.1 键盘中断模块的概述, KBEDGn-键盘边沿选择位(n=74) 当端口的第47引脚被配置为键盘中断输入时(KBIPEn=1),每一个读写控制位都可以选择边沿/电平的极性,同时也受KBIMOD位控制,因为KBIMOD位决定是采用“仅边沿”触发还是采用“边沿/电平”触发。该位有2种状态: 1上升沿/高电平 0下降

9、沿/低电平,6.1 键盘中断模块的概述,KBF-键盘中断标志位 该位是只读位,当键盘中断输入引脚检测到有触发信号时,键盘中断标志位将被置位,写1到KBACK控制位将清除该标志位。如果位KBIE0时,则位KBF可作为软件查询标志;如果位KBIE1时,则产生硬件中断请求。该位有2种状态: 1键盘中断挂起 0无键盘中断挂起,6.1 键盘中断模块的概述,KBACK-键盘中断应答位 当写1至KBACK位将清除标志位KBF,如上述例子。当设置满足下面三个条件:“边沿/电平”触发方式、位KBIMOD1、键盘中断引脚仍处于低电平时,位KBF将一直置位,这时写1到位KBACK将不能清除KBF标志位。,6.1 键

10、盘中断模块的概述,KBIE-键盘中断请求位 该位是可读可写位,当KBF标志位置1时,该位决定是否产生硬件中断,当KBIE为0时,无硬件中断请求,但KBF标志位可被软件查询。该位有2种状态: 1当KBF标志位等1时使能硬件中断请求 0禁止硬件中断请求,可用于软件查询,6.1 键盘中断模块的概述,KEIMOD-键盘触发方式选择位 该位是可读可写位,既可选择“仅边沿”方式触发,也可选择“边沿/电平”“方式触发。注意,端口A的第03位引脚(n0-3)可配置为“仅下降沿”方式触发或者“下降沿/低电平”方式触发;端口A的第03位引脚(n4-7)可配置为以下的触发方式:“仅上升沿”或“上升沿和高电平”(当K

11、BEDGn1时)、“仅下降沿”或“下降沿和低电平”(当KBEDGn0时)。该位有2种状态: 1边沿/电平检测方式 0仅边沿检测方式,6.1 键盘中断模块的概述,6.1.2 键盘使能寄存器(KBI1PE) 该寄存器是用于设置是否开放端口A的8个引脚的键盘中断功能,端口A是用作键盘中断输入还是通用输入输出I/O接口,是由该寄存器的各个位控制。如图6-6所示。,6.1 键盘中断模块的概述,KBEPEn-键盘中断输入引脚使能位(n0-7) 该寄存器的每一个控制位既可读也可写,它将决定端口A是否采用键盘中断输入功能。该位有2种状态: 1启动键盘中断输入功能 0禁止键盘中断输入功能,即采用通用I/O接口功

12、能,6.1 键盘中断模块的概述,例:端口A的PTA0-PTA3引脚配置为键盘输入功能,其他引脚配置为通用I/O接口。分别用汇编语言和C语言实现。,6.1 键盘中断模块的概述,汇编程序: LDA #$0F ;把十六进制立即数0F传送给累加器A中,即03引脚配置为键盘输入功能,通用I/O接口 STA KBEPE ;把累加器的内容传送给KBEPE寄存器 C语言程序: KBEPE= 0 x0f;/十六进制立即数0F传送给KBEPE寄存器,6.2 键盘中断模块的应用,应用键盘中断模块设计单片机应用系统时,一般要在系统初始化子程序中进行键盘初始化。当一个键盘中断引脚被启动,它要求一定时间来使内部搞高至逻辑

13、电平1,因此一个伪中断可能在引脚被启动时发生。,6.2 键盘中断模块的应用,为了防止这个初始化时的伪中断,键盘初始化可按照以下步骤进行: 用置位键盘状态与控制寄存器的KBIE位的方法禁止键盘硬件中断。 用置位键盘使能寄存器的KBIPEn位的方法启动键盘中断引脚。 写入键盘状态与控制寄存器的KBIACK位的方法清除任意伪中断。 清除键盘状态与控制寄存器的KBIE位。,6.2 键盘中断模块的应用,例: 功能和要求:端口A配置为键盘中断输入功能,外接按键AN0-AN7,端口B配置为输出端口,外接LED指示灯LED0-LED1,按下按键AN0则LED0亮,松开按键则灯灭;按下按键AN1则LED1亮,松

14、开按键则灯灭-按下按键AN7则LED7亮,松开按键则灯灭,如图6-7所示。分别用汇编语言和C语言实现。,6.2 键盘中断模块的应用,6.2 键盘中断模块的应用,分析:根据原理图和LED的基础知识,要使连接在PTB引脚上的LED灯亮,必须让PTB输出低电平;另外,按键接在PTA引脚上,所以必须有按键程序,本例是应用键盘中断模块来识别按键盘的,如图6-8所示。下面分别用汇编语言程序和C语言程序实现上述要求:,6.2 键盘中断模块的应用,6.2 键盘中断模块的应用,1. 汇编源程序: INCLUDE derivative.inc XDEF _Startup, main XREF _SEG_END_S

15、STACK ;- MY_ZEROPAGE: SECTION SHORT ;定义变量区 ;-,6.2 键盘中断模块的应用,ORG $FFD2 ; 键盘中断矢量地址 _vect: DC.W isrVkeyboard1 ;- MyCode: SECTION ;代码区 main: ;主程序 _Startup: LDHX #_SEG_END_SSTACK,6.2 键盘中断模块的应用,TXS JSR MCU_init ;初始化 mainLoop: MOV #$FF,PTBD ;灯灭 NOP ;可加入其他的代码 BRA mainLoop,6.2 键盘中断模块的应用,;- MCU_init: ;初始化子程序

16、; KBI1SC: KBIE=0 BCLR $01,KBI1SC ;先禁止键盘硬件中断 LDA KBI1SC ;使PTA7-PTA4下降沿/低电平有效 AND #$0F ORA #$01 ;边沿触发和电平触发 STA KBI1SC MOV #$FF,KBI1PE ; 键盘中断输入使能 BSET $02,KBI1SC ; KBI1SC: KBACK=1 BSET $01,KBI1SC ; KBI1SC: KBIE=1,6.2 键盘中断模块的应用,MOV #$FF,PTBD MOV #$FF,PTBDD CLI ; 使能中断 RTS,6.2 键盘中断模块的应用,;* = XDEF isrVkeyb

17、oard1 ;键盘中断子程序 isrVkeyboard1: BSET 2,KBI1SC BRCLR 0,PTAD,KEY_0 BRCLR 1,PTAD,KEY_1 BRCLR 2,PTAD,KEY_2 BRCLR 3,PTAD,KEY_3 BRCLR 4,PTAD,KEY_4 BRCLR 5,PTAD,KEY_5 BRCLR 6,PTAD,KEY_6 BRCLR 7,PTAD,KEY_7 RTI,6.2 键盘中断模块的应用,KEY_0: BCLR 0,PTBD RTI KEY_1: BCLR 1,PTBD RTI KEY_2:,6.2 键盘中断模块的应用,BCLR 2,PTBD RTI KEY

18、_3: BCLR 3,PTBD RTI KEY_4: BCLR 4,PTBD RTI KEY_5: BCLR 5,PTBD RTI,6.2 键盘中断模块的应用,KEY_6: BCLR 6,PTBD RTI KEY_7: BCLR 7,PTBD RTI,6.2 键盘中断模块的应用,2. C语言源程序: #include #include derivative.h _interrupt void isrVkeyboard1(void); void (* near const _vect)(void) 0 xFFD2 = isrVkeyboard1 /键盘中断入口地址 ;,6.2 键盘中断模块的应用,void init(void) /初始化子程序 KBI1SC /开中断 ,6.2 键盘中断模块的应用,_interrupt void isrVkeyboard1(void) /中断子程序 KBI1SC=KBI1SC|KBI1SC_KBACK_MASK; /清除中断标志

温馨提示

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

评论

0/150

提交评论