📄 ex_int.asm
字号:
;******************************Copyright (c)**********************************
;** 广州周立功单片机发展有限公司研究所
;** http://www.zlgmcu.com
;******************************文件信息************************************
;文件名:Ex_Int.asm
;功能:学习单片机的外部中断的使用使用
;说明:
;1.学习使用外部中断1的程序设计方法与技巧
;2.LED发光管和LED数码管共用同一地址2000H~3FFFH,在此选取2000H。
;3.正确设置跳线JP1使P1.6与KBIT7相连,即把跳线置于下端
;4.正确设置跳线JP3使P3.3与KEY1相连,即把跳线置于上端
;最后修改时间:2003年3月21
;*************************************************************************
LED_ADDR EQU 2000H ;定义LED数码管的数据段地址
COUNTER DATA 30H ;定义计数单元
DBUFFER DATA 31H ;定义输出初始值
LEDCS EQU P1.6 ;定义LED片选信号线
ORG 8000H ;伪指令,定义程序从8000H开始存放
AJMP MAIN
ORG 8013H ;中断入口向量地址
AJMP Ex_Int1
ORG 8100H ;伪指令,定义以下程序从8100H开始存放
MAIN:
MOV SP,#60H ;给堆栈指针赋初值
MOV DBUFFER,#0FFH ;送输出初始数据
CLR LEDCS ;置P1.7为低电平
SETB IT1 ;外部中断0设置为边沿触发方式
SETB EA ;开放总中断
SETB EX1 ;允许外部中断0中断
INTUP:
MOV A,DBUFFER ;更新数据
MOV DPTR,#LED_ADDR ;
MOVX @DPTR,A
AJMP INTUP ;继续
;**********************
;外部中断1服务子程序
;**********************
Ex_Int1:
PUSH PSW ; 现场保护,外部中断0服务子程序
PUSH ACC
CLR EX1 ;停止计数
MOV A,DBUFFER ;取原始输出状态
CPL A ;取反原始状态
MOV DBUFFER,A ;更新输出状态值
SETB EX1 ;开始计数
POP ACC ;出栈
POP PSW
RETI ;中断返回
;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -