📄 int67.asm
字号:
//-----------------------------------------------------------------------------
// 版权归新华龙电子公司所有
//-----------------------------------------------------------------------------
//
// 文件名:int67.ASM
//
// 编写人:LC
//
// 编写时间:2005/2/25
//
// 目标器件: C8051F02x
//
// 编译工具: Silicon Laboratories IDE
//
//程序说明
// 此程序测试C8051F020的中断6、7,可在相应的两个中断中设断点观察,中断处理时发光
// 二极管的状态也相应的会有改变.
//------------------------------------------------------------------------------------
// 头文件包含
//------------------------------------------------------------------------------------
$include (c8051f020.inc)
//------------------------------------------------------------------------------------
// 常量定义
//------------------------------------------------------------------------------------
SYSCLK EQU 2000000 ;系统工作频率
ORG 0
AJMP main
ORG 93H
AJMP INT6_ISR
ORG 9BH
AJMP INT7_ISR
ORG 0100H
;通用I/O口及交叉开关初始化
PORT_Init:
MOV XBR2,#40 ;使能交叉开关
ORL P74OUT,#0fH ;P4口推挽输出
RET
;外中断6、7初始化
INT67_Init:
ORL EIE2,#30H ;允许外部中断6/7的请求
ORL P3IF,#0c0H ;当检测到P3.6/P3.7引脚的下降延时该由硬件置位
ANL P3IF,#NOT(40H) ;关外部中断6标志
ANL P3IF,#NOT(80H) ;关外部中断7标志
RET
;外中断6中断服务程序
INT6_ISR:
ANL P3IF,#NOT(40H) ;关外部中断6标志
MOV A,P5
CPL A
MOV P5,A ;发光二极管状态改变
RETI
;外中断7中断服务程序
INT7_ISR:
ANL P3IF,#NOT(80H) ;关外部中断7标志
MOV A,P4
CPL A
MOV P4,A ;发光二极管状态改变
RETI
//------------------------------------------------------------------------------------
// 主程序
//------------------------------------------------------------------------------------
main:
MOV WDTCN,#0deH ;禁止看门狗定时器
MOV WDTCN,#0adH
LCALL PORT_Init ;初始化I/O口
LCALL INT67_Init ;初始化外部中断6/7
SETB EA ;使能中断总控制位
LJMP $
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -