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

📄 cd64k.asm

📁 51mini仿真器中文使用手册(含驱动,usb驱动程序)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
			SETB	SEDCTLCS

			MOV	A,#00H
			LCALL	DISPWIN

			LCALL	DELAY200MS
			LCALL	DELAY200MS
			LCALL	DELAY200MS
			LCALL	DELAY200MS
			LCALL	DELAY200MS
			LCALL	DELAY200MS
			CLR	ENBMUTE
			CLR	MUTEPORT
			LJMP	PF001

;-------------------------------------------------------------
;主窗口
STARTGR32B:		NOP
			SETB	DISPMODEOREFT
			MOV	MASTEFMODE,#00H
			MOV	MASTSETMODE,#00H
			MOV	MASTDSNAME,#00H
			MOV	MASTDSFORMAT,#00H
			MOV	MASTINPUT,#10H
			SETB	ENBNIGHT

			LCALL	PF030		;初始化输入源
			LCALL	PF038		;读取输入源

;			MOV	HSBERRNUMTCR,#05H ;200ms
;			CLR	HSBERRENB	  ;出错使能

;	WLPST001:	JB	HSBERRENB,WLPST008
;			NOP
;			JNB	HSBCMDENB,WLPST001

;			MOV	A,HSBCMDBUF
;			MOV	MASTSETMODE,HSBCMDBUF+1



	WLPST008:	LCALL	PF018		;读取主音量
			LCALL	PF461		;设置RL-SPEAKER
			LCALL	GETDSFORMAT	;读取音频格式

	WLPSTRT01:	MOV	R6,#7EH		;初始化完成
			MOV	R7,#03H
			LCALL	HSBMSGRET
			JB	HSBERRENB,WLPSTRT0F
			JNZ	WLPSTRT01
	WLPSTRT0F:	RET

PF001:			MOV	A,#02H
			LCALL	DISPWIN		;显示一窗口
			LCALL	CLRWINBCK	;清窗口背景
			MOV	A,MASTVALUME
			LCALL	DISPDTL		;显示主量
			LCALL	DISPVOLBAR
			LCALL	PF03B		;显示输入源
			LCALL	DISPDFMSG	;显示静噪开关
			LCALL	DISPSPKSTATE	;显示声道信息
			LCALL	DISPMODE	;显示聆听模式
			LCALL	DISPEFMODE	;显示效果模式
			LCALL	DISPNIGHT	;
			NOP
			LJMP	WLOOP
;-------------------------------------------------------------
;设置VALUME
;--			
PF020:			MOV	A,#02H
			LCALL	DISPWIN	
PF021:			NOP
	PF022:		JB	HSBERRENB,PF014
			MOV	R6,#08H
			MOV	R7,#80H
			LCALL	HSBMSGRET
			JNZ	PF022

			MOV	A,R4
			XRL	A,#38H
			JZ	PF013
			SJMP	PF014
;-------------------------------------------------------------
;设置VALUME
;++
PF010:			MOV	A,#02H
			LCALL	DISPWIN	
PF011:			NOP
	PF012:		JB	HSBERRENB,PF014
			MOV	R6,#08H
			MOV	R7,#0C0H
			LCALL	HSBMSGRET
			JNZ	PF012

			MOV	A,R4
			XRL	A,#38H
			JZ	PF013
	PF014:		LCALL	PF018
			MOV	A,MASTVALUME
			LCALL	DISPDTL
			LCALL	DISPVOLBAR

			LJMP	WLOOP

	PF013:		LCALL	PF01A
			MOV	A,MASTVALUME
			LCALL	DISPDTL
			LCALL	DISPVOLBAR
			LJMP	WLOOP

;-------------------------------------------------------------
;读取主音量
PF018:			MOV	R6,#08H
			MOV	R7,#00H
			LCALL	HSBMSGRET
			JB	HSBERRENB,PF01F
			JNZ	PF018
			MOV	A,R4
			XRL	A,#38H
			JNZ	PF018
PF01A:			MOV	A,R5
			CLR	C
			SUBB	A,#50H
			JC	PF01B
			MOV	R5,#50H
	PF01B:		MOV	MASTVALUME,R5
	PF01F:		RET
