没有合适的资源?快使用搜索试试~ 我知道了~
并行数字输入输出端口中断的使用
资源推荐
资源详情
资源评论
第 6 章 并行数字输入输出端口中断的使用 —
—按键电路的设计
目标
通过本章的学习,应掌握以下知识
● 中断的概念和工作过程
● MSP430 微控制器芯片支持的中断类型
● 中断服务程序的结构
● 按键开关
● 独立式键盘的原理电路
● MSP430 微控制器芯片的并行输入/输出端口涉及中断的相关寄存器
● 字节操作运算符
● 条件语句
● 多个数据的输入方法
引言
信号处理是电子线路的一项主要的工作。处理信号必须具有一个被处理的对象,也就
是需要使用某种方式将被处理的信号引入电路。在数字系统中,键盘是一种常见的信息输
入工具。组成键盘的按键开关具有两种工作状态,因此通过按键开关的断开,或者接通,
就能够完成数字量 0,或者 1,两种取值的输入。
组成电路以后,按键开关的断开和接通可以用高电平和低电平这 2 种数字电路的工作
状态反映出来。这样将按键电路与 MSP430 微控制器芯片的输入/输出管脚连接起来,通
过读取管脚的状态就能够判断按键开关是否动作,从而接收外部输入的信息。
按键开关组成键盘的电路形式常用的有独立式键盘电路和矩阵式键盘电路两种。独立
式键盘电路无论电路结构,还是它的识别程序都比较简单。矩阵式键盘电路的优点是对微
控制器芯片的输入/输出管脚的占用数量较少。作为一本入门书籍,本章只涉及独立式键
盘电路。
键盘电路的处理时间只占用微控制器工作时间非常少的部分,同时键盘的使用还是随
机的,这样让微控制器不断地读取按键的工作状态,显然降低了系统对其它信号的处理速
度。中断的概念非常适合按键工作状态的识别。
1
6.1 按键开关
当需要向微控制器传送命令,或者输入数据时,键盘通常被使用。键盘是一组按键开
关的集合。像数码管一样,键盘也是应用系统的一个重要组成部分。
按键开关具有 2 个状态,闭合或者断开。组成合适的电路,这 2 个状态反映在电压上
就是按键开关分别呈现出高电平,或者低电平。在数字电路中,这两个电平分别用来表示
数据 1,或者 0。如果按键开关断开,呈现高电平,那么按键开关闭合,就将呈现低电平。
反之亦然。通过检测按键开关呈现的电平状态,就可以确认按键开关是否被按下,微控制
器由此可以从外部获取信息。
通常使用的按键开关为机械式弹性开关。它们利用金属触点的接触,或者断开,实现
开关的闭合,或者断开。直流电压通过机械触点的闭合、断开过程所产生的电压波形如图
6.1 所示。
图 6.1 按键开关产生的信号波形图
由于金属触点的弹性作用,按键开关在闭合时不会立刻“稳定”地接通,在断开时也不
会一下子断开。在闭合和断开的瞬间都将伴随着一连串的抖动,抖动的时间取决于按键的
机械特性,这个时间一般为 5~10ms。按键开关的闭合时间取决操作者的习惯,一般为十
分之几秒到几秒之间。为了确保微控制器对一次按键动作能确认为一次按键,不会被误认
为多次按键动作,抖动的影响必须被消除。消除按键抖动的方法有采用硬件电路的方法和
利用软件编程的方法。
按键开关组成键盘的方式分为独立式键盘和矩阵式键盘两种方式。前者电路结构和软
件结构都比较简单,但是这时每一个按键开关需要占用一个微控制器芯片的输入 /输出管
脚。后者能够在占用较少的微控制器芯片输入/输出管脚的条件下,连接较多的按键开关。
例如一个 3×3 的矩阵式键盘包含 9 个按键开关,只需要使用 6 个微控制器芯片输入/输出
管脚;一个 4×4 的矩阵式键盘包含 16 个按键开关,只需要使用 8 个微控制器芯片输入/输
出管脚。随着矩阵规模的增大,微控制器芯片输入/输出管脚数量节省的效果更加明显。
如果使用的键盘包含按键开关数量较少,独立式键盘占用的微控制器输入/输出管脚
数量是可以接受的。微控制器应用电路的大多数满足这种情况。作为一本 MSP430 微控制
器的入门级书籍,本章只涉及独立式键盘的设计,因为这种键盘的电路结构和软件结构都
比较简单。
2
图 6.2 1 位按键的原理电路图
1 位独立式按键的原理电路如图 6.2 所示。当按键开关 KEY 断开时,由于 MSP430 微
控制器芯片管脚的输入阻抗很大,比电路中电阻 R1 的阻值大得多,因此这时芯片管脚呈
现高电平;当按键开关 KEY 闭合时,因为这时芯片管脚被直接对地短路,所以与之连接
的芯片管脚呈现低电平。由按键断开,或者闭合,使对应的管脚呈现高电平,或者低电平 ,
完成向微控制器芯片输入信息。
电路中的电阻 R1 用于限流,防止在按键闭合时电源被短路。限流电阻 R1 的取值不
能太小,因为按键开关 KEY 闭合时太小的电阻将导致电源输出电流很大。限流电阻 R1 的
取值也不能太大,虽然这样按键闭合时电流较小,但是也可能在按键断开时芯片管脚上的
电位低于最低逻辑高电平。
电路中的电容 C1 用来消除按键抖动。由于电容上的电压不能突变,当按键开关 KEY
被按下,电容逐渐放电;当按键开关 KEY 断开,电容逐渐充电。这样在一定程度上抑制
了按键抖动。这是一种简单的硬件去抖动电路。
6.2 中断
6.2.1 中断的概念
MSP430 系列微控制器属于程序控制式计算机,它的工作过程是在程序控制器的控制
下逐条执行程序指令的过程。微控制器识别按键开关的一种方法是在程序的控制下读取连
接按键开关的管脚的状态,由此来判定是否有按键开关被按下。如前所述,按键开关的闭
合时间取决操作者的习惯,一般为十分之几秒到几秒之间。这就需要以最短的按键闭合保
持时间为时间间隔,不断地停止微控制器正在进行的工作,不断地去读取管脚的状态,并
判断是否有按键开关被按下,从而使得系统工作效率降低。另外,在程序中插入按一定时
间间隔读取管脚状态的语句块也将使得程序结构变得复杂。
微控制器应用系统中键盘的使用并不是很频繁的。如果能够在有按键开关被按下时,
微控制器来处理键盘的识别以及处理,没有按键开关被按下时,微控制器连续地进行程序
设定的任务处理,这样将大大地提高工作效率。MSP430 系列微控制器的中断系统就是为
了使它具有处理这样类似的要求而设置的。像键盘中按键开关动作这样随机出现的情况被
称作为外界异步事件。
3
当微控制器正在程序控制器的控制下处理设定的任务,如果外界发生了外界异步事件
的处理请求,微控制器这时需要暂停正在处理的设定任务,转去处理这个突发的紧急事件 。
在这个外界异步事件被处理以后,微控制器应该回到刚才暂停的地方,继续进行设定任务
的处理。上述的工作过程被称作为微控制器的中断处理过程,实现这个过程的微控制器内
部电路被称作为微控制器的中断系统,请求微控制器执行中断处理过程的信号被称作为微
控制器的中断信号源。
MSP430 系列微控制器支持多个中断信号源。当响应一个中断信号源所产生中断请求
时,中断系统将强制程序控制器跳转到一个“指定”的程序存储器地址,并执行以这个地址
为首地址的中断信号处理程序,也被称作为中断服务程序。
MSP430 系列微控制器的不同中断信号源具有不同的中断服务程序首地址,这个中断
服务程序首地址也被称作为中断矢量。不同型号的 MSP430 微控制器芯片具有不同数量的
中断信号源,当然也就存在不同数量的中断矢量。以 MSP430G2231 芯片为例,在头文件
msp430g2231.h 包括了该芯片支持的中断信号源对应的中断矢量的声明。这里建立了中断
矢量名称与对应地址之间的联系。
/**********************************************************************
* Interrupt Vectors (offset from 0xFFE0)
**********************************************************************/
#define PORT1_VECTOR (2 * 2u) /* 0xFFE4 Port 1 */
#define PORT2_VECTOR (3 * 2u) /* 0xFFE6 Port 2 */
#define USI_VECTOR (4 * 2u) /* 0xFFE8 USI */
#define ADC10_VECTOR (5 * 2u) /* 0xFFEA ADC10 */
#define TIMERA1_VECTOR (8 * 2u) /* 0xFFF0 Timer A CC1, TA */
#define TIMERA0_VECTOR (9 * 2u) /* 0xFFF2 Timer A CC0 */
#define WDT_VECTOR (10 * 2u) /* 0xFFF4 Watchdog Timer */
#define NMI_VECTOR (14 * 2u) /* 0xFFFC Non-maskable */
#define RESET_VECTOR (15 * 2u) /* 0xFFFE Reset [Highest Priority]
*/
由芯片的头文件声明的中断矢量能够获得该芯片所支持的中断信号源,以及中断矢量
的名称信息。例如这里给出的并行输入/输出端口 P1 中断矢量名称,PORT1_VECTOR;
并行输入/输出端口 P2 中断矢量名称,PORT2_VECTOR。
上面列出的这些中断信号源可以分为 3 种类型。第一种为 MSP430 微控制器复位引起
的中断。中断矢量名称为 RESET_VECTOR,它指定微控制器控制程序的第一句指令的存
放地址,也就是 C 语言源程序主函数 main()的首地址。如何将主函数 main()放在以
“RESET_VECTOR”中断矢量开始的程序存储器之中,对于采用 C 语言进行编程是不需要
过分关注,这项工作将由开发软件完成。
4
剩余19页未读,继续阅读
资源评论
shisien
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功