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

📄 md-fan.asm

📁 美的风扇的源码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		SZ	F_NOPOWER
		JMP	ENDLED	
		SNZ	F_ONOFF
		JMP	ENDLED
		MOV	A,		LEDN
		ADDM	A,		PCL
		JMP	ENDLED
		JMP	LED1
		JMP	LED2
		JMP	LED3
		JMP	LED4
		JMP	LED5				
		JMP	ENDLED	
LED1:		MOV	A,		SPEED
		ADDM	A,		PCL
		JMP	ENDLED
		JMP	LED11
		JMP	LED12
		JMP	LED13	
LED11:		SET	LED_SEG3			; L
		JMP	LED14
LED12:		SET	LED_SEG2			; M
		JMP	LED14
LED13:		SET	LED_SEG1			; H
	
LED14:		CLR	LED_COM4			
		JMP	ENDLED
LED2:		MOV	A,		TIME
		ADDM	A,		PCL
		JMP	ENDLED
		JMP	LED21		
		JMP	LED22
		JMP	LED23	
LED21:		SET	LED_SEG6
		JMP	LED24
LED22:		SET	LED_SEG5
		JMP	LED24
LED23:		SET	LED_SEG4		
LED24:		CLR	LED_COM2
		JMP	ENDLED		
LED3:		SZ	ION.0
		SET	LED_SEG5
		CLR	LED_COM1
		JMP	ENDLED
LED4:		SZ	SWING.0
		SET	LED_SEG4
		CLR	LED_COM1
		JMP	ENDLED
LED5:		MOV	A,		HEAT
		ADDM	A,		PCL
		JMP	ENDLED
		JMP	LED51		
		JMP	LED52
		JMP	LED53	
LED51:		SET	LED_SEG1
		JMP	LED54
LED52:		SET	LED_SEG2
		JMP	LED54
LED53:		SET	LED_SEG3		
LED54:		CLR	LED_COM3
		JMP	ENDLED
ENDLED:		RET
		NOP
		NOP
		NOP
		NOP
		NOP
		JMP	RESET
;****************************************************
KEY:		SET	LED_COM1
		SET	LED_COM2
		SET	LED_COM3
		SET	LED_COM4
		CLR	LED_SEG1
		CLR	LED_SEG2
		CLR	LED_SEG3
		CLR	LED_SEG4
		CLR	LED_SEG5
		CLR	LED_SEG6
                SET     PAC.6
                SET     PAC.7
		SET	PBC.0
		SET	PBC.6
                SET     PBC.7		
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
                NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		CLR	KEY_VALUE
		SNZ	PA.6
		SET	KEY_VALUE.1
		SNZ	PA.7
		SET	KEY_VALUE.0
		SNZ	PB.6
		SET	KEY_VALUE.2
                SNZ	PB.0
		SET	KEY_VALUE.3
		SNZ	PB.7
		SET	KEY_VALUE.4            
                CLR     PAC.6
                CLR     PAC.7
		CLR	PBC.0
		CLR	PBC.6
                CLR     PBC.7	
		SET	LED_COM1
		SET	LED_COM2
		SET	LED_COM3
		SET	LED_COM4
		CLR	LED_SEG1
		CLR	LED_SEG2
		CLR	LED_SEG3
		CLR	LED_SEG4
		CLR	LED_SEG5
		CLR	LED_SEG6	
		MOV	A,		KEY_VALUE
		SUB	A,		1
		SZ	C
		JMP	ON_KEY
NO_KEY:		CLR	F_ONKEY				; 按键释放
		CLR	KEY_DELAY1
		CLR	KEY_VALUE0
		MOV	A,		KEY_DELAY2
		SUB	A,		10
		SNZ	C
		INC	KEY_DELAY2
		JMP	ENDKEY
ON_KEY:		MOV	A,		KEY_VALUE
		XOR	A,		KEY_VALUE0
		SZ	Z
		JMP	ON_KEY1
		MOV	A,		KEY_VALUE
		MOV	KEY_VALUE0,	A
		CLR	KEY_DELAY1
		JMP	ENDKEY
ON_KEY1:	MOV	A,		KEY_DELAY1	; 同一键值连续5次?
		SUB	A,		5
		SZ	C
		JMP	KEY_JUD
		INC	KEY_DELAY1
		JMP	ENDKEY
