单片机——中断和矩阵键盘
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主讲人:陶旭辉
三 . 外部中断的处 理过程
3.1 中断请求
在中断允许的情况下,单片 机收到外部的低电平或者下 降沿时,可认为外部发出了 中断请求。
外电路如何发出低电平信号 或者下降沿信号呢?
主讲人:陶旭辉
3.11 中断响应条件
在满足以下2个条件时,CPU将响应中断。
1)有中断源发出中断请求; 2)中断允许 a 中断总允许位 EA=1 ; b 发出请求的中断源被允许中断; c CPU没有在执行一个同级或者优先级更高的中断服务 程序。
主讲人:陶旭辉
矩阵键盘
一、按键的抖动与消抖 为什么要消抖 按键按下瞬间会产生一段时间的毛刺(持续10mS左右)然后才稳 定的现象,如果不加消抖措施会在程序中误判为多次按下按键 通常采取软件消抖的方法,即程序检测到按键按下后,延时 10mS以上再次检测按键状态,如果状态仍然按下则为一次可靠 的按下。
主讲人:陶旭辉
自然优先级:
低
断串 口 中
中定 断时 器
高
断外 部 中
中定 断时 器 断外 部 中 0
1
主讲人:陶旭辉
1
0
中断系统结构图
主讲人:陶旭辉
五、中断的应用
初始化步骤: a.开放CPU中断并允许有关中断源中断(IE) b.确定中断优先级(IP) c.确定中断触发方式(TCON) 配置实例: void init_int1(void)//初始化INT1 { IP = 0x00;//使用自然中断优先级 EX1 = 1;// INT1中断开 IT1 = 1;// INT1下降沿触发(为0则为低电平触发) }
0x0003
外部中断0
0x000B
定时器0
0x0013
外部中断1
0x001B
定时器1
0x0023
串口
主讲人:陶旭辉
2.1外部中断
外部中断是由外部原因(打印机,键盘,控制 开关,外部故障)引起的,可以通过两个固定 的引脚将信息输入到单片机内。 在物理层面讲,经常是通过“边沿触发”, “电平触发”,“脉冲触发”等实现的。
MCS51 程序存储器(ROM) 地址 0x0000 中断入口 复位
0x0003
外部中断0
0x000B
定时器0
0x0013
外部中断1
0x001B
定时器1
中断入口地址称为中断矢量
0x0023
串口
主讲人:陶旭辉
3.2中断处理
保护现场(在此之前关中断,在此之后开中断) 处理中断源请求 恢复现场(在此之前关中断,在此之后开中断)
中断请求
响应条件 优先级裁决 响应过程 保护现场 处理中断的请求 恢复现场
中断处理
中断返回
中断返回 中断请求的撤除
主讲人:陶旭辉
四 . 外部中断系统控制
模块概念
一个模块的应用离不开两个 东西,一个是硬件电路,个 是寄存器的配置。例如:
控制寄存器TCON
外围电路
中断 控制 系统
串行口控制寄存器SCON 中断允许寄存器IE
主讲人:陶旭辉
3.12 中断优先级裁决
如果没有重新设置中断源的优先级,则按照自然 优先级进行裁决, 如果通过中断优先级寄存器重新设置中断源的优 先级,则按照重新设定的进行裁决
主讲人:陶旭辉
3.13 中断的响应过程
优先级状态触发器置1,屏蔽同 级别以及低级别的中断源的中断 请求; 生成长调用指令(LCALL), 把断点地址压入堆栈保护,将中 断源的中断入口地址装入程序计 数器PC中,开始执行中断子 程 序。
主讲人:陶旭辉
4.2 中断允许寄存器 IE
中断允许寄存器IE的作用是控制CPU对中断 的开放或屏蔽以及每个中断源是否允许中断。
主讲人:陶旭辉
EA:CPU中断总允许位。EA=1时,CPU开放中断, CPUቤተ መጻሕፍቲ ባይዱ蔽所有中断。
EA=0时,
ES:串行口中断允许位。ES=1时,允许串行口中断,ES=0时, 禁止串行口中断。 ET1:定时器1中断允许位。ET1=1时,允许定时器1中断, ET1=0时禁止定时器1中断。 EX1:外部中断1中断允许位。EX1=1时,允许外部中断1中断, EX1=0时禁止。 ET0:定时器0中断允许位。ET0=1时,允许定时器0中断, ET0=0时禁止定时器0中断。 EX0:外部中断0中断允许位。EX0=1时,允许外部中 断0中 断,EX0=0时禁止。
主讲人:陶旭辉
3.3中断返回
1.中断返回:CPU返回程序断点处继续执行原来的程序 RETI指令: 置零优先级状态触发器, 取出断点处地址送回到PC 2.中断请求的撤除 硬件清除定时器中断请求标志TF0和TF1 软件清除串口中断请求标志T1和R1(硬件无法完成) 外部中断的清除:硬件自动清除
主讲人:陶旭辉
中断优先级控制寄存器IE
主讲人:陶旭辉
4.1 控制寄存器 TCON
定时器控制寄存器TCON的作用是控制定时器 的启动与停止,保存定时器0,定时器1的溢出 中断标志,以及选择外部中断的触发方式,保 存外部中断0,外部中断1的溢出中断标志。
主讲人:陶旭辉
定时器控制位
TF1:定时器1溢出标志位。当定时器计数满溢 出之后,硬件自动使TF1置1,申请中断。 TR1:定时器1的启动与停止控制位。 TF0:定时器0溢出标志位,功能如TF1。 TR0:定时器1的启动与停止控制位,功能如TR1。
主讲人:陶旭辉
4.3 中断优先级寄存器 IP
中断优先级寄存器IP的作用是设定各中断源的优先级别。
PS:PS=1时,串行口中断为高优先级中断。 PT1:PT1=1时,定时器1中断为高优先级中断。 PX1:PX1=1时,外部中断1中断为高优先级中断。 PT0:PT0=1时,定时器0中断为高优先级中断。 PX0:PX0=1时,外部中断0中断为高优先级中断。
主讲人:陶旭辉
2.2定时器中断 2.3串行口中断
定时中断是由定时器对单片机内部定时脉冲进行计 数而发生计数溢出时或定时器对单片机外部计数脉 冲进行计数而发生计数溢出时引起的中断。51内 部有两个定时器,定时器0及定时器1 串行口中断是为接收或发送串行数据而设置的,单 片机接收或发送完一帧数据时,硬件会自动发出中 断请求。
主讲人:陶旭辉
第三讲
中断和矩阵键盘
MCS51的中断系统 一 . 中断的概念 二 . 中断的分类 三 . 外部中断的处理过程 四 . 外部中断的系统控制 五 . 外部中断的应用实例
主讲人:陶旭辉
学习目标
掌握中断的基本概念 学会配置中断 学会使用外部中断
主讲人:陶旭辉
一、中断的概念
1.1 中断的概念
主讲人:陶旭辉
二 . 中断的分类
单片机的类型不同,其中断源 的数量和类型也不同。51单 片机的中断源有5个 ,可分 为3 类 ,分别是2个外部中 断 ,2 个定时器中断,以及 1个串行口中断。 2.1 外部中断 2.2 定时器中断(内部中断) 2.3 串行口中断
MCS51 程序存储器(ROM) 地址 0x0000 中断入口 复位
主讲人:陶旭辉
1.3中断的特点
1.3.1 提高CPU的工作效率
中断功能解决了高速工作的CPU与低速工作的外设之间的 矛盾。CPU分时启动多个外设之后,各外设与CPU并行工作, 待外设完成工作之后发出中断请求,从断点转去执行 相应的中断服务程序,结束后再继续执行主程序。
1.3.2 实现实时处理
在实时控制系统中,被控对象的各种实时参数和信息会随时 间不断变化,单片机必须及时得到这些参数和信息并进行分 析处理,有了中断系统,这些参数和信息就可以通过中断请 求的方式要求CPU及时处理。 1.33 处理故障
主讲人:陶旭辉
二、矩阵键盘电路与扫描
主讲人:陶旭辉
三、扫描的语言描述 检测第一行是否有按键按下:先将行的数据赋值为 1000,检测列的值,如果列的值是0000,则说明没 有按键按下,如果有一位不是0,则有按键按下,例如, 读取的值为0001,则第四列的按键被按下。 如果要检测其他行则将行的数据赋值为其他值如 0010 检测第三行。 为了实现扫描我们将行的值一次赋为1000、0100、 0010、0001就行了
主程序
在单片机中,当CPU在执行程序时,由 单片机内部或外部的原因引起的随机事 件要求CPU暂时停止正在执行的程序, 而转向执行一个用于处理该随机事件的 程序,处理完后又返回被中止的地方
主程序
响应中断 中断返回
中 断 服 务 程 序
中断是一个过程!
主讲人:陶旭辉
1.2中断优先级与嵌套
1.2.1 中断优先级
主讲人:陶旭辉
外部中断控制位
IE1:外部中断1请求中断标志 位。 IT1:外部中断1触发方式选择 位。当IT1=0时, 外部中 断1为低电平触发方式。当 IT1=1 时,外部中断1 为下降边沿触发方式。 IE0:外部中断1请求中断标志 位,功能如IE1。 IT0:外部中断1触发方式选择 位,功能如IT1。
通常单片机有多个中断源,我们可以按照轻重缓急 给各个中断源赋予不同的中断优先级。当两个或以 上中断源同时请求中断时,CPU可以根据优先级首 先处理优先级较高的中断请求,再处理优先级较低 的中断请求。
1.2.2 中断嵌套
当CPU在执行某一中断处理程序时,若有优先级别 更高的中断源发出中断请求,CPU会暂停去执行新 的中断处理程序,结束后再继续执行被暂停的中断 服务程序。