ImageVerifierCode 换一换
格式:PPT , 页数:62 ,大小:760.50KB ,
资源ID:1928616      下载积分:14 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1928616.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(单片机按键模块设计.ppt)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

单片机按键模块设计.ppt

1、单元5 按键模块设计1精选回顾 1,数码管显示原理?,数码管显示原理?2,静态数码管工作原理?,静态数码管工作原理?3,动态数码管工作原理?,动态数码管工作原理?4,AT89C51有几个定时器?有几个定时器?各是多少位的?各是多少位的?请请简述定时器实现定时原理?简述定时器实现定时原理?5,8051单片机定时单片机定时/计数器工作方式有多少种?计数器工作方式有多少种?6,如何设置,如何设置8051单片机工作在定时单片机工作在定时/计数模式下?计数模式下?7,如何启动定时器工作?,如何启动定时器工作?8,请简述,请简述DS1302读取时间的编程过程?读取时间的编程过程?2精选本单元任务p任务1

2、独立式键盘设计 p任务2 键盘中断设计p任务3 矩阵式键盘设计p任务4 多个外部中断设计3精选任务1 独立式键盘设计 任务描述:任务描述:任务分析:任务分析:众多嵌入式单片机系统、嵌入式单片机产品设备中,键盘模块都是众多嵌入式单片机系统、嵌入式单片机产品设备中,键盘模块都是必不可少的,比如手机及各种智能家电等。本任务通过按键控制点亮流水必不可少的,比如手机及各种智能家电等。本任务通过按键控制点亮流水灯(灯(8个按键分别对应控制个按键分别对应控制8个个LED),学习最简单的键盘),学习最简单的键盘独立式按键设独立式按键设计方法。计方法。键盘实际上是一组开关的集合:当键按下时,两根导线接通;释放键

3、盘实际上是一组开关的集合:当键按下时,两根导线接通;释放时,两根导线不通。时,两根导线不通。8个按键的键盘电路可考虑在个按键的键盘电路可考虑在P2口上设计,口上设计,8个个LED电电路仍然安装在单片机路仍然安装在单片机P1口。口。8个按键分别对应控制个按键分别对应控制8个个LED,按下按键则点,按下按键则点亮对应的灯。亮对应的灯。4精选独立式键盘工作原理及应用 n独立式键盘的组成是由若干个按键与单片机的I/O口一一的对应连接,然后通过读取单片机I/O的电平状态来确认哪个对应的按键被按下,一般一个独立式按键对应一个功能,可以通过按键的组合来实现多个功能。P2.0P2.1P2.2P2.3P2.4P

4、2.5P2.6P2.7key1key2key3key0key4key5key6key75精选q抖动:抖动:当用手按下一个键时,往往出现按键在闭合和断开位置之间当用手按下一个键时,往往出现按键在闭合和断开位置之间来回跳动多次才能到闭合稳定状态的现象;在来回跳动多次才能到闭合稳定状态的现象;在 释放一个键时,也释放一个键时,也会出现类似的情况,这种情况就是抖动。按下一个键时产生前沿抖会出现类似的情况,这种情况就是抖动。按下一个键时产生前沿抖动,释放一个键时产生后沿抖动。抖动的持续时间随键盘簧片的材动,释放一个键时产生后沿抖动。抖动的持续时间随键盘簧片的材料和操作员而异,通常在料和操作员而异,通常在

5、510ms。而。而510ms已经对程序进行多已经对程序进行多次循环扫描执行,显而易见,抖动问题不解决,就会引起对闭合键次循环扫描执行,显而易见,抖动问题不解决,就会引起对闭合键的多次识别。的多次识别。键按下前沿抖动后沿抖动闭合稳定6精选应用举例:例5-1 7精选#includeAT89X51.Hvoid main()while(1)if(P2_0=0)/判断判断key0被按下被按下key_delay();/去抖延时去抖延时10msif(P2_0=0)/再次判断再次判断key0按下按下while(!P2_0);/等待闭合释放等待闭合释放P1_0=0;/点亮点亮LEDif(P2_1=0)/判断判断