KEY_JUD:	SZ	F_ONKEY
		JMP	ENDKEY
		MOV	A,		KEY_DELAY2	; 按键释放时间超过3*Tscankey
		SUB	A,		3
		SNZ	C
		JMP	ENDKEY0
		CLR	KEY_DELAY2
		SET	F_ONKEY
		SNZ	F_TEST
		JMP	$+3
		CLR	F_TEST
		JMP	ENDKEY	
		MOV	A,		KEY_VALUE
		XOR	A,		1H
		SZ	Z
		JMP	KEY1
		MOV	A,		KEY_VALUE
		XOR	A,		2H
		SZ	Z
		JMP	KEY2
		SNZ	F_ONOFF
		JMP	ENDKEY
		MOV	A,		KEY_VALUE
		XOR	A,		4H
		SZ	Z
		JMP	KEY3
		MOV	A,		KEY_VALUE
		XOR	A,		8H
		SZ	Z
		JMP	KEY4
		MOV	A,		KEY_VALUE
		XOR	A,		10H
		SZ	Z
		JMP	KEY5
		
ENDKEY0:	SZ	F_TEST
		JMP	ENDKEY01		
		MOV	A,	TESTA
		SUB	A,	50
		SZ	C
		JMP	ENDKEY01
		CLR	TESTA
		MOV	A,	KEY_VALUE
		XOR	A,	1H
		SNZ	Z
		JMP	ENDKEY01
		INC	TESTB
		MOV	A,	TESTB
		SUB	A,	100
		SNZ	C
		JMP	ENDKEY01
		CLR	TESTB
		INC	TESTC
		MOV	A,	TESTC
		SUB	A,	4
		SNZ	C
		JMP	ENDKEY01
		CLR	TESTC
		SET	F_TEST
ENDKEY01:	CLR	KEY_VALUE
		CLR	KEY_DELAY2
		JMP	ENDKEY
KEY1:		SZ	F_ONOFF			; ON/SPEED/OFF KEY
		JMP	KEY11
ONK1:		CLR	T1SEC_TIMER3
		CLR	T_SEC3
		CLR	SPEED
		CLR	STEP
		CLR	TIME
		CLR	HEAT
		CLR	SWING
		CLR	ION		
		SET	F_ONOFF
		MOV	A,		1
		MOV	SPEED,		A
		MOV	A,		50
		MOV	T_BUZ1,		A		
		JMP	KBUZ2
KEY11:		MOV	A,		SPEED
		XOR	A,		0
		SNZ	Z
		JMP	KEY13
		CLR	T1SEC_TIMER3
		CLR	T_SEC3
KEY13:		MOV	A,		SPEED
		SUB	A,		3
		SZ	C
		JMP	KEY12
		INC	SPEED
		CLR	T1SEC_TIMER1
		CLR	F_OUTPUT
		JMP	KBUZ1
KEY12:		CLR	SPEED
		MOV	A,		HEAT
		XOR	A,		0
		SZ	Z
		CLR	F_ONOFF
		JMP	KBUZ1

KEY2:		SZ	F_ONOFF			; ON/HEAT/OFF KEY
		JMP	KEY21
ONK2:		
		CLR	SPEED
		CLR	STEP
		CLR	TIME
		CLR	HEAT
		CLR	SWING
		CLR	ION		
		SET	F_ONOFF
		MOV	A,		1
		MOV	HEAT,		A
		MOV	A,		50
		MOV	T_BUZ1,		A		
		JMP	KBUZ2
KEY21:		MOV	A,		HEAT
		SUB	A,		3
		SZ	C
		JMP	KEY22
		INC	HEAT
		CLR	T1SEC_TIMER1
		CLR	F_OUTPUT1
		JMP	KBUZ1
KEY22:		CLR	HEAT
		CLR	ION
		MOV	A,		SPEED
		XOR	A,		0
		SZ	Z
		CLR	F_ONOFF
		JMP	KBUZ1

KEY3:		SNZ	F_ONOFF
		JMP	ENDKEY
		MOV	A,		TIME		; TIMER KEY
		SUB	A,		3H
		SZ	C
		JMP	OFFK3
		INC	TIME
		JMP	ENDK3
OFFK3:		CLR	TIME
ENDK3:		CLR	T1SEC_TIMER
		CLR	T_SEC
		CLR	T_MIN
		JMP	KBUZ1

