访问手机版页面
你的位置:老古开发网 > 51单片机 > 51单片机中断系统 > 正文  
浅谈51单片机2个外部中断的应用案例
内容导读:

;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

标签:51单片机,
来源:网络整理 作者:工程师2 时间:2018/5/29 12:22:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