51单片机汇编语言实验(二)-----中断控制实验(附参考代码及注释)

   本系列共6篇文章,本文作为本系列的第二篇文章,介绍实验二 :中断控制实验,本系列文章基于Dais-52PRO实验箱。

本系列文章链接:

-----------------------------------------------------------------------------

   51单片机汇编语言实验(一)-----数字量输入输出(附参考代码及注释)
   51单片机汇编语言实验(二)-----中断控制实验(附参考代码及注释)
   51单片机汇编语言实验(三)-----定时/计数器实验(附参考代码及注释)
   51单片机汇编语言实验(四)----串行通信实验(附参考代码及注释)
   51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832数模转换实验(附参考代码及注释)
   51单片机汇编语言实验(六)-----8255键盘与显示设计(附参考代码及注释)

-----------------------------------------------------------------------------

一、实验目的:

   1.学习中断控制技术的基本原理;
   2.掌握51单片机的中断子程序的编写方法。

二、实验设备:

   PC计算机一台,Dais-52PRO+实验系统一套。

三、实验内容:

   1. 外部中断实验
   2. 定时器中断实验

四、外部中断实验

   1、实验原理:
   每触发按键一次,INT0管脚就得到一次中断触发,从而引发单片机的中断响应。
   2、实验步骤:
  ① 将试验箱IO区的P1.0与LED区的L0按下图连线;
  ② 将试验箱IO区的P3.2与脉冲区的SP按下图连线;
  ③ 编写程序,经编译、链接无语法错误后装载到实验系统;
  ④ 运行程序,每按动一次单脉冲按钮令发光二极管L0交替点亮或熄灭;
  ⑤ 实验完毕后,应使用暂停命令中止程序的运行。
   3、参考代码:
//实验二   外部中断实验 
    LED  BIT P1.0
	ORG	 0000H
	AJMP MAIN	;上电,转向主程序
	ORG	0003H	    ;外部中断0入口地址
	AJMP	INT0SVR	;转向中断服务程序
	ORG	0100H	    ;主程序
MAIN:	
	SETB	EX0	;允许外部中断0中断
	SETB	IT0	;选择边沿触发方式
	SETB	EA	;CPU开中断
HERE:
    SJMP   HERE	;等待中断		
     
		 
INT0SVR:  CPL   LED     ;LED取反
          RETI		;中断返回       
          END

五、中断控制实验:

   1、实验原理:
   利用51单片机的定时器T0,使P1.0控制的发光二极管L0每隔1秒交替点亮或熄灭。
   2、实验步骤:
  ① 将试验箱IO区的P1.0与LED区的L0按下图连线;
  ② 编写程序,经编译、链接无语法错误后装载到实验系统;
  ③ 运行程序,观察发光二极管L0,应每隔1秒交替点亮或熄灭;
  ④ 实验完毕后,应使用暂停命令中止程序的运行。
   3、参考代码:
     //实验二   定时器中断实验
COUNT   EQU  9217        ;11.0592MHz 延时10ms
LED     EQU  P1.0
        ORG 0000H       ;复位地址
        AJMP MAIN       ;开始时跳转转到主程序
        ORG  000BH          ;T0入口地址
        AJMP INT_T0
        ORG 0100H
MAIN:   SETB LED
        MOV TMOD,#00000001B            ;设置定时器T0工作在方式1(16位
		MOV  TH0,#HIGH(65536-COUNT)         ;设置初值
        MOV  TL0,#LOW(65536-COUNT)
        CLR  TF0           ;先把溢出标志位清零
        SETB TR0       ;开始计时
        SETB  EA           ;全局中断打开
        SETB  ET0          ;定时器/计数器T0溢出中断打开
        MOV  R7,#00H     ;作为定时器累加器使用
        SJMP $          ;循环,等待中断
        ;中断服务子程序
INT_T0: INC R7       ;计数增量
        CLR TF0         ;重新置中断标志位为0
        MOV  TH0,#(65536-COUNT)/256        ;重新符初值65536-9217=563191101101111111111  低八位正好是255
        MOV  TL0,#255
        CJNE  R7,#100,RETURN ;让灯明暗相间1s
        MOV   R7,#00H
        CPL   LED              ;让灯明暗交替变化
RETURN: RETI
        END		

    本文介绍的内容完整的工程文件我会放在附件里,需要者自取,放的时候都是免费,它会自己涨,链接失效或者需要的可以在评论区留言,我直接发给你。本文附件链接如下:

     51单片机汇编语言实验(二)-----中断控制实验(附参考代码及注释)附件链接
  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕羽★

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值