- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
//给出的电路如下图所示://要求://1.在 K2 或 K3 的中断服务期间,K1 的中断请求仍能被服务;//2.当 K2 与 K3 同时按下时,K2 优先被服务,K3 在 K2 服务结束后才能被服务;//3.在 K3 的中断服务期间,K2 的中断请求不能被服务。//每个中断的服务用调用软件延时程序DELAY来模拟。//编程实现上述功能,设主频为12MHz。//由图可见,三个按键和外部中断的关系如下://k1 --------- INT0//k2 or k3 --- INT1//中断的信号,采用了 D 触发器来隔离,这可以对信号进行消抖与保持。//无论信号抖动多少次,其第一次信号,就会使 D 触发器置一。//因此,在中断响应函数中,不用进行软件消抖。//但是,由于 D 触发器有保持作用,那么,在退出中断响应函数之前,//需要给 D 触发器送去用 R 信号,以消掉申请信号。//K2 和 K3 的申请信号,经过一个或非门,送到 INT1。//因此,当响应 INT1 的时候,需要对 K2 和 K3 进行查询。//把 INT0 设为高优先级、INT1 设为低优先级,即可满足第一个要求;//在响应 INT1 中断后,先查询 K2,即可满足第二个要求;//中断系统的特性,自动就可以满足第三个要求。//程序如下。程序中,对三个中断申请,给出了三种响应:常亮、慢闪和快闪#includereg51.h/regsbit ?P10 = P1^0; ? //CLR K1sbit ?P11 = P1^1; ? //CLR K2sbit ?P12 = P1^2; ? //CLR K3sbit ?P13 = P1^3;sbit ?P14 = P1^4; ? //LEDsbit ?P15 = P1^5;sbit ?P16 = P1^6; ? //K2 标志sbit ?P17 = P1^7; ? //K3 标志//------------------------------------------------------void delay_ms(unsigned int num){ ?? ? unsigned int i, j;? ? for(i = num; i 0; i--) ?for(j = 124; j 0; j--);}//------------------------------------------------------void main(void) ? using 0{? ? EX0 = 1;? ? EX1 = 1;? ? PX0 = 1;? ? EA ?= 1;? ? while(1) ?{;}}//------------------------------------------------------void X0_INT(void) interrupt 0 ? using 1{? ? unsigned char i;? ? P10 = 0; P10 = 1; ? ?//撤消外部中断申请? ? for (i = 0; i 20; i++) {? ? ? P13 = 0; delay_ms(100); ?//快速闪烁? ? ? P13 = 1; delay_ms(100);? ? }}//------------------------------------------------------void X1_INT(void) interrupt 2 ? using 2{? ? unsigned char i;? ? if(P16) ?{?? ? ? P11 = 0; P11 = 1; ?//撤消外部中断申请? ? ? for (i = 0; i 10; i++) {? ? ? ? P14 = 0; delay_ms(200);//慢速闪烁? ? ? ? P14 = 1; delay_ms(200);? ? ? }? ? }? ? if(P17) ?{? ? ? P12 = 0; ?P12 = 1; //撤消外部中断申请? ? ? P15 = 0; delay_ms(5000); P15 = 1;//常亮? ? }}//------------------------------------------------------两个中断响应,使用了同一个延时函数,应该使用不同的工作区。
您可能关注的文档
最近下载
- 2024-2025学年上学期长沙小学语文六年级期末模拟试卷.doc
- 2025年野生动物园行业调研分析报告.docx VIP
- 中国危重症患者肠内营养支持常见并发症预防管理专家共识解读课件.pptx
- 2024年中考数学复习 圆中的重要模型-圆中的翻折模型(原卷+答案解析).pdf VIP
- 小学语文新课标六年级《为人民服务》朱丽芳(1).pdf
- 专家答疑纪要—第1期:电力建设工程(建筑专业).doc
- 创建绿色施工环境保护台帐.doc VIP
- DB32_T2334.2—2013《水利工程施工质量检验与评定规范》第2部分:建筑工程.doc
- 2025届高考作文素材:人工智能与Deepseek+课件.pptx VIP
- 剑桥(join in)版小学英语五年级下册单元知识梳理总结(全册).pdf VIP
文档评论(0)