;-------------------------------------------------------------
;系统语言切换
PF261:			JNB	MULTILANGUAGE,PF26E
			CPL	ISCHINESE
			MOV	C,ISCHINESE
			MOV	LANCHANGE,C
			LJMP	PF206
	PF26E:		LJMP	WLEND
;-------------------------------------------------------------
PF241:			MOV	A,B
			ANL	A,#0FH
			MOV	R1,A
			SUBB	A,#05H
			JC	PF242
			LJMP	WLEND
	PF242:		MOV	A,R1
			MOV	PROGPRTM,A
			LJMP	PF221
;-------------------------------------------------------------
;设置选择功能
;++
PF202:			INC	PROGPRTM
			CLR	C
			MOV	A,PROGPRTM
			SUBB	A,#05H
			JC	PF203
			MOV	PROGPRTM,#00H
	PF203:		LJMP	PF20A
;--
PF204:			DEC	PROGPRTM
			MOV	A,PROGPRTM
			CLR	C
			SUBB	A,#05H
			JC	PF205
			MOV	PROGPRTM,#04H
	PF205:		LJMP	PF20A

;显示设置窗口
PF201:			MOV	PROGPRTM,#00H
PF206:			MOV	A,#03H
			LCALL	DISPWIN		;显示一窗口
			LCALL	DISPLAYLANMARK
			LCALL	CLRWINBCK	;清窗口背景

	PF20A:		MOV	DPX0,#36
			MOV	DPX1,#124
			MOV	DPY0,#32
			MOV	DPY1,#149
			LCALL	ClrRect
			MOV	DPX0,#36
			MOV	DPX1,#124

			MOV	A,PROGPRTM
			ADD	A,#PF20FH-PF20B
			MOVC	A,@A+PC
	PF20B:		MOV	DPY0,A
			ADD	A,#21
			MOV	DPY1,A
			LCALL	FilRect
			LJMP	WLEND
	PF20FH:		DB	32,56,80,104,128

;-------------------------------------------------------------
;选择菜单
PF221:			MOV	A,PROGPRTM
			CJNE	A,#00H,PF223
			MOV	PROGSTATE,#03H
			LJMP	PF301

	PF223:		CJNE	A,#01H,PF225
			MOV	PROGSTATE,#04H
			LJMP	PF401

	PF225:		CJNE	A,#02H,PF227
			MOV	PROGSTATE,#05H
			LJMP	PF501

	PF227:		CJNE	A,#03H,PF229
			MOV	PROGSTATE,#06H
			LJMP	PF601

	PF229:		MOV	PROGSTATE,#00H
			LJMP	PF001
;-------------------------------------------------------------
PF321:			MOV	A,PROGPRTM
			CJNE	A,#00H,PF323
			LCALL	PF328
			LJMP	WLOOP
	PF323:		CJNE	A,#01H,PF325
			LCALL	PF328
			LJMP	WLOOP	
	PF325:		
			SETB	ENBDELAYMUTE	;延迟静音使能
			MOV	DELAYMUTECTR,#14H	;延迟静音
			SETB	MUTEPORT
			LCALL	PF328
			MOV	PROGSTATE,#00H
			LJMP	PF001


;-------------------------------------------------------------
PF341:			MOV	A,B
			ANL	A,#0FH
			MOV	R1,A
			SUBB	A,#03H
			JC	PF342
			LJMP	WLEND
	PF342:		MOV	A,R1
			MOV	PROGPRTM,A

			MOV	A,PROGPRTM
			CJNE	A,#00H,PF343
			LCALL	PF328
			LJMP	PF308
	PF343:		CJNE	A,#01H,PF345
			LCALL	PF328
			LJMP	PF308
	PF345:		
			SETB	ENBDELAYMUTE	;延迟静音使能
			MOV	DELAYMUTECTR,#14H	;延迟静音
			SETB	MUTEPORT
			LCALL	PF328
			MOV	PROGSTATE,#00H
			LJMP	PF001

