⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex10-4.asm

📁 《增强型8051单片机实用开发技术》例程代码
💻 ASM
字号:
	$INCLUDE  (STC12C5A.INC)  ;包含STC12C5A60S2单片机寄存器定义文件

	ORG    0000H
	LJMP   MAIN
	ORG    0003H
	LJMP	INT0_ISR
	ORG    0013H
	LJMP   INT1_ISR
	ORG    0100H
MAIN:
	MOV   SP,#70H
	MOV   R3, #0         	;P1 LED递增方式变化, 表示程序开始运行
MAIN_LOOP:
	MOV    A, R3
	CPL    A
	MOV    P1, A
	LCALL DELAY
	INC   R3
	MOV   A, R3 
	SUBB  A, #18H 
	JC    MAIN_LOOP
	MOV  P1, #0FFH   		;全部指示灯熄灭,表示进入掉电模式状态
	CLR  IT0          		;设置低电平激活外部中断 
	SETB EX0          		;允许外部中断0
	CLR  IT1          		;设置低电平激活外部中断
	SETB EX1          		;允许外部中断1 
	SETB EA           		;开中断, 若不开中断,则不能从掉电模式中唤醒
	;下条语句将使CPU进入空闲状态或掉电状态
	;低电平激活外部中断可以将CPU从掉电状态中唤醒,方法为:将外部中断脚拉低
	MOV  PCON, #00000010B   ;令PD=1, 进入掉电状态
	                        ;如果要进入空闲状态, 则令IDL=1
	MOV   P1, #0DFH    		;1101,1111B 请注意: 
	           ; 1.外部中断使MCU退出 Power Down 状态,执行本条指令后响应中断
	           ; 表现为P1.5与P1.7 的LED 同时亮(INT0唤醒) 
	           ; 2.外部中断使MCU退出 idle 状态,先响应中断然后再执行本条指令,
	           ; 表现为P1.7 的LED先亮(INT0唤醒),P1.5 的LED后亮 
	           ; 3.实际使用掉电模式时,本语句应用NOP代替 
	NOP   ;实际使用掉电模式时,应在MOV PCON, #00000010B语句后多加几个NOP
	NOP
	NOP
	SJMP $              	;循环, 停机
INT0_ISR:               	;外部中断0服务程序
	CLR   P1.7          	;点亮 P1.7 LED 表示已响应INT0 中断
	LCALL DELAY         	;延时是为了便于观察, 实际应用不需延时
	RETI 
INT1_ISR:               	;外部中断1服务程序
	CLR   P1.6          	;点亮 P1.6 LED 表示已响应INT1中断
	ACALL DELAY         	;延时是为了便于观察, 实际应用不需延时
    RETI 
DELAY: 
	CLR    A 
	MOV    R0, A 
	MOV    R1, A 
	MOV    R2, #02 
DELAY_LOOP:
	DJNZ   R0, DELAY_LOOP
	DJNZ   R1, DELAY_LOOP
	DJNZ   R2, DELAY_LOOP
	RET
	END


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -