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

📄 cd64k.asm

📁 51mini仿真器中文使用手册(含驱动,usb驱动程序)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
SETDIRMODE:		JB	HSBERRENB,STDRMD0F
			MOV	A,MASTINPUT
			XRL	A,#10H
			JZ	STDRMD01	;模拟
			MOV	A,MASTDSNAME
			XRL	A,#14H
			JZ	STDRMD01	;PCM
			MOV	A,MASTDSNAME
			XRL	A,#24H
			JZ	STDRMD01	;AC-3
			SJMP	STDRMD0F

	STDRMD01:	
			SETB	ENBDELAYMUTE	;延迟静音使能
			MOV	DELAYMUTECTR,#14H	;延迟静音
			SETB	MUTEPORT
			MOV	A,B
			CJNE	A,#19H,STDRMD05
			MOV	A,MASTSETMODE	;3-S
			ANL	A,#07H
			CJNE	A,#01H,STDRMD02
			SJMP	STDRMD03
	STDRMD02:	MOV	R6,#31H		;3-S
			MOV	R7,#81H
			SJMP	STDRMD08
	STDRMD03:	MOV	R6,#31H		;BYPASS
			MOV	R7,#80H
			SJMP	STDRMD08
	STDRMD05:	CJNE	A,#18H,STDRMD0F
			MOV	A,MASTSETMODE	;PRO-LOGIC
			ANL	A,#07H
			XRL	A,#02H
			JZ	STDRMD03	;原是PRO-LOGIC
			MOV	R6,#31H
			MOV	R7,#82H
	STDRMD08:	LCALL	HSBMSGRET
			JNZ	SETDIRMODE
			MOV	A,R4
			XRL	A,#31H
			JNZ	STDRMD0F
			SETB	DISPMODEOREFT
			MOV	MASTSETMODE,R5
			ANL	MASTSETMODE,#07H
			LCALL	DISPMODE
			LCALL	DISPEFMODE
	STDRMD0F:	LJMP	WLOOP
;----------------------------------------------------------------
;设置/读取聆听模式
SETMODE:		JB	HSBERRENB,SINCM04
			MOV	A,MASTSETMODE
			ANL	A,#07H
			XRL	A,#04H
			JNZ	SETMOD01

			MOV	A,MASTINPUT
			XRL	A,#10H
			JZ	SETMODK0

			MOV	A,MASTDSNAME
			XRL	A,#20H
			JZ	SETMODK1

			MOV	A,MASTDSNAME
			XRL	A,#24H
			JZ	SETMODK1

			SJMP	SETMODK0

	SETMODK1:	MOV	R6,#31H
			MOV	R7,#81H
			SJMP	SETMOD02
	SETMODK0:	MOV	R6,#31H
			MOV	R7,#80H
			SJMP	SETMOD02

	SETMOD01:	MOV	R6,#01H
			MOV	R7,#0C0H
	SETMOD02:	LCALL	HSBMSGRET
			JNZ	SETMODE
			SJMP	SINCM02

GETMODE:		JB	HSBERRENB,SINCM04
			MOV	R6,#01H
			MOV	R7,#00H
			LCALL	HSBMSGRET
			JNZ	GETMODE
	SINCM02:	MOV	A,R4
			XRL	A,#7DH
			JZ	SINCM04
			MOV	A,R4
			XRL	A,#31H
			JNZ	GETMODE
	SINCM03:	MOV	MASTSETMODE,R5
			ANL	MASTSETMODE,#07H

			MOV	A,MASTINPUT
			XRL	A,#10H
			JZ	SINCM04

			MOV	A,MASTDSNAME
			XRL	A,#20H
			JZ	SINCM05

			MOV	A,MASTDSNAME
			XRL	A,#24H
			JZ	SINCM05

			SJMP	SINCM04

	SINCM05:	MOV	A,MASTSETMODE
			JZ	SETMODE
	SINCM04:	RET
