您的位置 首页 主动

浅谈51单片机2个外部中止的使用事例

浅谈51单片机2个外部中断的应用案例-51单片机的P1口上接有8只LED。

;51单片机的P1口上接有8只LED

;在外部中止0输入引脚P3.2接有一只按钮开关K1。

;在外部中止1输入引脚P3.3接有一只按钮开关K2。

;要求K1和K2都未按下时,P1口的8只LED呈流水灯显现,

;仅K1(P3.2)按下时,左右4只LED替换闪耀。

;仅按下K2(P3.3)时,P1口的8只LED悉数闪亮。

;两个外中止的优先级相同。

;=============================================

;用 PROTSUE 仿真界面如下:

浅谈51单片机2个外部中止的使用事例

;下列程序,能够满足要求。

ORG 0000H

SJMP MAIN

ORG 0003H

SJMP X0_INT

ORG 0013H

SJMP X1_INT

;————————————

MAIN:

MOV SP, #60H

MOV IE, #85H

MOV A, #254

M_LOOP:

MOV P1, A

RL A

CALL DL_500MS

SJMP M_LOOP

;————————————

X0_INT:

PUSH PSW

SETB RS1

MOV P1, #0FH

SH_0:

XRL P1, #255

CALL DL_500MS

JNB P3.2, SH_0

POP PSW

RETI

;————————————

X1_INT:

PUSH PSW

SETB RS0

MOV P1, #0

SH_1:

XRL P1, #255

CALL DL_500MS

JNB P3.3, SH_1

POP PSW

RETI

;——————————-延时子程序

DL_500MS:

MOV R5, #9 ;1T

DL1: MOV R6, #128 ;1T

DL2: MOV R7, #215 ;1T

NOP ;1T

DL3: DJNZ R7, DL3 ;2T 2 * 215 = 430 T

DJNZ R6, DL2 ;2T [1+1+430+2] * 128 = 55552 T

DJNZ R5, DL1 ;2T [1+55552+2] * 9 = 499995 T

RET ;2T 1 + 499995 + 2 = 499998 T

;————————————

END

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/347882.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部