第11、12节课(第五章).ppt

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

解: 采用位操作指令: SETB EA SETB EX1 ;开外部中断1 SETB PX1 ;令外部中断1高优先级 CLR IT1 ;令外部中断1为电平触发 采用字节操作指令: MOV IE,#84H ;开外部中断1 ORL IP,#04H ;令外部中断1高优先级 ANL TCON ,#0FBH ;令外部中断1为电平触发 中断应用实例 程序结构 交通灯主程序 中断服务子程序 89C51的外部中断源仅有两个,需要时可以扩展。 扩展方法: 利用定时器扩展 中断加软件查询 四、 外部中断扩展方法 1、利用定时器扩展外部中断源 方法: (1)把89C51的T0/T1做计数器使用; (2)计数初值设为FFFFH; (3)外部中断请求信号从P3.4或P3.5输入。 当外部中断请求信号有效时,使计数器加1而溢出,向CPU发出中断请求。 设某用户系统中已使用了两个外部中断源,并置定时器T1工作在模式2,作串行口波特率发生器用。现要求再增加一个外部中断源,并由P1.0输出一个5KHz的方波。Fosc = 12MHz。 分析: 目的:1) 增加一个外部中断; 2) 使P1.0输出一个方波。 条件:1)两个外部中断源已被使用 2)定时器T1已用于串行口波特率发生器 因此:可利用定时/计数器T0,使之工作在模式3, 1)利用TL0扩展外部中断源 2)利用TH0作定时器使用,输出方波 设置初值: 1) TL0 = 0FFH 2) 因为输出方波f = 5kHz,故方波周期为200us,用TH0产生100us的定时,故TH0的初值X = 256 – (定时时间/机器周期) = 256 - (100us*晶振频率/12) = 156 设定T0工作方式,TMOD,TCON. 程序: MOV TMOD,#27H ;T0:模式3,计数方式 ;T1:模式2,定时方式 MOV TL0,#0FFH ;一旦加1,马上溢出,申请中断 MOV TH0,#156 ;TH0初值 MOV TH1,#data ;根据波特率要求而定 MOV TL1, #data MOV TCON,#55H MOV IE,#9FH ;开放全部中断 TL0INT: MOV TL0,#0FFH ;TL0重新赋值 ….. RETI TH0INT: MOV TH0,#156 ;TH0重新赋值 CPL P1.0 RETI 2、中断加查询扩展外部中断源 各个外中断经过“线或”接入到INT0或INT1上,高产生中断请求。 P1.0~P1.3用于查询。 例 如右图所示的中断电路可实现系统的故障显示。当系统的各部分正常工作时,4个故障源的输入均为低电平,显示灯全不亮。当有某个部分出故障时,则相应的输入线由低电平变为高电平,相应的发光二极管点亮。 程序如下: ORG 0000H SJMP MAIN ORG 0003H SJMP INTER ORG 0030H MAIN: ANL P1, #55H SETB EX0 SETB IT0 SETB EA HERE:SJMP HERE 中断服务子程序: ORG 0100H INTER:JNB P1.0, L1 SETB P1.1 L1: JNB

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档