;----------------------------------------------------------------
;显示聆听模式
DISPMODE:		MOV	DPX0,#82	;DTS
			MOV	DPX1,#123
			MOV	DPY0,#133
			MOV	DPY1,#152
			MOV	A,MASTDSNAME
			XRL	A,#20H
			JZ	DISPMDT03

	DISPMDT02:	LCALL	ClrRect
			SJMP	DISPMDT11
	DISPMDT03:	LCALL	FilRect
	DISPMDT11:	MOV	DPX0,#35	;DolBy Digital
			MOV	DPX1,#76
			MOV	DPY0,#133
			MOV	DPY1,#152

			MOV	A,MASTDSNAME
			XRL	A,#24H
			JZ	DISPMDT13
	DISPMDT12:	LCALL	ClrRect
			SJMP	DISPMDT21
	DISPMDT13:	LCALL	FilRect
	DISPMDT21:	MOV	DPX0,#2		;PRO-LOGIC
			MOV	DPX1,#47
			MOV	DPY0,#35
			MOV	DPY1,#47

			JNB	DISPMODEOREFT,DISPMDT22

			MOV	A,MASTDSNAME	;DTS
			XRL	A,#20H
			JZ	DISPMDT22

			MOV	A,MASTSETMODE	;AN
			XRL	A,#02H
			JNZ	DISPMDT22
			SJMP	DISPMDT23

	DISPMDT22:	LCALL	ClrRect
			SJMP	DISPMDT31
	DISPMDT23:	LCALL	FilRect
	DISPMDT31:	MOV	DPX0,#2		;STEREO
			MOV	DPX1,#47
			MOV	DPY0,#54
			MOV	DPY1,#66

			JNB	DISPMODEOREFT,DISPMDT32

			MOV	A,MASTDSNAME	;DTS
			XRL	A,#20H
			JZ	DISPMDT32

			MOV	A,MASTSETMODE
			XRL	A,#01H
			JZ	DISPMDT33	;is 3-s
			SJMP	DISPMDT32

	DISPMDT32:	LCALL	ClrRect
			RET
	DISPMDT33:	LCALL	FilRect
			RET
;----------------------------------------------------------------
;聆听模式操作
DOSETMODE:		
			SETB	ENBDELAYMUTE	;延迟静音使能
			MOV	DELAYMUTECTR,#14H	;延迟静音
			SETB	MUTEPORT

			SETB	DISPMODEOREFT
			MOV	A,MASTDSNAME
			XRL	A,#20H
			JZ	DSTEFMD11	;DTS
			MOV	A,MASTDSNAME
			XRL	A,#24H
			JZ	DSTEFMD01	;DOLBY DIGITAL
			SJMP	DSTEFMD21	;PCM/NULL
DSTEFMD01:		NOP			;DOLBY DIGITAL
	DSTEFMD02:	JB	HSBERRENB,DSTEFMDFF
			LCALL	SETMODE
			MOV	A,MASTSETMODE
			JZ	DSTEFMD02
			XRL	A,#04H
			JZ	DSTEFMD02
			LJMP	DSTEFMDFF
DSTEFMD11:		NOP			;DTS:4
			MOV	MASTSETMODE,#03H
			LCALL	SETMODE
			LJMP	DSTEFMDFF
DSTEFMD21:		LCALL	SETMODE		;PCM/NULL:0-2
			MOV	A,MASTSETMODE
			CLR	C
			SUBB	A,#03H
			JNC	DSTEFMD22
			LJMP	DSTEFMDFF
	DSTEFMD22:	MOV	MASTSETMODE,#04H
			JB	HSBERRENB,DSTEFMDFF
			SJMP	DSTEFMD21

DSTEFMDFF:		MOV	A,MASTINPUT
			XRL	A,#10H
			JNZ	DSTEFMDF0

	DSTEFMDF0:	LCALL	DISPMODE
			LCALL	DISPEFMODE
			LJMP	WLOOP

;----------------------------------------------------------------
;返回SPERKER STATE
GETSPKSTATE:		MOV	A,MASTDSFORMAT
			ANL	A,#0F0H
			SWAP	A
			ADD	A,#SPKSTATETABEL-GSPKST001
			MOVC	A,@A+PC
	GSPKST001:	RET
SPKSTATETABEL:		DB	HISRL			;0H
			DB	HISRL			;1H
			DB	HISRL			;2H
			DB	HISRL+HISCT		;3H
			DB	HISRL+HISRR		;4H
			DB	HISRL+HISRR+HISCT	;5H
			DB	HISRL+HISRR		;6H
			DB	HISRL+HISRR+HISCT	;7H
			DB	00H			;8H
			DB	HISRL+HISSW		;9H
			DB	HISRL+HISSW		;AH
			DB	HISRL+HISCT+HISSW	;BH
			DB	HISRL+HISRR+HISSW	;CH
			DB	HISRL+HISRR+HISCT+HISSW	;DH
			DB	HISRL+HISRR+HISSW	;EH
			DB	HISRL+HISRR+HISCT+HISSW	;FH

