📄 int1_test1.asm
字号:
;***********************************
; 文件:INT1_TEST1.asm
; 开发: www.zlgmcu.com
; 日期: 2004.03.01
; 功能:测试P89LPC932 在完全掉电模式下的外部中断唤醒
; 说明: 此程序用DP-932调试通过.
; 将跳线器J27,J28分别接OCA和BEEP;J3接KEY1
; 通过跳线器选择高频晶振6MHz.
;*************************************
#include "reg932.INC"
;变量定义
T_CNT DATA 30H
KEY1 BIT P0.0
LEDCON BIT P2.6
BEEP BIT P2.7
ORG 0000H
AJMP MAIN
ORG 0013H
LJMP INT1_SERV
MAIN:
MOV P0M1,#00H ;P0口设置为准双向
MOV P0M2,#00H
MOV P1M1,#00H ;P1口设置为准双向
MOV P1M2,#00H
MOV P2M1,#0C0H ;P2.6,P2.7开漏输出
MOV P2M2,#0C0H
MOV SP,#60H
SETB IT1 ;INT1 下降沿触发
SETB EA
MAIN_L1:
CLR EX1 ;关中断INT1
MOV T_CNT,#00H
MAIN_L2:
JNB KEY1,MAIN_L3 ;等待KEY1按下
ACALL DELAY ;延时0.1S
INC T_CNT
MOV A,T_CNT
CJNE A,#0AH,MAIN_L2
CPL LEDCON ;每隔1秒钟对LED取反一次
AJMP MAIN_L1
MAIN_L3:
JNB KEY1,$ ;等待KEY1释放
CLR IE1 ;清除中断标志,开中断
SETB EX1
ORL AUXR1,#80H ;置位CLKLP以降低功耗
MOV PCONA,#0EFH ;LPC932 功能部件掉电
MOV PCON,#23H ;LPC932完全掉电
AJMP MAIN_L1
;*************************************
; 名称:INT1_SERV
; 功能:外部中断1(INT1)中断处理,蜂鸣器"Beep"一声
;*************************************
ORG 0100H
INT1_SERV:
CLR BEEP
ACALL DELAY ;蜂鸣器响0.1S
SETB BEEP
CLR IE1 ;清除中断标志
RETI
;***************************
; 延时程序
; 延时时间:0.1S
;***************************
DELAY:
MOV R7,#01H
DELAY_L1:
MOV R6,#0C8H
DELAY_L2:
MOV R5,#0FAH
DELAY_L3:
NOP
NOP
NOP
NOP
DJNZ R5,DELAY_L3
DJNZ R6,DELAY_L2
DJNZ R7,DELAY_L1
RET
END
/**************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -