10第十讲单个按键与中断--力天手把手教你学单片机之实战篇二讲义资料.ppt

10第十讲单个按键与中断--力天手把手教你学单片机之实战篇二讲义资料.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
手把手教你学51单片机 ——之MCS-51实战篇 实战篇 第二讲 ——单个按键与中断 本讲内容提要 输入方式使用IO口 按键与单片机的接口 查询方式使用单个按键 按键消抖 MCS51的中断系统 中断相关的寄存器 外部中断的使用 温故知新 ——输出型外设与51的IO口 MCS51的IO口概述 寄存器的概念、IO口的物理模型、指标(拉电流与灌电流,是否输入上拉)、C语言位操作运算符操作IO口 LED与流水灯 发光二极管的导通压降、单片机驱动LED的应用电路 蜂鸣器 有源蜂鸣器通电即响、蜂鸣器的驱动电流5mA左右、通过三极管或数字芯片驱动蜂鸣器 继电器 继电器的原理与用途、工作电流100mA左右、三极管驱动电路 新语新知 ——输入方式使用IO口 向MCS51对应的IO口寄存器写入1,即切换到输入方式 输入方式时,IO口寄存器真实反映IO口上的物理电平输入 MCS51读取IO口的2种方式 位运算符方式: char a; a = P0 & (1 << 2); 位变量方式: sbit TEST_BIT = P0^2; a = TEST_BIT; 新语新知 ——按键与单片机的接口 按键抬起:1 按键按下:0 新语新知 ——查询方式使用单个按键 实验十四 查询方式单个按键实验 实验目的:掌握查询方式按键输入的编程方法。 实验现象:按住S3按键时蜂鸣器持续鸣响,松开则蜂鸣器关闭。 实验原理:在主函数的死循环里面不停的查询P3.3,若为低电平则开蜂鸣器,高电平则关蜂鸣器。 if(KEY_BIT == 0) {...}//按键按下 新语新知 ——按键消抖 为什么要消抖 按键按下瞬间会产生一段时间的毛刺(持续10mS左右)然后才稳定的现象,如果不加消抖措施会在程序中误判为多次按下按键 通常采取软件消抖的方法,即程序检测到按键按下后,延时10mS以上再次检测按键状态,如果状态仍然按下则为一次可靠的按下。 新语新知 ——按键消抖 实验十五 按键消抖实验 实验目的:掌握按键输入编程时加入延时消抖的原理与方法。 实验现象:按一下S3按键蜂鸣器开始鸣响,再按一下S3则蜂鸣器关闭。 实验原理:在主函数的死循环里面不停的查询P3.3,若为低电平,则延时10mS之后在查询P3.3是否仍为低电平,然后利用while语句等待按键抬起,然后改变蜂鸣器的输出状态。 新语新知 ——MCS51的中断系统 中断的概念 在程序运行期间,自动响应非预期的紧急事件的发生。通常是为了避免查询方式的程序设计。用得最多的是外部中断与定时器中断。 外部中断:按键程序 定时器中断:定时与循环扫描等应用场合 中断服务程序 中断发生时,主程序暂停,跳转到中断服务程序,称为“响应中断”。执行完毕后返回主程序继续运行。 中断服务程序不能被调用、没有返回值,编写程序时不知道会在程序的何处发生中断。 新语新知 ——MCS51的中断系统 MCS51的中断源 外部中断请求源:即外中断0和1,经由外部引脚引入的,在单片机上有两个引脚,名称为INT0、INT1,也就是P3.2、P3.3这两个引脚。在内部的TCON中有四位是与外中断有关的。 IT0:INT0触发方式控制位,可由软件进和置位和复位,IT0=0,INT0为低电平触发方式,IT0=1,INT0为负跳变触发方式。这两种方式的差异将在以后再谈。 IE0:INT0中断请求标志位。当有外部的中断请求时,这位就会置1(这由硬件来完成),在CPU响应中断后,由硬件将IE0清0。 IT1、IE1的用途和IT0、IE0相同。 内部中断请求源 TF0:定时器T0的溢出中断标记,当T0计数产生溢出时,由硬件置位TF0。当CPU响应中断后,再由硬件将TF0清0。 TF1:与TF0类似。 TI、RI:串行口发送、接收中断,在串口中再讲解。 新语新知 ——MCS51的中断系统 MCS51的中断向量表 单片机内部的中断模块在每个CPU时钟周期都查询各个中断源的状态,当其发生预期的中断事件时,通知CPU将程序跳转到中断服务程序所在的程序储存器(ROM)地址。该地址称为中断向量。 所以中断的实质仍然是查询,只是不需要使用者编程查询、不占用CPU运行时间而已。 51系列具有5个中断向量,分别位于0x03、0x0B、0x13、 0x1B、0x23五个地址中,对于5x系列还增加一个定时器2中断向量0x2B。 新语新知 ——MCS51的中断系统 MCS51中断运行的机理 以外部中断0(INT0)为例,中断模块在每个CPU时钟周期都查询IO口P3.2的状态,当输入的电平由高电平变为低电平时,CPU的程序运行会立即跳转到地址0x03。 所以要将处理INT0中断的代码放在地址为0x03开始的ROM区域。C语言中采用一类特殊的函数来实现此代码定位

文档评论(0)

youngyu0318 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档