KEY4:		SNZ	F_ONOFF				;ION KEY
		JMP	ENDKEY
		MOV	A,		HEAT
		XOR	A,		0
		SZ	Z
		JMP	ENDKEY
		INC	ION
		JMP	KBUZ1
KEY5:		SNZ	F_ONOFF				; SWING KEY
		JMP	ENDKEY
		INC	SWING		
		JMP	KBUZ1

KBUZ1:		MOV	A,		30
		MOV	T_BUZ1,		A
		CLR	BUZ_COUNT
KBUZ2:		CLR	T_BUZ2
		SET	F_BUZ
ENDKEY:		JMP	LED		
		NOP
		NOP
		NOP
		NOP
		NOP
		JMP	RESET
;*************************************************
RESETJUD:
		JMP	CLR_RAM
		MOV	A,		RESETA
		XOR	A,		5AH
		SNZ	Z
		JMP	CLR_RAM
		MOV	A,		RESETD
		XOR	A,		5AH
		SNZ	Z
		JMP	CLR_RAM
		MOV	A,		RESETB
		XOR	A,		0A5H	
		SNZ	Z
		JMP	CLR_RAM
		MOV	A,		RESETE
		XOR	A,		0A5H
		SNZ	Z
		JMP	CLR_RAM
		MOV	A,		RESETC
		XOR	A,		69H
		SNZ	Z
		JMP	CLR_RAM
		MOV	A,		RESETF
		XOR	A,		69H
		SNZ	Z
		JMP	CLR_RAM
DATAJUD:	
		SNZ	F_ONOFF
		JMP	CLR_RAM
		MOV	A,		SPEED
		SUB	A,		3
		SZ	C
		JMP	CLR_RAM
		;MOV	A,		MODE
		;SUB	A,		3
		;SZ	C
		;JMP	CLR_RAM
		MOV	A,		TIME
		SUB	A,		10H
		SZ	C
		JMP	CLR_RAM
		MOV	A,		SWING		
		SUB	A,		4H
		SNZ	C
		JMP	END_RESETJUD

CLR_RAM:	MOV	A,		40H
		MOV	MP,		A
CLR_RAML:						; RAM 初始化
		CLR	R0
		INC	MP
		MOV	A,		MP
		XOR	A,		0FFH
		SNZ	Z
		JMP	CLR_RAML
		CLR	R0
END_RESETJUD:	JMP	LOOP0
;*************************************************		
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		JMP	RESET		
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP
		JMP	RESET
;*******************************************************
		ORG	380H
NATURE:							; 自然风状态
	
		JMP	HNATURE

LNATURE:						; 弱自然风
		MOV	A,		STEP
		SUB	A,		30
		SZ	C
		CLR	STEP
		MOV	A,		STEP
		ADDM	A,		PCL
		JMP	SPN1
		JMP	SPN1
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	OFFN
		JMP	SPN2
		JMP	SPN2
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	SPN1
		JMP	SPN1
		JMP	OFFN
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	SPN1
		JMP	SPN1
		JMP	SPN1
		JMP	OFFN
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	SPN2
		JMP	SPN2
		NOP
		NOP
		NOP
		NOP
		JMP	RESET

	
MNATURE:						; 中自然风
		MOV	A,		STEP
		SUB	A,		30
		SZ	C
		CLR	STEP
		MOV	A,		STEP
		ADDM	A,		PCL
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	SPN2
		JMP	SPN2
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	OFFN
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	SPN2
		JMP	SPN2
		JMP	SPN3
		JMP	SPN3
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	OFFN
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	SPN2
		JMP	SPN2
		NOP
		NOP
		NOP
		NOP
		JMP	RESET

HNATURE:						; 强自然风
		MOV	A,		STEP
		SUB	A,		30
		SZ	C
		CLR	STEP
		MOV	A,		STEP
		ADDM	A,		PCL
		JMP	SPN3
		JMP	SPN3
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	OFFN
		JMP	SPN2
		JMP	SPN2
		JMP	SPN3
		JMP	SPN3
		JMP	SPN3
		JMP	SPN3
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	SPN2
		JMP	SPN2
		JMP	SPN1
		JMP	SPN1
		JMP	SPN3
		JMP	SPN3
		JMP	OFFN
		JMP	SPN2
		JMP	SPN2
		JMP	SPN2
		JMP	SPN2
		JMP	SPN3
		JMP	SPN3
;*************************************************
		NOP
		NOP
		NOP
		NOP
		JMP	RESET
		END

⌨️ 快捷键说明

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