;----------------------------------------------------------------
;DISPLAY SPEAKER STATE 显示声道信息
DISPSPKSTATE:		MOV	DPX0,#58	;CENTER
			MOV	DPX1,#100
			MOV	DPY0,#2
			MOV	DPY1,#20
			LCALL	GETSPKSTATE
			JNB	ACC.0,DSPKST01
			LCALL	FilRect
			SJMP	DSPKST02
	DSPKST01:	LCALL	ClrRect

	DSPKST02:	MOV	DPX0,#2		;REAR
			MOV	DPX1,#28
			MOV	DPY0,#130
			MOV	DPY1,#156
			LCALL	GETSPKSTATE
			JNB	ACC.1,DSPKST03
			LCALL	FilRect
			SJMP	DSPKST04
	DSPKST03:	LCALL	ClrRect
	DSPKST04:	MOV	DPX0,#130	;REAR
			MOV	DPX1,#156
			MOV	DPY0,#130
			MOV	DPY1,#156
			LCALL	GETSPKSTATE
			JNB	ACC.1,DSPKST05
			LCALL	FilRect
			SJMP	DSPKST06
	DSPKST05:	LCALL	ClrRect

	DSPKST06:	MOV	DPX0,#2		;MAIN
			MOV	DPX1,#28
			MOV	DPY0,#2
			MOV	DPY1,#28
			LCALL	GETSPKSTATE
			JNB	ACC.2,DSPKST07
			LCALL	FilRect
			SJMP	DSPKST08
	DSPKST07:	LCALL	ClrRect
	DSPKST08:	MOV	DPX0,#130	;MAIN
			MOV	DPX1,#156
			MOV	DPY0,#2
			MOV	DPY1,#28
			LCALL	GETSPKSTATE
			JNB	ACC.2,DSPKST09
			LCALL	FilRect
			SJMP	DSPKST0A
	DSPKST09:	LCALL	ClrRect
	DSPKST0A:	MOV	DPX0,#132	;SW
			MOV	DPX1,#154
			MOV	DPY0,#34
			MOV	DPY1,#62
			LCALL	GETSPKSTATE
			JNB	ACC.3,DSPKST0B
			LCALL	FilRect
			SJMP	DSPKST0C
	DSPKST0B:	LCALL	ClrRect
	DSPKST0C:	RET

;-------------------------------------------------------------
;显示频率信息
DISPDFMSG:		JNB	ENBMUTE,DPDFM001
			MOV	A,#04H		;显示静音
			MOV	C,MULTILANGUAGE
			ANL	C,ISCHINESE
			JNC	DPDFM007
			INC	A
			INC	A
	DPDFM007:	LCALL	DSPFRMP
			RET
	DPDFM001:	MOV	A,MASTDSNAME
			JNZ	DPDFM002
			MOV	A,#05H		;显示空白
			MOV	C,MULTILANGUAGE
			ANL	C,ISCHINESE
			JNC	DPDFM007
			INC	A
			INC	A
			LCALL	DSPFRMP
			RET
	DPDFM002:	MOV	A,MASTDSFORMAT
			ANL	A,#03H		;显示频率
			LCALL	DSPFRMP
			RET
	DPDFM003:	NOP
			RET

;-------------------------------------------------------------

	VDSPFMP01:	MOV	R6,#64H
			MOV	R7,#04H

			ANL	A,#0FH
			RL	A
			MOV	R1,A
			MOV	DPTR,#FRMPICTV
			MOVC	A,@A+DPTR
			XCH	A,R1
			INC	A
			MOVC	A,@A+DPTR
			MOV	DPL,A
			XCH	A,R1
			MOV	DPH,A

			MOV	R4,#48

			CLR	SEDCTLCS
	VDSPFMP02:	MOV	A,#46H
			MOV	R0,#01H
			MOVX	@R0,A
			MOV	A,R6
			MOV	R0,#00H
			MOVX	@R0,A
			MOV	A,R7
			MOV	R0,#00H
			MOVX	@R0,A
			MOV	A,#42H
			MOV	R0,#01H
			MOVX	@R0,A
			MOV	R5,#02H
			MOV	R0,#00H
	VDSPFMP05:	MOV	A,#00H
			MOVC	A,@A+DPTR
			MOVX	@R0,A
			INC	DPTR
			DJNZ	R5,VDSPFMP05
			MOV	A,R6
			ADD	A,#14H
			MOV	R6,A
			JNC	VDSPFMP08
			INC	R7
	VDSPFMP08:	DJNZ	R4,VDSPFMP02
			SETB	SEDCTLCS
			RET
