【单片机】实验三LED外部中断

实验三. 外部中断

一、实验目的
1、熟悉MCS-51指令系统。
2、掌握外部中断技术的基本使用方法
3、掌握中断处理程序的编写方法
4、熟悉接口程序调试方法。
二、实验设备(仪器)
PC 微机一台
三、实验原理
1、外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)或INT1(P3.3)引入。
2、中断控制原理:
中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。
3、中断响应的过程:
中断响应进入对应中断入口地址,以进入相应中断服务程序。
在这里插入图片描述

INT0或INT1端接单次脉冲发生器。P2口接LED字段a~h,P1口接位选,以查看计数结果。
三、实验内容及步骤
1、用Protues设计出外部中断计数器的电路原理图,单片机选用AT89C51,P2口接LED字段a~h,P1口接位选,INTO或INT1接单次脉冲输出端。
2、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着编写外部中断计数器.ASM源程序,进行编译,直到编译无误,生成HEX文件。
3、将HEX文件上载到Protues电路原理图的AT89C51中,并仿真成功。
4、实验电路功能,连续按动单次脉冲产生电路的按键,对单次脉冲进行计数,2个LED数码管(个位与十位)显示其结果。
四、流程图
要求每按下一次单脉冲开关,计数值加1,通过AT89C51单片机的P0端口在2个LED数码管上显示出计数结果的二进制计数值,并编写源程序。
在这里插入图片描述

Protues实验仿真工程原理图
在这里插入图片描述
实验代码

ORG 0000H
LJMP START
ORG 0003H
LJMP INTT0_EX				   
ORG 007FH
START:
MOV R0,#0
MOV R1,#0
SETB IT0
SETB EX0
SETB EA

LOOP:
MOV DPTR,#TABLE
MOV A,R0
MOVC A,@A+DPTR
MOV P1,#2
MOV P2,A

MOV A,R1
MOVC A,@A+DPTR
MOV P1,#1
MOV p2,A
ACALL DELAY
LJMP LOOP

DELAY:
MOV R6,#4
D1: MOV R7,#3
DJNZ R7,$
DJNZ R6,D1
RET

INTT0_EX:
INC R0
CJNE R0,#10,UN_EQU
SJMP EXIT_INIT

UN_EQU:
//JNC R0_UND9
//SJMP EXIT_INIT
RETI

R0_UND9:
INC R1
RET
EXIT_INIT:
MOV R0,#0
INC R1
RETI

TABLE: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
END

工程文件:
https://download.csdn.net/download/qq_42253057/18810067

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值