6、key1被按下被按下key_delay();/去抖延时去抖延时10msif(P2_1=0)/再次判断再次判断key1按下按下while(!P2_1);/等待闭合释放等待闭合释放P1_0=1;/熄灭熄灭LED 8精选n1.Proteus电路设计 n2.Keil C51程序设计 n3.Proteus-Keil联合调试仿真 任务实施9精选硬件电路图10精选n(1)程序流程由独立式键盘工作原理得知,按键是否按下是通过读取按键对应的IO的电平变化而判断的,在程序设计上,即通过读取按键对应IO口的电平是否为低(软件去抖)来决定哪个按键被按下,当判断key0被按下,则点亮LED0;当判断key1被按下,则点

7、亮LED1。11精选n主程序设计:主程序设计:#includeAT89X51.Hunsigned char code led_light=0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F;/点亮点亮LED对应的编码对应的编码void main()while(1)if(P2_0=0)/判断判断key0被按下被按下key_delay();/去抖延时去抖延时10msif(P2_0=0)/再次判断再次判断key0按下按下while(!P2_0);/等待闭合释放等待闭合释放P1=led_light0;/点亮点亮LED0if(P2_1=0)/判断判断key1被按下被按下key

8、delay();/去抖延时去抖延时10msif(P2_1=0)/再次判断再次判断key1按下按下while(!P2_1);/等待闭合释放等待闭合释放P1=led_light1;/点亮点亮LED1;12精选n运行Proteus-Keil联合调试仿真 13精选任务2 键盘中断设计 任务描述:任务描述:任务分析:任务分析:项目组掌握独立式键盘设计后,现要求用项目组掌握独立式键盘设计后,现要求用1个按键控制流水灯运行样个按键控制流水灯运行样式,初始时式,初始时8个个LED按从头到尾方式循环运行,当按下按键,首尾两灯点亮按从头到尾方式循环运行,当按下按键,首尾两灯点亮向中间,到中间后返回首尾的循环运行

9、再次按下按键又转为从头到尾循向中间,到中间后返回首尾的循环运行,再次按下按键又转为从头到尾循环运行环运行,即,即1个按键交替切换流水灯的两种运行样式。个按键交替切换流水灯的两种运行样式。此任务设计有两个主要功能模块,一是按键的判断,二是此任务设计有两个主要功能模块,一是按键的判断,二是LED流水流水灯的运行。通过前面单元的学习得知,这两个功能在主程序中无限循环判灯的运行。通过前面单元的学习得知,这两个功能在主程序中无限循环判断执行,正常人完成一次按键的时间需要断执行,正常人完成一次按键的时间需要20ms,而,而LED流水灯运行频率应流水灯运行频率应小于小于50Hz(即应大于(即应大于20ms

10、走一个灯,否则运行太快人眼无法识别),那走一个灯,否则运行太快人眼无法识别),那么如果单片机么如果单片机CPU在执行流水灯显示延时程序期间,正好发生按键,在执行流水灯显示延时程序期间,正好发生按键,CPU无法运行按键扫描程序而导致按键判断的丢失,如果无法运行按键扫描程序而导致按键判断的丢失,如果1s或更长时间走一个或更长时间走一个灯,那么丢失按键的现象将更加严重。由此可见普通的程序查询独立式按灯,那么丢失按键的现象将更加严重。由此可见普通的程序查询独立式按键设计方法在此任务设计是无法胜任的。本任务将介绍单片机重要的内部键设计方法在此任务设计是无法胜任的。本任务将介绍单片机重要的内部资源资源中断

11、系统,它将有效解决上述问题。中断系统,它将有效解决上述问题。14精选1,中断的概念n【例5-2】电路如5-10示,8个LED流水灯安装在P1口,按键K0安装在P2.0上,采用独立式按键识别,实现任务描述中要求的功能。程序分析:主程序有两个功能模块,一方面按键判断程序,另一方面LED流水灯程序。由于按键是两种流水灯运行方式的交替按键,因此可考虑设置按键控制标志位状态,LED流水灯则判断标志位状态决定运行方式,即按键通过标志位间接控制LED流水灯的运行方式。每次按下按键则把标志位取反,以达到控制LED流水灯的运行。15精选16精选17精选void main()while(1)if(P2_0=0)/

