参考课件5-2.中断编程实例文件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
参考课件5-2.中断编程实例文件

第5章 单片机的中断系统 ;5.1 中断的概念 5.2 中断控制系统 5.3 中断编程及应用;日常生活的中断现象举例;中断原理;中断服务/处理过程;中断函数与一般函数的区别: 一般函数的返回断点是已知的,而中断函数的返回断点是随机的。;5.1 中断的概念 5.2 中断控制系统 5.3 中断编程及应用; C51中断服务函数声明的格式:;中断管理寄存器;中断系统汇总 ;中断应用思路(外部中断): 1、建立突发事件与中断源的对应关系,如硬件电路设计; 2、中断初始化工作,如触发方式、开分中断、开总中断、全局变量定义等; 3、主函数中的呼应关系,如使用中断函数中修改了的全局变量等。;实例1. 单片机开关状态检测;#include reg51.h sbit p1_0=P1^0; main() { p1_0 =0; //? IT0=1; //边沿触发中断 EX0=1; //中断0允许 EA=1; //开放总中断 while(1); } int0_srv ( ) interrupt 0 { EX0=0; //中断0禁止 p1_0 = !p1_0; //? EX0=1; //中断0允许 };问题: 1、主函数中没有调用中断函数,为何能自动执行? 2、主函数中的变量赋值语句的作用? 3、这种程序结构的意义?;参考程序2;实例2 中断扫描法行列式键盘;分析:①增加一个或非门,利用按键压下时的电平产生INT0中断请求信号; (中断接P3.2)。 ②键盘连接P1口;#include reg51.h char led_mod[] = {0x3f,… …}; //显示段码 char key_buf[] = {0x11,… …}; //按键键值 bit key_flag; //定义全局型bit变量;参考程序;char getKey(void) //获取按键子函数 {char k1 = 0, k2 = 0, i = 0; P1 = 0xf0; delay(10); if (P1 != 0xf0) {k1 = P1; delay(10); if (P1 == k1) { P1 = 0x0f; delay(10); k2 = P1 k1; for (i = 0 ; i 16 ; i++) { if (key_buf[i] == k2) { return i; } } } } return -1; };int0_key () interrupt 0 { key_flag = 1; } void main(void) { char key; key_flag = 0; P2 = 0x00; P1 = 0xf0; IT0=1; //? EX0=1; //? EA=1; //? while(1) { if(key_flag==1) //? { key = getKey(); if (key != -1) P2 = led_mod[key]; key_flag = 0; //? P1 = 0xf0; //? } } };实例3 .第4章实例2键控流水灯 存在问题:当CPU运行于LED循环环节时,将因不能及时检测按键状态,而使按键操作动作不灵敏。 解决方法:改用中断方式检测按键 ;解决思路:采用外部中断法实时检测按键状态,使之及时更新方向和启停标志。 ;参考程序;if (run) if(dir) for(i=0;i=3;i++) { P2=led[i];//自上而下流动 delay(200); } else for(i=4;i=1;i--) { P2=led[i - 1];//自下而上流动 delay(200); } else P2=0;//灯全灭 } };例:INT0 中断计数-pw;#include reg52.h #define uchar unsigned char #define uint unsigned int uchar code DSY_CODE[ ]= { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x00 }; //共阴极数码管 uchar Display_Buff

文档评论(0)

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

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

1亿VIP精品文档

相关文档