第5章80C51单片微机中断系统原理及其应用.ppt

第5章80C51单片微机中断系统原理及其应用.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 80C51单片微机的 中断系统原理及应用 【例】 出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外中断INT0(P3.2)引脚输入,行驶里程为轮胎周长×运转圈数,设轮胎周长为2m,试实时计算出租车行驶里程(单位米),数据存32H、31H、30H。 ORG 0100H ;初始化程序首地址 STAT: MOV SP,#60H ;置堆栈指针 SETB IT0 ;置边沿触发方式 MOV IP,#01H ;置高优先级 MOV IE,#81H ;开中 MOV 30H,#0 ;里程计数器清0 MOV 31H,#0 ; MOV 32H,#0 ; LJMP MAIN ;转主程序,并等待中断 ORG 0200H ;中断服务子程序首地址 INT: PUSH Acc ;保护现场 PUSH PSW ; MOV A,30H ;读低8位计数器 ADD A,#2 ;低8位计数器加2m MOV 30H,A ;回存 CLR A ; ADDC A,31H ;中8位计数器加进位 MOV 31H,A ;回存 CLR A ; ADDC A,32H ;高8位计数器加进位 MOV 32H,A ;回存 PUSH PSW ;恢复现场 PUSH Acc ; RETI ;中断返回 【例5-3】现有5个外中断源EX1、EX20、EX21、EX22和EX23,高电平时表示请求中断,EX1级别最高,要求画硬件图,试编制程序。 ORG 0100H ;主程序首地址 MAIN: MOV SP,#60H ;置堆栈指针 ORL TCON,#05H ;置INT0、INT1为边沿触发方式 SETB PX0 ;置为高优先级 MOV IE,#0FFH ;全部开中 … ;主程序内容 ORG 1000H ;中断服务程序首地址 PINT0: PUSH Acc ;中断,保护现场 LCALL WORK1 ;调用EX1服务子程序 POP Acc ;恢复现场 RETI ;中断返回 ORG 2000H ;中断服务程序首地址 PINT1: CLR EA ;CPU禁中 PUSH Acc ;中断保护现场 PUSH DPH ; PUSH DPL ; SETB EA ;CPU开中 JB P1.0,LWK20;P1.0=1,EX20请求中断 JB P1.1,LWK21;P1.1=1,EX21请求中断 JB P1.2,LWK22;P1.2=1,EX22请求中断 LCALL WORK23 ;P1.3=1,调用EX23服务子 LRET: CLR EA ;CPU禁中 POP DPL ;恢复现场 POP DPH ; POP Acc ; SETB EA ;CPU开中 RETI ;中断返回 LWK20: LCALL WORK20 ;P1.0 = 1,调用EX20服务子程序 SJMP LRET ;转中断返回 LWK21: LCALL WORK21 ;P1.1 = 1,调用EX21服务子程序 SJMP LRET ;转中断返回 LWK22: LCALL WORK22 ;P1.2 = 1,调用EX22服务子程序 SJMP LRET ;转中断返回 在单片机系统中设置+、?、?、?四个运算命令键,它们的键号分别为0、1、2、3。当其中一个键按下时,进行相应的运算。操作数由P1口和P3口输入,运算结果仍由P1口和P3口输出。具体如下:P1口输入被加数、被减数、被乘数和被除数,输出运算结果的低8位或商;P3口输入加数、减数、乘数和除数,输出进位(借位)、运算结果的高8位或余数。键盘号已存放在30H中。 解:程序如下: PRGM: MOV P1,#0FFH ;P1口置输入态 MOV

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档