12、判断判断key0被按下被按下key_delay();/去抖延时去抖延时10msif(P2_0=0)/再次判断再次判断key0按下按下while(!P2_0);/等待闭合释放等待闭合释放i=0;/编码下标编码下标i清清0run_flag=run_flag;/标志位取反标志位取反if(run_flag=0)/判断判断LED运行标志位运行标志位 P1=led_light1i+;/点亮点亮LED流水灯流水灯led_delay();/点亮延时点亮延时if(i=8)i=0;elseP1=led_light2i+;/点亮点亮LED流水灯流水灯led_delay();/点亮延时点亮延时if(i=7)i=0;1

13、8精选2,8051单片机中断系统结构 19精选n(1)哪些事件可以引发中断哪些事件可以引发中断 8051单片机有5个中断源。q外部中断0():由连接在P3.2引脚的外部信号触发q定时/计数器0(T0)溢出中断q外部中断1():由连接在P3.3引脚的外部信号触发q定时/计数器1(T1)溢出中断q串行口中断:由发送中断TXD和接收中断RXD组成当它们有中断请求发出时,将相应的中断标志IE0、TF0、IE1、TF1、TI、RI自动置位,单片机CPU根据中断标志位情况判别是哪个中断源发出的中断请求。中断标志位存放在特殊功能寄存器TCON、SCON中。20精选n(2)中断标志中断标志 TCON 21精选

14、SCON 22精选n(3)中断允许与禁止中断允许与禁止 IE23精选q(1)EA:总中断允许控制。当EA=1时,开放所有中断,此时各中断源的允许和禁止通过相应的中断允许位单独加以控制;当EA=0时,禁止所有中断。q(2)ES:允许或禁止串行口中断控制位。ES=1,允许中断;ES=0,禁止中断。q(3)ET1:允许或禁止定时器T1溢出中断控制位。ET1=1,允许中断;ET1=0,禁止中断。q(4)EX1:允许或禁止中断控制位。EX1=1,允许中断;EX1=0,禁止中断。q(5)ET0:允许或禁止定时器T0溢出中断控制位。ET0=1,允许中断;ET0=0,禁止中断。q(6)EX0:允许或禁止中断控

15、制位。EX0=1,允许中断;EX0=0,禁止中断。24精选n(4)中断的响应条件中断的响应条件首先中断源有请求。其次编程设置单片机CPU允许所有中断源请求(EA=1),并且中断允许寄存器IE相应位置为1。这样,在每个机器周期内,单片机对所有中断源进行顺序检测,并找到所有有效的中断请求,对其优先级排队。单片机在紧接着下一个机器周期响应中断条件是:1无同级或更高级中断占用CPU控制权;2当前指令执行完毕;3如果当前指令为RETI或需访问IE、IP的指令,执行完该指令且紧随其后的一条指令也已执行完毕。否则,单片机将放弃对中断请求的响应。25精选n(5)中断响应过程中断响应过程 中断的响应过程由单片机

16、CPU控制,自动完成,具体有如下几个步骤:q执行一个硬件子程序调用,处理优先级最高的中断请求,清除中断请求标志位(TI和RI除外);硬件子程序将单片机当前执行的内容的地址压入堆栈,转入执行相应中断服务程序的第一条指令。q中断处理程序从入口地址开始一直执行到最后为止;q系统返回原来被打断的程序处开始继续执行。26精选3,中断编程结构 n(1)编写中断初始化程序 为使单片机CPU在执行主程序过程中能够响应中断,就必须先对使用中断的相关寄存器(TMOD、SCON、IE等)进行初始化。【例5-3】假设单片机系统允许外部中断0、定时/计数器T0中断,并设定采用边沿触发,则主程序中的中断初始化程序如下:I

17、T0=1;/设置为下降沿触发EX0=1;/允许中断ET0=1;/允许T0中断EA=1;/开放所有中断 27精选n(2)编写中断服务程序 q中断程序入口。C51规定了8051单片机每种中断类型对应中断服务程序的入口编号中断类型中断类型C51中断处理程序的中中断处理程序的中断号断号外部中断00定时/计数器0溢出中断1外部中断12定时/计数器1溢出中断3串行口中断428精选q现场保护。如果中断服务程序中要使用与主程序有关的寄存器,那么CPU在执行中断服务程序之前要保护这些寄存器的内容,即“保护现场”,中断返回时再恢复它们的值。在使用Keil uVison4集成开发环境时,其C51编译器为中断服务程序