;显示频率图象
DSPFRMP:		JB	PLACEDIR,DSPFMP01
			LJMP	VDSPFMP01
	DSPFMP01:	MOV	R6,#0C7H
			MOV	R7,#08H

			ANL	A,#0FH
			RL	A
			MOV	R1,A
			MOV	DPTR,#FRMPICTH
			MOVC	A,@A+DPTR
			XCH	A,R1
			INC	A
			MOVC	A,@A+DPTR
			MOV	DPL,A
			XCH	A,R1
			MOV	DPH,A

			MOV	R4,#10H

			CLR	SEDCTLCS
	DSPFMP02:	MOV	A,#46H
			MOV	R0,#01H
			MOVX	@R0,A
			MOV	A,R6
			MOV	R0,#00H
			MOVX	@R0,A
			MOV	A,R7
			MOV	R0,#00H
			MOVX	@R0,A
			MOV	A,#42H
			MOV	R0,#01H
			MOVX	@R0,A
			MOV	R5,#06H
			MOV	R0,#00H
	DSPFMP05:	MOV	A,#00H
			MOVC	A,@A+DPTR
			MOVX	@R0,A
			INC	DPTR
			DJNZ	R5,DSPFMP05
			MOV	A,R6
			ADD	A,#14H
			MOV	R6,A
			JNC	DSPFMP08
			INC	R7
	DSPFMP08:	DJNZ	R4,DSPFMP02
			SETB	SEDCTLCS
			RET
FRMPICTH:		DW	F48KHZH
			DW	F44KHZH
			DW	F32KHZH
			DW	F96KHZH
			DW	MUTEONH
			DW	MUTEOFFH
			DW	MUTECONH	;中文
			DW	MUTECOFFH	;中文
			DW	FMCLEAR

FRMPICTV:		DW	F48KHZV
			DW	F44KHZV
			DW	F32KHZV
			DW	F96KHZV
			DW	MUTEONV
			DW	MUTEOFFV
			DW	MUTECONV	;中文
			DW	MUTECOFFV	;中文
			DW	FMCLEAR

;-------------------------------------------------------------
;MUTE FUNCTION
PFMUTE:			CPL	ENBMUTE
			MOV	C,ENBMUTE
			MOV	MUTEPORT,C
			LCALL	DISPDFMSG
			LJMP	WLOOP


;-------------------------------------------------------------
SETNIGHT:		MOV	C,ENBNIGHT
			MOV	A,#10H
			MOV	ACC.0,C
			MOV	R7,A
			MOV	R6,#7EH
			LCALL	HSBMSGRET
			JB	HSBERRENB,SNIGHT02
			JNZ	SETNIGHT
			RET
	SNIGHT02:	CPL	ENBNIGHT
			RET
;-------------------------------------------------------------
;NIGHT FUNCTION
PFNIGHT:		CPL	ENBNIGHT	;1为正常
			SETB	ENBDELAYMUTE	;延迟静音使能
			MOV	DELAYMUTECTR,#14H	;延迟静音
			SETB	MUTEPORT

			LCALL	SETNIGHT
			LCALL	DISPNIGHT
			LJMP	WLOOP

DISPNIGHT:		MOV	DPX0,#61	;
			MOV	DPX1,#98	;
			MOV	DPY0,#97	;
			MOV	DPY1,#108	;
			JNB	ENBNIGHT,DSPNGHT01
			LCALL	ClrRect
			RET
	DSPNGHT01:	LCALL	FilRect
			RET

;-------------------------------------------------------------
;INPUT
PF031:			
			SETB	ENBDELAYMUTE	;延迟静音使能
			MOV	DELAYMUTECTR,#14H	;延迟静音
			SETB	MUTEPORT
			SETB	DISPMODEOREFT
			LCALL	PF030
			LCALL	PF038		;保存音源输入状态
			LCALL	PF03B		;显示音源输入状态

;			LCALL	GETDSFORMAT	;读取音频格式

			MOV	MASTSETMODE,#00H
			MOV	MASTDSNAME,#00H
			MOV	MASTDSFORMAT,#00H


			LCALL	DISPMODE
			LCALL	DISPSPKSTATE
			LCALL	DISPDFMSG
			LCALL	DISPEFMODE

			LJMP	WLOOP

