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

📄 lowtest1.inc

📁 功能:由KEY1键使系统进入空闲状态
💻 INC
字号:
; File:LOWTEST1.ASM
; 功能:由KEY1键使系统进入空闲状态,由定时器0中断唤醒;
;       由KEY2键使系统进入掉电状态,由KEY3键盘中断唤醒。
; 说明:将跳线器J27短接到OCA端,J28短接到BEEP端。
;       将跳线器J4、J25、J26分别短接到KEY1、KEY3、KEY2端。
; 	将跳线器J8、J9短接到HXTAL1、HXTAL2端。

$NOMOD51
$INCLUDE (REG932.INC)

KEY1		BIT	P0.0				
KEY2		BIT	P0.1
KEY3		BIT	P0.2

LEDCON		BIT	P2.6			; 定义LED控制端口
BEEP		BIT	P2.7

; 6M高频晶振,510分频,即CCLK=6M/(255*2)=11764.7Hz,定时0.5S
TH0_DATA	EQU	0F4H								
TL0_DATA	EQU	82H			

		ORG	0000H
		AJMP	MAIN

		ORG	000BH		
		AJMP	T0_INT			; 定时器0中断
		
		ORG	003BH		
		PUSH	07H
		JNB	KEY3,$			; 等待按键放开
		MOV	R7,#20H
		DJNZ	R7,$
		JNB	KEY3,$
		MOV	KBCON,#00H		; 清除键盘中断标志
		POP	07H
		RETI


		ORG	0100H
MAIN:		MOV	P2M1,#0C0H		; 设置端口输出方式
		MOV	P2M2,#0C0H
		MOV	P0M1,#00H
		MOV	P0M2,#00H

SYS_INI:	ORL	AUXR1,#80H		; 置位CLKLP,以降低功耗
		MOV	DIVM,#255		; 进行CPU时钟分频		

		MOV	TMOD,#01H		; 设置定时器0及中断允许		
		MOV	TH0,#TH0_DATA
		MOV	TL0,#TL0_DATA
		SETB	TR0
		SETB	ET0
		SETB	EA
		
		MOV	KBCON,#00H		; 设置键盘中断
		MOV	KBMASK,#04H		; 设置P0.2键盘中断有效
		MOV	IEN1,#02H		; 开放外键盘中断

		MOV	PCONA,#11101111B	; LPC932A1功能部件掉电

WAIT_KEY1:	JB	KEY1,WAIT_KEY2
		JNB	KEY1,$
		ACALL	RUNBEEP			; 蜂鸣器
		MOV	PCON,#00100001B		; CPU进行空闲模式
		
WAIT_KEY2:	JB	KEY2,WAIT_KEY1
		JB	KEY2,$
		ACALL	RUNBEEP
		MOV	PCON,#00100011B		; CPU完全掉电
		SJMP	WAIT_KEY1

; 名称:RUNBEEP
; 功能:蜂鸣器响一声
; 占用资源:R6,R7
RUNBEEP:
		CLR	BEEP
		MOV	R7,#5
RUNBEEP_L1:	MOV	R6,#200
		DJNZ	R6,$
		DJNZ	R7,RUNBEEP_L1
		SETB	BEEP
		RET

; 定时器0中断服务
; 取反LEDCON,以控制LED闪动。
T0_INT:
		MOV	TH0,#TH0_DATA
		MOV	TL0,#TL0_DATA	
		CPL	LEDCON
		RETI
		
		END

⌨️ 快捷键说明

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