;-------------------------------------------------------------
;DO TONE TEST
PF328:			JB	HSBERRENB,PF32F
			MOV	A,PROGPRTM
			CJNE	A,#00H,PF329
			MOV	R6,#10H
			MOV	R7,#0C0H
			SJMP	PF32B
	PF329:		CJNE	A,#01H,PF32A
			MOV	R6,#10H
			MOV	R7,#0C0H
			SJMP	PF32B
	PF32A:		MOV	R6,#10H
			MOV	R7,#80H
			SJMP	PF32B
	PF32B:		LCALL	HSBMSGRET
			JNZ	PF328
	PF32F:		RET

;-------------------------------------------------------------
;TONE TEST 显示
PF301:			MOV	PROGPRTM,#00H
	PF308:		MOV	A,#04H
			LCALL	DISPWIN		;显示一窗口
			LCALL	CLRWINBCK
			
	PF30A:		MOV	DPX0,#28
			MOV	DPX1,#132
			MOV	DPY0,#59
			MOV	DPY1,#126
			LCALL	ClrRect
			MOV	A,PROGPRTM
			ADD	A,#PF30FH-PF30B
			MOVC	A,@A+PC
	PF30B:		MOV	DPY0,A
			ADD	A,#19
			MOV	DPY1,A
			MOV	DPX0,#28
			MOV	DPX1,#132
			LCALL	FilRect
			LJMP	WLEND
	PF30FH:		DB	59,83,107


;-------------------------------------------------------------
;TONE TEST 设置选择功能
;++
PF302:			INC	PROGPRTM
			CLR	C
			MOV	A,PROGPRTM
			SUBB	A,#03H
			JC	PF303
			MOV	PROGPRTM,#00H
	PF303:		LJMP	PF30A
;--
PF304:			DEC	PROGPRTM
			MOV	A,PROGPRTM
			CLR	C
			SUBB	A,#03H
			JC	PF305
			MOV	PROGPRTM,#02H
	PF305:		LJMP	PF30A
;-------------------------------------------------------------
PF4A1:			MOV	A,B
			ANL	A,#0FH
			MOV	R1,A
			SUBB	A,#05H
			JC	PF4A2
			LJMP	WLEND
	PF4A2:		MOV	A,R1
			MOV	PROGPRTM,A
			LJMP	PF421

;-------------------------------------------------------------
;DO SPEAKER SETUP 
PF421:			MOV	A,PROGPRTM
			CJNE	A,#00H,PF423
			LJMP	PF42A
	PF423:		CJNE	A,#01H,PF425
			LJMP	PF42A	
	PF425:		CJNE	A,#02H,PF427
			LJMP	PF42A	
	PF427:		CJNE	A,#03H,PF429
			LJMP	PF42A
	PF429:		MOV	PROGSTATE,#00H
			LJMP	PF001
	PF42A:		
			SETB	ENBDELAYMUTE	;延迟静音使能
			MOV	DELAYMUTECTR,#14H	;延迟静音
			SETB	MUTEPORT
			LCALL	PF461
			LCALL	PF431
			LCALL	PF441
			LCALL	PF451
			LJMP	PF402K1

;----------------------------------------------------------------
;REAR SPEAKER
PF431:			JB	HSBERRENB,PF43E
			MOV	A,PROGPRTM
			CLR	C
			SUBB	A,#04H
			JNC	PF43E
			MOV	A,PROGPRTM
			ADD	A,#PF43FD-PF43B
			MOVC	A,@A+PC
	PF43B:		MOV	R7,A
			MOV	C,ACC.0
			MOV	A,PROGPRTS
			MOV	ACC.1,C
			MOV	PROGPRTS,A
			MOV	R6,#43H
			LCALL	HSBMSGRET
			JNZ	PF431
			MOV	A,R4
			XRL	A,#43H
			JNZ	PF431
	PF43E:		RET
	PF43FD:		DB	81H,80H,81H,80H	 ;小/无/小/无