PF0311:			SETB	MUTEPORT
			SETB	ENBDELAYMUTE	;延迟静音使能
			MOV	DELAYMUTECTR,#14H	;延迟静音
			SETB	DISPMODEOREFT
			MOV	A,B
			CJNE	A,#1DH,PF0313
			MOV	MASTINPUT,#10H	;原为模拟:后为数字1
			LCALL	PF030
			SJMP	PF0316
	PF0313:		CJNE	A,#1EH,PF0315
			MOV	MASTINPUT,#00H	;原为数字1:后为数字2
			LCALL	PF030
			SJMP	PF0316
	PF0315:		CJNE	A,#1FH,PF0317
			MOV	MASTINPUT,#01H	;原为数字2:后为模拟
			LCALL	PF030
			SJMP	PF0316
	PF0316:		LCALL	PF038		;保存音源输入状态
			LCALL	PF03B		;显示音源输入状态
	PF0317:		LJMP	WLOOP

PF030:			JB	HSBERRENB,PF035A
			MOV	A,MASTINPUT
			XRL	A,#10H
			JNZ	PF032
			MOV	R6,#34H	;原为模拟:后为数字1
			MOV	R7,#80H
			SJMP	PF035
	PF032:		MOV	A,MASTINPUT
			JNZ	PF033
			MOV	R6,#34H	;原为数字1:后为数字2
			MOV	R7,#81H
			SJMP	PF035
	PF033:		MOV	R6,#33H	;原为数字2:后为模拟
			MOV	R7,#80H
			SJMP	PF035
	PF035:		LCALL	HSBMSGRET
			JNZ	PF030
			RET
	PF035A:		MOV	R4,#00H
			RET
PF036:			JB	HSBERRENB,PF035A
			MOV	R6,#34H		;34H
			MOV	R7,#00H		;00H
			LCALL	HSBMSGRET
			JNZ	PF036
PF038:			MOV	A,R4
			CJNE	A,#33H,PF039
			MOV	MASTINPUT,#10H ;为模拟
			SJMP	PF03A
	PF039:		CJNE	A,#34H,PF036
			MOV	A,R5	       ;为数字
			ANL	A,#07H
			MOV	MASTINPUT,A
	PF03A:		RET

PF03B:			MOV	DPX0,#112
			MOV	DPX1,#156
			MOV	DPY0,#73
			MOV	DPY1,#123
			LCALL	ClrRect
			MOV	A,MASTINPUT
			XRL	A,#10H
			JNZ	PF03BC
			MOV	DPY0,#111	;为模拟
			MOV	DPY1,#123
			SJMP	PF03BE
	PF03BC:		MOV	A,MASTINPUT
			JNZ	PF03BD
			MOV	DPY0,#73	;为数字1
			MOV	DPY1,#85
			SJMP	PF03BE
	PF03BD:		MOV	DPY0,#92	;为数字2
			MOV	DPY1,#104
			SJMP	PF03BE
	PF03BE:		MOV	DPX0,#112
			MOV	DPX1,#156
			LCALL	FilRect
			RET

;-------------------------------------------------------------
;POWER DOWN
POWERUPDOWN:		MOV	A,POWERSTATE
			XRL	A,#SPOWERUP
			JNZ	POWERUP
POWERDOWN:		MOV	A,#SPOWERUP
			CPL	A
			MOV	POWERSTATE,A

			SETB	MUTEPORT

			MOV	A,#01H
			LCALL	DISPWIN

			LCALL	DELAY200MS
			LCALL	DELAY200MS
			LCALL	DELAY200MS

			SETB	POWERUPDISP
			CLR	SEDCTLCS
			NOP
			NOP
			MOV	A,#58H
			MOV	R0,#01H
			MOVX	@R0,A
			SETB	SEDCTLCS
			LJMP	WLOOP
POWERUP:		CLR	POWERUPDISP
			MOV	A,KEYSTATE
			MOV	C,ACC.6
			CPL	C
			MOV	PLACEDIR,C
			MOV	POWERSTATE,#SPOWERUP
			CLR	SEDCTLCS
			NOP
			NOP
			MOV	A,#59H
			MOV	R0,#01H
			MOVX	@R0,A

⌨️ 快捷键说明

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