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

📄 radioasm.asm

📁 一个DVD组合机的MCU代码,FM,机芯出入仓,功放的控制及DVD数据通过通信来访问.
💻 ASM
字号:
;--TAB=8----------------------------------------------------------;
;*****************************************************************;
;*****************************************************************;
;**                                                             **;
;**     RADIO.asm						**;
;**                     				        **;
;**                                                             **;
;**     version 1.0 				                **;
;**                                                             **;
;**     update  2002/8/22   YCD					**;
;**                                                             **;
;*****************************************************************;
;*****************************************************************;
;-----------------------------------------------------------------;
RADIO_RW	EQU  	P1.0
RADIO_DAT       EQU     P1.1
RADIO_CLK 	EQU     P1.2
RADIO_STERC     EQU     P1.3

extern	gRadioBuf
extern	_R
;-----------------------------------------------;
	RSEG 	D_IDATA
Vw_FMBuf	DS	3
Vw_AMBuf	DS	3
Vw_VfdBakBuf	DS	18
public		Vw_FMBuf
public		Vw_AMBuf
public		Vw_VfdBakBuf

;-----------------------------------------------;
	RSEG 	CODE
;-----------------------------------------------;
;Name: Lsb_RadioOutByte				;
;In:	 A					;
;Out:    RADIO_CLK  high		        ;
;Update: 2002/8/22				;
;check:  RadioOutByte				;
;-----------------------------------------------;
Lsb_RadioOutByte:
	PUSH    B

	MOV	B,#8
	;-(1) LOW-------;
rob_1:	CLR	RADIO_CLK
	RLC	A
	MOV	RADIO_DAT,C
	NOP
	NOP
	NOP
	NOP

	;-(2) HIGH------;
	SETB 	RADIO_CLK
	NOP
	NOP
	NOP
	NOP
	NOP
	DJNZ	B,rob_1

	POP	B
	RET


;-----------------------------------------------;
;Name: Lsb_RadioShift9Bit			;
;In:	 A					;
;Out:    RADIO_CLK  high		        ;
;Update: 2002/8/22				;
;check:  RadioShift9Bit				;
;-----------------------------------------------;
Lsb_RadioShift9Bit:
	PUSH    B

	MOV	C,ACC.7  	;-new: d7 d6(dum) d5 d4 d3 d2 d1 d0 C-;
	ANL	A,#7FH   	;-old: D7 0       D6 D5 D4 D3 D2 D1 D0
	RRC	A        	;-bit: 1  2       3  4  5  6  7  8  9

	;-(1) LOW-------;
	MOV    	B,#9
rs9b_1:	CLR	RADIO_CLK
	RLC	A
	MOV	RADIO_DAT,C
	NOP
	NOP
	NOP
	NOP

	;-(2) HIGH------;
	SETB 	RADIO_CLK
	NOP
	NOP
	NOP
	NOP
	NOP
	DJNZ	B,rs9b_1

	POP	B
	RET

;-----------------------------------------------;
;Name: Lsb_RadioInByte				;
;In:	 A                                      ;
;Out:    RADIO_CLK  LOW		        	;
;Update: 2002/8/9				;
;check:  RadioInByte				;
;-----------------------------------------------;
Lsb_RadioInByte:
	PUSH	B

	MOV	B,#8

rib_1:  ;-(1) High------;
	SETB 	RADIO_CLK
	NOP
	NOP
	NOP
	NOP
	NOP

	;-(2) low-------;
	CLR     RADIO_CLK
	NOP
	NOP
	NOP
	NOP
	NOP
	MOV	C,RADIO_DAT
	RLC	A

	SETB	C
	MOV	RADIO_DAT,C
	DJNZ	B,rib_1

	POP	B
	RET

;-----------------------------------------------;
;Name: Lsb_ReadReady				;
;In:	 NO				        ;
;Out:    NO           			        ;
;Update: 2002/8/22				;
;check:  InitRadio				;
;-----------------------------------------------;
Lsb_ReadReady:
	CLR     RADIO_CLK
	CLR     RADIO_RW
	NOP
	NOP
	NOP
	SETB	C
	MOV	RADIO_DAT,C
	RET

;-----------------------------------------------;
;Name: Lsb_InitRadio				;
;In:	 NO				        ;
;Out:    NO           			        ;
;Update: 2002/8/22				;
;check:  InitRadio				;
public   Lsb_InitRadio                          ;
;-----------------------------------------------;
Lsb_InitRadio:
	CLR	RADIO_CLK
	NOP
	NOP
	CLR     RADIO_RW
	RET


;-----------------------------------------------;
;Name: Lsb_ReadRadio				;
;In:	 NO				        ;
;Out:    NO           			        ;
;Update: 2002/8/22				;
;check:  ReadRadio				;
public   Lsb_ReadRadio				;
;-----------------------------------------------;
Lsb_ReadRadio:
	PUSH	B
	PUSH	_R

	CLR	A
	MOV	R0,#gRadioBuf+3
	MOV	@R0,A

	CALL	Lsb_ReadReady
	MOV	R0,#gRadioBuf
	MOV	B,#3
rr_1:   CALL   	Lsb_RadioInByte
	MOV	@R0,A
	INC	R0
	DJNZ	B,rr_1
	CLR     RADIO_CLK

	POP	_R
	POP	B
	RET

;-----------------------------------------------;
;Name: Lsb_WriteRadio				;
;In:	 gRadioBuf				;
;Out:    RADIO_RW=WRITE				;
;Update: 2002/8/22				;
;check:  WriteRadio				;
public   Lsb_WriteRadio				;
;-----------------------------------------------;
Lsb_WriteRadio:
	PUSH	_R

	MOV	R0,#gRadioBuf
	SETB  	RADIO_RW

	;-(1)BYTE HIGH-;
	MOV	A,@R0
	CALL    Lsb_RadioOutByte

	;-(2)BYTE MID-;
	INC	R0
	MOV	A,@R0
	CALL 	Lsb_RadioShift9Bit

	;-(3)BYTE LOW-;
	INC	R0
	MOV	A,@R0
	CALL    Lsb_RadioOutByte

	;----------------;
	;CLR     RADIO_CLK
	NOP
	NOP
	NOP
	CLR	RADIO_RW

	POP 	_R
	RET

;-----------------------------------------------;
;Name: Lsb_TurnEnd				;
;In:	 gRadioBuf				;
;Out:    RADIO_RW=WRITE				;
;Update: 2002/8/22				;
;check:  WriteRadio				;
public   Lsb_TurnEnd				;
;-----------------------------------------------;
Lsb_TurnEnd:
	MOV	A,P1
	MOV	_R+7,A
	RET
;---------------------------------------------------------------------------;
;---------------------------------------------------------------------------;
	END

⌨️ 快捷键说明

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