;CENTER SPEAKER
PF441:			JB	HSBERRENB,PF44E
			MOV	A,PROGPRTM
			CLR	C
			SUBB	A,#04H
			JNC	PF44E
			MOV	A,PROGPRTM
			ADD	A,#PF44FD-PF44B
			MOVC	A,@A+PC
	PF44B:		MOV	R7,A
			MOV	C,ACC.0
			MOV	A,PROGPRTS
			MOV	ACC.0,C
			MOV	PROGPRTS,A
			MOV	R6,#42H
			LCALL	HSBMSGRET
			JNZ	PF441
			MOV	A,R4
			XRL	A,#42H
			JNZ	PF441
	PF44E:		RET
	PF44FD:		DB	81H,81H,80H,80H ;小/小/无/无

;SW SPEAKER
PF451:			JB	HSBERRENB,PF455
			MOV	R7,#81H	;有
			MOV	R6,#44H
			LCALL	HSBMSGRET
			JNZ	PF451
			MOV	A,R4
			XRL	A,#44H
			JNZ	PF451
			ORL	PROGPRTS,#08H
	PF455:		RET

;RL SPEAKER
PF461:			JB	HSBERRENB,PF465
			MOV	R7,#81H	;小
			MOV	R6,#41H
			LCALL	HSBMSGRET
			JNZ	PF461
			MOV	A,R4
			XRL	A,#41H
			JNZ	PF461
			ORL	PROGPRTS,#04H
	PF465:		RET
;GET SPEAKER SETUP DATA
;DATA PROGPRTS:X/X/X/X/SW/MAIN/REAR/CENTER
PF471:			JB	HSBERRENB,PF47F
			MOV	R6,#11H		;MAIN
			MOV	R7,#00H
			LCALL	HSBMSGRET
			JNZ	PF471
			MOV	A,R4
			XRL	A,#41H
			JNZ	PF471
			MOV	A,R5
			CLR	C
			JZ	PF472
			SETB	C
	PF472:		MOV	A,PROGPRTS
			MOV	ACC.2,C
			MOV	PROGPRTS,A
PF473:			JB	HSBERRENB,PF47F
			MOV	R6,#12H		;CENTER
			MOV	R7,#00H
			LCALL	HSBMSGRET
			JNZ	PF473
			MOV	A,R4
			XRL	A,#42H
			JNZ	PF473
			MOV	A,R5
			CLR	C
			JZ	PF474
			SETB	C
	PF474:		MOV	A,PROGPRTS
			MOV	ACC.0,C
			MOV	PROGPRTS,A
PF475:			JB	HSBERRENB,PF47F
			MOV	R6,#13H		;RR
			MOV	R7,#00H
			LCALL	HSBMSGRET
			JNZ	PF475
			MOV	A,R4
			XRL	A,#43H
			JNZ	PF475
			MOV	A,R5
			CLR	C
			JZ	PF476
			SETB	C
	PF476:		MOV	A,PROGPRTS
			MOV	ACC.1,C
			MOV	PROGPRTS,A
PF477:			JB	HSBERRENB,PF47F
			MOV	R6,#14H		;RR
			MOV	R7,#00H
			LCALL	HSBMSGRET
			JNZ	PF477
			MOV	A,R4
			XRL	A,#44H
			JNZ	PF477
			MOV	A,R5
			CLR	C
			JZ	PF478
			SETB	C
	PF478:		MOV	A,PROGPRTS
			MOV	ACC.3,C
			MOV	PROGPRTS,A
	PF47F:		RET
