第五章 中断系统精品.ppt

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

MOV A , DPH CJNE A , 76H ,EN1--------不相等则证明尚未传送完毕,应该重新修改地址指 针指向数据块的下一个数据,因此ENI程序块完成 的是修改工作。 MOV A , DPL CJNE A , 75H , EN1 CLR ES -------------------A中的内容与75H中的内容相等,证明数据全部传送完 毕,所以关闭串行中断 ESC: POP A POP DPH POP DPL------------------注意出栈顺序 RETI EN1: INC 77H MOV A , 77H---------------77H单元中的内容加1有可能等于0,此时向高位进位 JNZ EN2 INC 78H EN2: SJMP ESC 以上中断服务程序块中,ESS部分完成的是数据的传送和地址的比较;EN1完成的是地址的修改;ESC部分完成的是恢复现场退出中断服务程序。值得注意的是执行完以上中断服务程序的时间因该不足832us,也就是说在中断服务程序中执行MOV SBUF , A后,要经过地址比较、修改地址、恢复现场三项任务才能退出中断等待下一次的中断申请,也就是说执行三项任务的时间不能超过832us(这个要求很容易办到) 乙机接收程序 ORG 2000H REV: MOV TMOD , #20H MOV TL1 , #0FDH MOV TH1 , #0FDH SETB TR1-----------------启动发动机 乙机设置接收波特率为9600波特,与甲机的发送波特率一致。乙机发动机设置及启动 MOV SCON , #50H 两机沟通方式设定,与甲机一致均为串行通信方式1并允许接收.1040us接收一个数据(10位) SETB EA SETB ES-------------------乙机接收数据采用中断方式,所以一开始就打开串行中断 CLR B.0------------------接收完地址后将B.0置1表示地址结束完毕 MOV 70H , #78H--------把甲机发送的地址存放在乙机片内相同的位置(78H,77H 和76H,75H) SJMP $----------------------虽然在执行完MOV SCON,#50H时已经启动接收,但由 于接收一个数据需要832us,因此在执行SJMP $时还没 有接收完一个具有10位的数据 以上为乙机接收数据的主程序。主要解决发动机的设置及启动、沟通方式的设置、开中断 及必要标志位的设定。至于发送数据的任务交由中断服务程序来完成。 ESS: PUSH DPL PUSH DPH PUSH A MOV A , R0 PUSH A---------------------以上为保护现场 JB B.0 , DA0---------------分水岭,接收到的是地址就顺序执行接收地址程序模块, 否则转到接收数据程序模块DA0。 MOV R0 , 70H--------------把(70H)即78H存入R0,78H为乙机片内地址 MOV A , SBUFF MOV @R0 , A DEC 70H CLR RI 到此为止乙机完成