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交替点亮或熄灭;
  ⑤ 实验完毕后,应使用暂停命令中止程序的运行。
51单片机汇编语言实验(二)-----中断控制实验(附参考代码及注释)_第1张图片

   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单片机汇编语言实验(二)-----中断控制实验(附参考代码及注释)附件链接

你可能感兴趣的:(大学实验,单片机及其应用)