18、提供自动现场保护以及返回时内容恢复的功能,为用户编程提供了方便。29精选常用的中断服务程序的结构如下。void 中断程序名()interrupt 中断号 using n ;其中“中断程序名”最好依据中断服务程序的功能,取一个比较直观浅显的名称;“interrupt”是中断服务程序的关键字;“中断号”则根据表5-1所示,如果使用外部事件0中断,则“中断号”为0;using定义工作寄存器组;n为寄存器组编号(03),默认为0;“”内部为中断服务要执行的程序。30精选4,按键与外部事件中断(1)IT0:设置为1,选择外部中断0由下降沿触发,即当出现一个下降沿表示有一个外部中断0的请求信号。为什么将I

19、T0设置为1呢?任务1学习得知(图6-3),按键按下将会产生一个从高电平到低电平的边沿跳变(称为“下降沿”),按键松开产生从低电平到高电平的边沿跳变(称为“上升沿”)。因此1次按键信号(产生一次下降沿)正好转化成外部中断0信号。(2)IE0:无需初始,它由硬件自动设置。(3)EX0:设置为1,即允许CPU响应外部中断0请求。(4)EA:设置为1,允许CPU响应所有中断请求。31精选n1.Proteus电路设计 n2.Keil C51程序设计 n3.Proteus-Keil联合调试仿真 任务实施32精选硬件电路图33精选n(1)程序流程主程序根据标志位状态,无限循环执行LED流水灯程序;按键的判

20、断转化成中断处理,按下按键则意味着一次中断事件发生,单片机处理按键任务,即跳转到INT0中断处理程序中,交替将LED流水灯标志位置1/清0。34精选主程序设计:主程序设计:void main()IT0 =1;/设置外部中断设置外部中断0触发方式位,触发方式位,1为边沿触发为边沿触发EX0=1;/外部中断外部中断0中断允许位中断允许位EA =1;/允许总中断标志位允许总中断标志位while(1)if(run_flag=0)/判断运行标志位状态判断运行标志位状态P1=led_light1i+;delay();if(i=8)i=0;elseP1=led_light2i+;/点亮点亮LED流水灯流水灯

21、delay();/点亮延时点亮延时if(i=7)i=0;35精选中断程序:void int0()interrupt 0/中断服务函数入口EX0=0;i=0;run_flag=run_flag;/每按一下按键,行标志位取反EX0=1;36精选n运行Proteus-Keil联合调试仿真 37精选任务3 矩阵式键盘设计 任务描述:任务描述:任务分析:任务分析:当嵌入式产品、设备中的按键数目较多时,将采用更普遍的按键设当嵌入式产品、设备中的按键数目较多时,将采用更普遍的按键设计方法计方法矩阵式键盘。本任务要求运用矩阵式键盘的设计方法设计矩阵式键盘。本任务要求运用矩阵式键盘的设计方法设计9个按键个按键控

22、制点亮控制点亮1个数码管分别显示个数码管分别显示19。独立式键盘的每个按键都要独占一位独立式键盘的每个按键都要独占一位I/O,当按键较多就会严重耗费,当按键较多就会严重耗费单片机的单片机的I/O资源。比如计算机的键盘功能有资源。比如计算机的键盘功能有100多个,如果采用独立式方多个,如果采用独立式方法设计,就需要法设计,就需要100多个多个I/O,因此独立式键盘设计在按键较多的情况下不,因此独立式键盘设计在按键较多的情况下不再适合。本任务将探讨新的方法再适合。本任务将探讨新的方法矩阵式键盘设计,尽可能少占用矩阵式键盘设计,尽可能少占用I/O资源资源又保证设计的效果。又保证设计的效果。38精选矩

