- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
---单按键中断程序设计---项目二:小车速度测量系统分析与仿真之
单按键信号的输入---程序扫描方式
51单片机的中断过程中断请求-----中断源的达到相关状态,自动向CPU申请;中断响应-----满足中断响应条件时(开中断、优先级),CPU自动响应;中断服务-----执行中断服务子程序(通过中断号进入对应中断源的中断服务子程序)中断返回-----中断服务子程序执行完毕,自动返回断点处。外部中断(P3.2、P3.3有下降沿信号或高电平)TCON(中断允许寄存器IE、中断优先级寄存器IP)(外部中断0---interrupt0外部中断1--interrupt2)例如:voidkey(void)interrupt0
单按键信号的输入案例要求:1.用中断的方式实现单按键按钮信号的读入。2.每按下一次按键,数码管最后一位加1。3.当加到10时,该位数据归0,暂不考虑进位。
程序参考流程图
主函数的编写voidmain(void){IT0=1; //设置外部中断0中断方式为下降沿触发EX0=1; //开启外部中断0中断允许EA=1; //开总中断允许while(1){disp();}}
中断子函数的编写voidkey(void)interrupt0{delay(5);if(K1==0) { while(K1==0); a_disp[3]++;if(a_disp[3]==10)a_disp[3]=0;}}
拓展案例功能拓展:1.用中断的方式实现单按键按钮信号的读入。2.实现数码管多个显示状态的切换。3.实现最后一位数据的减1操作。数码管多个显示状态的切换11数码管多个显示状态的切换22最后一位数据的减1
定时/计数器控制寄存器TCON注意:1、当IT0=0时为低电平触发;IT0=1时为边沿触发。2、IE0为外部中断0的标志位,由单片机自动置位。3、当IT1=0时为低电平触发;IT1=1时为边沿触发。4、IE1同IE0类似。back位名称TF1TR1TF0TR0IE1IT1IE0IT0定时中断1中断标志外部中断1中断方式选择定时中断0中断标志外部中断0中断方式选择
中断允许控制寄存器IE注意:1、当要使用任何一个中断源时,都需要将总中断允许打开,即EA=1;2、当要使用任何一个中断源时,都需要将对应的中断允许打开,如使用P3.2口对应的外部中断源0时,需要设置EX0=1;。back位名称EAESET1EX1ET0EX0总中断允许串行口中断允许定时中断1允许外部中断1允许定时中断0允许外部中断0允许
中断优先级寄存器IP注意:1、MCS-51中断系统只有两级优先级:对应位为1时,级别提高一级;2、在同优先级内中断的优先顺序为:(从高到低)外部中断0、T0、外部中断1、T1、串行口。back位名称PSPT1PX1PT0PX0串行口中断定时中断1外部中断1定时中断0外部中断0
文档评论(0)