单片机--中断系统实验-定时器实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三 中断系统实验 一、实验目的 完成中断系统的综合实验,包括中断请求源,中断请求标志,中断允许与禁止,中断优先级控制,中断响应过程,外部中断触发方式与中断响应时间等。掌握中断系统的应用知识。二、实验原理1)中断的屏蔽与开放;(2)实现中断及返回;(3)能实现优先级排队;(4)中断嵌套;(5)自动响应中断 51中断系统的结构:TCON、SCON、IE、IP、自然优先级 中断处理过程分为4个阶段:中断请求→中断响应→中断服务→中断返回。 中断系统的设计过程通常由以下几个部分构成: (1) 中断初始化,在主程序中完成; (2) 在中断入口地址处安排一跳转指令,跳转至中断服务子程序入口; (3) 中断服务子程序开始保护现场,保护与主程序或其他中断系统共享的资源; (4) 编制中断服务子程序功能主体; (5) 恢复现场。 外部中断的信号要求:低电平持续时间要超过1个机器周期。 外部中断标志的撤除:电平触发方式要软硬结合撤除,跳变触发方式自动撤除。 外部中断标志在不同触发方式下的锁存:电平触发方式下,如被屏蔽,则中断请求信号消失后,中断标志自动撤除,或者在响应中断后自动清除;跳变触发方式下,即使被屏蔽,中断标志也将锁存,在响应中断后才会被自动清除。 三、实验仪器四、实验内容与步骤ORG 0000H LJMP MAIN ORG 0003H LJMP PINT0 MAIN: MOV IE,#81H SETB IT0 MOV P0,#0FFH SETB F0 SJMP $ PINT0: JB F0,LIGHT MOV P0#0FFH SETB F0 LJMP RTN LIGHT: MOV P0,#00H CLR F0 RTN: RETI END #include reg51.h #define uint unsigned int #define uchar unsigned char #define LED P0 uchar k=0xff; void int0() interrupt 0{ k=~k; } void main(void){ IE=0x81; IT0=1; for(;;){ LED=k; } } 2、电路同上。每按一次开关,LED全部点亮,保持一段时间后全部熄灭,如此往复,保持时间自定义。 ORG 0000H LJMP MAIN ORG 0003H LJMP PINT0 MAIN: MOV IE,#81H SETB IT0 MOV P0,#0FFH LJMP MAIN PINT0: MOV P0,#00H LCALL DEL MOV P0,#0FFH RETI DEL: MOV R5, #10 DEL0: MOV R6, #200 DEL1: MOV R7, #248 DJNZ R7, $ DJNZ R6, DEL1 DJNZ R5, DEL0 END #include reg51.h #define uint unsigned int #define uchar unsigned char #define LED P0 void DelayMS(uint x){ uchar t; while(x--){ for(t=0;t120;t--); } } void int0() interrupt 0{ LED=0x00; DelayMS (1000); LED=0xff; } void main(void){ IE=0x81; IT0=1; LED=0xff; while(1); } 3、电路同上。实现LED流水灯(只亮一个),间隔时间为1秒,方向自定义。按下开关后改变原流水灯为反向流动。 #include reg51.h #include intrins.h #define uint unsigned int #define uchar unsigned char bit flag=1; void DelayMS(uint x){ uchar t; while(x--){ for(t=0;t120;t--); } } void int0() interrupt 0{ flag=~flag; } void main(void){ IE=0x81; IT0=1; P0=0xfe; for(;;){ if(flag){ P0=_crol_(P0,1); DelayMS (1000); }else{ P0=_cror_(P0,1); DelayMS (1000); } } } 4、中断计数:P0、P1口扩展2位数码管,显示中断次数。 连线:IO1~IO8按序连接LED_A~LED_DP,CAP0、SDA按序连接LED_C1、LED_C2,INT0连接SIMP

文档评论(0)

cai + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档