23、阵式键盘工作原理及应用 n矩阵式键盘是利用几根I/O口线作为列,几根作为行,行跟列相交叉,在交叉点用按键连接列和行的I/O口线。39精选2341扫描循环扫描循环40精选矩阵式键盘的工作原理工作原理是单片机通过定时扫描的方式来查询按键的状态,如先从行扫描,在扫描第一行的时候查询在这一行上与列相交叉的按键有没有被按下,如果没有按键按下就以扫描第一行的方式扫描第二行,这样循环扫描所有的行,如果有就作出相应的处理,处理实现后再继续重新扫描。由于在扫描第1行的时候P2.3=0,但行P2.3与列P2.7交叉处的按键被按下时,P2.7就会从本来的高电平变为低电平,从而确定是哪个按键被按下.41精选应用举例:

24、例5-5 42精选#define Portkey P2/键盘控制端键盘控制端 列线列线P2.0 P2.1#define KeyColm1 P2_2/行线行线 P2.2 P2.3 Portkey=0 xff;/矩阵按键全输出矩阵按键全输出1KeyColm1=0;/选择扫描第一行选择扫描第一行key_temp=Portkey;/读按键控制端读按键控制端key_temp=key_temp&0 x03;/0000,0011 读取列线键值读取列线键值if(key_temp!=0 x03)/如果键值不等于如果键值不等于0 x03key_delay();/去抖延时去抖延时key_temp=Portkey;/

25、读按键控制端读按键控制端key_temp=key_temp&0 x03;/0000,0111 读取列线键值读取列线键值if(key_temp!=0 x03)/如果键值仍不等于如果键值仍不等于0 x03switch(key_temp)/对读取的键盘分配相应键码对读取的键盘分配相应键码case 0 x02:/0000 0010,key0被按下被按下break;case 0 x01:/0000 0001,key1被按被按 break;43精选n1.Proteus电路设计 n2.Keil C51程序设计 n3.Proteus-Keil联合调试仿真 任务实施44精选硬件电路图45精选n(1)程序流程程序

26、设计最重要的部分就是矩阵键盘的扫描,此电路为33键盘,编程从行开始逐行扫描,扫描至第三行,重新开始循环第一行扫描。46精选主程序设计:主程序设计:main()key=9;/初始显示关闭初始显示关闭while(1)Portkey=0 xff;/矩阵按键全输出矩阵按键全输出1KeyColm1=0;/选择扫描第一行选择扫描第一行key_temp=Portkey;/读按键控制端读按键控制端key_temp=key_temp&0 x07;/0000,0111 读取键值读取键值if(key_temp!=0 x07)/如果键值不等于如果键值不等于0 x07key_delay();/去抖延时去抖延时key_t

27、emp=Portkey;/读按键控制端读按键控制端key_temp=key_temp&0 x07;/0000,0111 读取键值读取键值if(key_temp!=0 x07)/如果键值仍不等于如果键值仍不等于0 x07switch(key_temp)/对读取的键盘分配相应键码对读取的键盘分配相应键码case 0 x06:/0000 0110,k0被按下被按下key=0;/显示内容变量显示内容变量break;case 0 x05:/0000 0101,k1被按下被按下key=1;break;case 0 x03:/0000 0011,k2被按下被按下key=2;break;47精选n运行Prot

28、eus-Keil联合调试仿真【课堂练习】【课堂练习】构建22矩阵式键盘(K0、K1、K2、K3),控制2个共阳极数码管对应显示23、68、77、19。48精选任务4 多个外部中断设计 任务描述:任务描述:任务分析:任务分析:在实际项目设计中,有些时候可能需要将不止一个事件设计成中断在实际项目设计中,有些时候可能需要将不止一个事件设计成中断处理任务,这就涉及到多个中断并存的情况。本任务要求设计两个按键分处理任务,这就涉及到多个中断并存的情况。本任务要求设计两个按键分别控制别控制LED流水灯工作流程,当流水灯工作流程,当k0按下,流水灯从两头向中间运行,达到按下,流水灯从两头向中间运行,达到中间返