;----------------------------------------------------------------
;DISPLAY SPEAKER STATE
PF481:			MOV	DPX0,#58	;CENTER
			MOV	DPX1,#100
			MOV	DPY0,#2
			MOV	DPY1,#20
			MOV	A,PROGPRTS
			JNB	ACC.0,PF482
			LCALL	FilRect
			SJMP	PF483
	PF482:		LCALL	ClrRect

	PF483:		MOV	DPX0,#2		;REAR
			MOV	DPX1,#28
			MOV	DPY0,#130
			MOV	DPY1,#156
			MOV	A,PROGPRTS
			JNB	ACC.1,PF483K1
			LCALL	FilRect
			SJMP	PF484
	PF483K1:	LCALL	ClrRect
	PF484:		MOV	DPX0,#130	;REAR
			MOV	DPX1,#156
			MOV	DPY0,#130
			MOV	DPY1,#156
			MOV	A,PROGPRTS
			JNB	ACC.1,PF484K1
			LCALL	FilRect
			SJMP	PF485
	PF484K1:	LCALL	ClrRect

	PF485:		MOV	DPX0,#2		;MAIN
			MOV	DPX1,#28
			MOV	DPY0,#2
			MOV	DPY1,#28
			MOV	A,PROGPRTS
			JNB	ACC.2,PF485K1
			LCALL	FilRect
			SJMP	PF486
	PF485K1:	LCALL	ClrRect
	PF486:		MOV	DPX0,#130	;MAIN
			MOV	DPX1,#156
			MOV	DPY0,#2
			MOV	DPY1,#28
			MOV	A,PROGPRTS
			JNB	ACC.2,PF486K1
			LCALL	FilRect
			SJMP	PF487
	PF486K1:	LCALL	ClrRect


	PF487:		MOV	DPX0,#132	;SW
			MOV	DPX1,#154
			MOV	DPY0,#34
			MOV	DPY1,#62
			MOV	A,PROGPRTS
			JNB	ACC.3,PF488
			LCALL	FilRect
			SJMP	PF489
	PF488:		LCALL	ClrRect
	PF489:		RET

;----------------------------------------------------------------
;SPEAKER 设置选择功能
;++
PF412:			INC	PROGPRTM
			CLR	C
			MOV	A,PROGPRTM
			SUBB	A,#05H
			JC	PF413
			MOV	PROGPRTM,#00H
	PF413:		LJMP	PF403
;--
PF414:			DEC	PROGPRTM
			MOV	A,PROGPRTM
			CLR	C
			SUBB	A,#05H
			JC	PF415
			MOV	PROGPRTM,#04H
	PF415:		LJMP	PF403

;SPEAKER
PF401:			MOV	PROGPRTM,#00H

			LCALL	PF471
			MOV	A,PROGPRTS
			MOV	C,ACC.0
			RR	A
			ANL	A,#01H
			CPL	ACC.0
			CPL	C
			MOV	ACC.1,C
			MOV	PROGPRTM,A


	PF402:		MOV	A,#05H
			LCALL	DISPWIN		;显示一窗口
			LCALL	CLRWINBCK
	PF402K1:	LCALL	PF481

	PF403:		MOV	DPX0,#49
			MOV	DPX1,#110
			MOV	DPY0,#57
			MOV	DPY1,#156
			LCALL	ClrRect
			MOV	A,PROGPRTM
			ADD	A,#PF40FH-PF40B
			MOVC	A,@A+PC
	PF40B:		MOV	DPY0,A
			ADD	A,#19
			MOV	DPY1,A
			MOV	DPX0,#49
			MOV	DPX1,#110
			LCALL	FilRect
			LJMP	WLEND
	PF40FH:		DB	57,77,97,117,137

;-------------------------------------------------------------
;设置DELAY TIME
;++
PF512:			MOV	A,PROGPRTM
			CLR	C
			SUBB	A,#02H
			JC	PF513
			LJMP	PF50E
	PF513:		JB	HSBERRENB,PF513K
			SETB	ENBDELAYMUTE	;延迟静音使能
			MOV	DELAYMUTECTR,#14H	;延迟静音
			SETB	MUTEPORT
			MOV	A,#05H
			ADD	A,PROGPRTM
			MOV	R6,A
			MOV	R7,#0C0H
			LCALL	HSBMSGRET
			JNZ	PF513
	PF513K:		LJMP	PF50D
;--
PF514:			MOV	A,PROGPRTM
			CLR	C
			SUBB	A,#02H
			JC	PF515
			LJMP	PF50E
	PF515:		JB	HSBERRENB,PF513K
			SETB	ENBDELAYMUTE	;延迟静音使能
			MOV	DELAYMUTECTR,#14H	;延迟静音
			SETB	MUTEPORT

			MOV	A,#05H
			ADD	A,PROGPRTM
			MOV	R6,A
			MOV	R7,#80H
			LCALL	HSBMSGRET
			JNZ	PF515

⌨️ 快捷键说明

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