- 1、本文档共118页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
msc51中断系统
例3 外部中断实验 例3:如 图14所示,将P1口的P1.4~P1.7作为输入位, P1.0~P1.3作为输出位。要求利用8031将开关所设的数据读入单片机内,并依次通过P1.0~P1.3输出,驱动发光二极管,以检查P1.4~P1.7输入的电平情况(若输入为高电平则相应的LED亮)。 现要求采用中断边沿触发方式,每中断一次,完成一次读/写操作。 返 回 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 INT0 8031 +5V +5V +5V +5V +5V & & 1 2 S1 图5—14 外部中断实验 返 回 例3 解:如图所示,采用外部中断0,中断申请从INT0输入,并采用了去抖动电路。 当P1.0~P1.3的任何一位输出为1时,相应的发光二极管就会发光。当开关S1闭合时,发出中断请求。中断服务程序的矢量地址为0003H。源程序如下页。 例3 源程序如下: ORG 0000H SJMP MAIN;上电,转向主程序 ORG 0003H;外部中断0入口地址 SJMP INSER;转向中断服务程序 例3 ORG 0030H ;主程序 MAIN: SETB EX0 ;允许外部中断0中断 SETB IT0 ;选择边沿触发方式 SETB EA ;CPU开中断 HERE: SJMP HERE ;等待中断 例3 ORG 0200H ;中断服务程序 INSER:MOV A,#0F0H MOV P1,A ;设P1.4~P1.7为输入 MOV A,P1 ;取开关数 SWAP A ;A的高、低四位互换 MOV P1,A;输出驱动LED发光 RETI ;中断返回 END 返 回 例4 利用中断显示系统故障 如图15所示,此中断电路可实现系统的故障显示。当系统的各部分正常工作时,四个故障源的输入均为低电平,显示灯全不亮。当有某个部分出现故障时,则相应的输入线由低电平变为高电平,相应的发光二极管亮。 返 回 INT0 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 8031 R R R R LED LED LED LED 图15 利用中断显示系统故障 返 回 例4 解:如图所示,当某一个故障信号输入线由低电平变为高点平时,会通过 INT0线引起8031中断(边沿触发方式)。在中断服务程序中,应将各故障源的信号读入,并加以查询,以进行相应的发光显示。 例4 源程序如下: ORG 0000H SJMP MAIN;上电,转向主程序 ORG 0003H;外部中断0入口地址 SJMP INSER;转向中断服务程序 MAIN: ANL P1,#55H;P1.0,P1.2,P1.4,P1.6为输入 P1.1,P1.3,P1.5,P1.7为输出 SETB EX0 ;允许外部中断0中断 SETB IT0 ;选择边沿触发方式 SETB EA ;CPU开中断 HERE: SJMP HERE ;等待中断 例4 INSER:JNB P1.0,L1;查询中断源,( P1.0)=0,转L1 SETB P1.1 ;是P1.0引起的中断,使相应的二极管亮 L1: JNB P1.2,L2;继续查询 SETB P1.3 ; L2: JNB P1.4,L3 SETB P1.5 L3: JNB P1.6,L4;
文档评论(0)