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

📄 alarm music.asm

📁 一个很好的闹铃音乐程序
💻 ASM
字号:
		MOV	A, @2
		MOV	LOOP1, A
		CLR	FLAG
		BS	FLAG, _STEP1
ALARM_STEP1_10:
		CLR	HL		
ALARM_STEP1_1:
		MOV	A, @0X00	;0X00,P50 AS INPUT
		IOW	IOC5
		MOV	A, @1
		MOV	PORT5, A
		CALL	DELAY3MS	
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT
		MOV	A, @3
		IOW	IOC5			
		
		MOV	A, @156
		JBC	FLAG, _STEP1
		MOV	A, @22			; 50MS/2250US=22.2
		JBC	FLAG, _STEP2
		MOV	A, @36
		JBC	FLAG, _STEP3
		MOV	A, @56
		JBC	FLAG, _STEP4
		MOV	A, @86
		MOV	COUNT, A			
ALARM_STEP1_2:
		CALL	MUSIC_ALARM_OUT
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT
		
		MOV	A, @15
		CALL	DELAY100XMS
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT
		INC	HL
		BC	R3, _C		
		RLC	FLAG
		JBS	FLAG, 5
		JMP	ALARM_STEP1_1
		CLR	FLAG	
		BS	FLAG, _STEP1
		DJZ	LOOP1
		JMP	ALARM_STEP1_10
					
		IOR	IOC5
		AND	A, @0EH
		IOW	IOC5
		BS	PORT5, _BELL1_CH
		CALL	DELAY3MS		
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT
												
		MOV	A, @3
		IOW	IOC5				
		MOV	A, @8
		MOV	LOOP1, A
ALARM_STEP20:		
		MOV	A, @5
		MOV	HL, A		
ALARM_STEP2:
		MOV	A, @156
		JBC	FLAG, _STEP1
		MOV	A, @22			; 50MS/2250US=22.2
		JBC	FLAG, _STEP2
		MOV	A, @86
		JBC	FLAG, _STEP3
		MOV	A, @56
		MOV	COUNT, A
ALARM_STEP2_2:
		CALL	MUSIC_ALARM_OUT
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT
		
		INC	HL
		BC	R3, _C
		RLC	FLAG
		JBS	FLAG, 4
		JMP	ALARM_STEP2		
		CLR	FLAG
		BS	FLAG, _STEP1	
		MOV	A, @15
		CALL	DELAY100XMS
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT
		
		MOV	A, @5
		SUB	A, LOOP1
		JBS	R3, _C	
		JMP	ALARM_STEP2_3
		IOR	IOC5			;LOOP>=5
		AND	A, @0EH
		IOW	IOC5
		BS	PORT5, _BELL1_CH
		CALL	DELAY3MS
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT		
		MOV	A, @3
		IOW	IOC5							
ALARM_STEP2_3:
		MOV	A, @156
		JBC	FLAG, _STEP1
		MOV	A, @22			; 50MS/2250US=22.2
		JBC	FLAG, _STEP2
		MOV	A, @56
		JBC	FLAG, _STEP3
		MOV	A, @36
		JBC	FLAG, _STEP4
		MOV	A, @86
		MOV	COUNT, A
ALARM_STEP2_5:
		CALL	MUSIC_ALARM_OUT
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT
		
		INC	HL
		BC	R3, _C
		RLC	FLAG
		JBS	FLAG, 5
		JMP	ALARM_STEP2_3								
		CLR	FLAG
		BS	FLAG, _STEP1		
		MOV	A, @15
		CALL	DELAY100XMS
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT		
		
		MOV	A, @5
		SUB	A, LOOP1
		JBS	R3, _C
		JMP	ALARM_STEP2_7
		JBS	R3, _Z
		JMP	ALARM_STEP2_6
		MOV	A, @0X00		;PORT5.0 AS OUTPUT PIN		
		IOW	IOC5
		BS	PORT5, _BELL1_CH
		JMP	ALARM_STEP2_7		
ALARM_STEP2_6:
		IOR	IOC5
		AND	A, @0EH
		IOW	IOC5
		BS	PORT5, _BELL1_CH
		CALL	DELAY3MS
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT		
		MOV	A, @3
		IOW	IOC5				
ALARM_STEP2_7:			
		DJZ	LOOP1
		JMP	ALARM_STEP20
	
ALARM_STEP30:	
		MOV	A, @14
		MOV	HL, A		
ALARM_STEP3:
		MOV	A, @172			;100MS/580US=172.4
		JBC	FLAG, _STEP1
		MOV	A, @44			; 100MS/2250US=44.4
		JBC	FLAG, _STEP2
		MOV	A, @255			;313, ; 100MS/320US=312.5
		JBC	FLAG, _STEP3
		MOV	A, @71			; 100MS/1400US=71.4
		JBC	FLAG, _STEP4
		MOV	A, @111			; 100MS/900US=111
		MOV	COUNT, A
ALARM_STEP3_2:
		CALL	MUSIC_ALARM_OUT
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT		
		MOV	A, @30					
		CALL	DELAY1XMS
		JBC	FLAG, _STOP
		JMP	MUSIC_ALARM_EXIT
		INC	HL				
		BC	R3, _C
		RLC	FLAG
		JBS	FLAG, 5
		JMP	ALARM_STEP3
		CLR	FLAG
		BS	FLAG, _STEP1			
		JMP	ALARM_STEP30		
MUSIC_ALARM_EXIT:		

⌨️ 快捷键说明

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