29、回两头,来回往返;当中间返回两头,来回往返;当k1按下,流水灯先点亮红灯,再点亮蓝灯,按下,流水灯先点亮红灯,再点亮蓝灯,即重复点亮红灯、蓝灯。即重复点亮红灯、蓝灯。按键控制流水灯工作状态,不能采用独立式按键设计。因此两个按按键控制流水灯工作状态,不能采用独立式按键设计。因此两个按键都应运用键都应运用“中断中断”的设计方法,的设计方法,89C51有有INT0、INT1两个外部中断,可以两个外部中断,可以满足两个按键的设计要求。满足两个按键的设计要求。49精选中断优先级 n当几个中断源同时向单片机CPU发出中断请求时,CPU应优先响应最需紧急处理的中断请求。为此,需要规定各个中断源的优先级,使C

30、PU在多个中断源同时发出中断请求时能找到优先级最高的中断源,响应它的中断请求。高优先级的中断请求处理完毕以后,再响应优先级低的中断请求。n中断源的响应优先级由寄存器IP确定,中断系统可以在IP定义两个优先级水平,即高优先级水平和低优先级水平;同时规定了同一水平下不同中断源的优先级。50精选n特殊功能寄存器IP 51精选n1.Proteus电路设计 n2.Keil C51程序设计 n3.Proteus-Keil联合调试仿真 任务实施52精选硬件电路图53精选n两个按键对应为外部中断0、外部中断1,因此键盘电路必须设计在外部中断口上,如图5-30示将按键k0、k1分别设计在P3.2/INT0、P3

31、3/INT1管脚上,LED电路依然设计在P1口上。54精选n(1)程序流程由于两个按键分别控制流水灯不同运行状态,因此程序设计中采用两个运行标志位进行相应的判断;而两个按键的都转化成中断处理,按下按键k0,代表INT0中断事件发生,按下按键k1,代表INT1中断事件发生,单片机响应按键,即跳转到响应中断的处理程序中,将对应的运行标志位置1。在使用“中断”时,都应初始两个中断相关的寄存器。55精选主程序设计:主程序设计:main()IT0 =1;/设置外部中断设置外部中断0触发方式位,触发方式位,1为边沿触发为边沿触发EX0=1;/外部中断外部中断0中断允许位中断允许位IT1 =1;/设置外部

32、中断设置外部中断1触发方式位,触发方式位,1为边沿触发为边沿触发EX1=1;/外部中断外部中断1中断允许位中断允许位EA =1;/允许总中断标志位允许总中断标志位while(1)if(led_running1=1)/判断判断led_running1标志位是否为标志位是否为1P1=led_light1i+;/运行两头向中间,再返回运行两头向中间,再返回delay();if(i=8)i=0;if(led_running2=1)/判断判断led_running2标志位是否为标志位是否为1P1=led_light2i+;/运行红运行红-蓝灯交替点亮蓝灯交替点亮delay();图图5-32 INT0中断

33、流程图中断流程图if(i=2)i=0;56精选57精选n运行Proteus-Keil联合调试仿真 58精选小结n常见的按键设计包括有独立式按键和矩阵式按键两种。n独立式键盘由若干个按键与单片机的I/O口一一的对应连接。通过软件读取单片机I/O的电平状态来确认哪个对应的按键被按下,这种设计方法比较浪费I/O资源。矩阵式键盘的设计是利用几根I/O口线作为列,几根作为行,行跟列相交叉的地方放置一个按键。通过软件扫描的方式来查询按键的状态,如先从行扫描,在扫描第一行的时候查询在这一行上与列相交叉的按键有没有被按下,如果没有按键按下继续扫描第二行,这样循环扫描所有的行。n按键按下存在去抖现象,因此软件查询判断按键是否被按下一定要加去抖延时。59精选n8051单片机有5个中断源,分别是:外部中断0、定时器溢出中断0、外部中断1、定时器溢出中断1、串行中断。n使用外部中断,初始相关的寄存器有:中断允许控制寄存器IE、定时器控制寄存器TCON、中断优先级控制寄存器IP。n外部中断编程步骤:确定使用哪个外部中断源。确定外部中断源的触发类型。使用多个中断源时,确定中断相应的先后顺序。中断处理的开关是否打开。n编写中断处理程序,注意加关键字interrupt,interrupt后加上中断源对应的中断序号60精选作业n技能拓展一选择题n技能拓展二设计题61精选谢谢!62精选

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服