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

📄 sumbase1.asm

📁 900MHZ高频头的控制参考程序和参考线路图.
💻 ASM
字号:
	;*********	 define address 	**********************
	TEMP_DATA		equ	00h
	
	STANDBY_COUNT		equ	30h
	SEND_DATA1 		equ 	31h
	SEND_DATA2 		equ 	32h
	SEND_DATA3 		equ 	33h
	
	STANDBY			equ	00h
	TX_STATUS		equ	01h
	
	DIVCE_POWER		equ	p2.0
	RX_SW			equ 	p2.1
	TX_INDICATE		equ	p2.2
	STB_INDICATE		equ	p2.3
	TX_SW			equ	p2.4
	
	DATA_TERM		equ 	p3.0
	CLOCK_TERM		equ	p3.1
	LD_INDICATE		equ     p3.4
	CS_INDICATE		equ	p3.5
	STB_TERM		equ	p3.6
	
	;*********	 define data		**********************	
	
	TX_PROGDIV_DATA1 	equ 	00h
	TX_PROGDIV_DATA2 	equ	0a7h
	TX_PROGDIV_DATA3 	equ	51h
		
	REFDIV_DATA1 		equ	00h 
	REFDIV_DATA2		equ	0d0h
	REFDIV_DATA3		equ	0cch

	TX_OPTIONAL_DATA1 	equ	00h
	TX_OPTIONAL_DATA2 	equ	80h
	TX_OPTIONAL_DATA3 	equ	19h

	RX_PROGDIV_DATA1 	equ	00h
	RX_PROGDIV_DATA2 	equ	4dh
	RX_PROGDIV_DATA3 	equ	92h
			
	RX_OPTIONAL_DATA1 	equ	00h	
	RX_OPTIONAL_DATA2	equ	0c0h
	RX_OPTIONAL_DATA3	equ	19h
	
	INTERRUPT_ENABLE 	equ 	82h	
	INTERRUPT_DISABLE	equ	02h
	TR0_ENABLE		equ 	01h
	SCAN_P13		equ	11110111B
	SCAN_P14		equ	11101111B	
	NULL_KEY		equ	00h
	TX_KEY			equ	22h
	SEND_DATA_TIMERS	equ	03h
	SCAN_TIMERS		equ	03h
	
	;****************************************************************	
	org 00h
	jmp startini
	org 0bh
	jmp inttr0
startini:
	mov sp,#70h
	mov p0,#0ffh
	mov p1,#0ffh
	mov ie,#INTERRUPT_ENABLE
	mov tmod,#TR0_ENABLE
	mov th0,#0c5h
	mov tl0,#68h
	mov STANDBY_COUNT,#00h
	call delay2
	
	setb TX_SW				;TX Disable
	setb RX_SW
	;clr TX_STATUS
	setb DIVCE_POWER
	setb STB_INDICATE
	setb STANDBY
	
	nop
	mov SEND_DATA1,#00000000b
	mov SEND_DATA2,#00000000b
	mov SEND_DATA3,#00000000b
	call senddata
	call delay1
	mov SEND_DATA3,#00000011b
	call senddata
	call delay1
	mov SEND_DATA2,#00000000b
	mov SEND_DATA3,#00000010b
	call senddata
	call delay1
	mov SEND_DATA3,#00000001b
	call senddata
	call delay2
	nop
	clr RX_SW
	nop

	clr STB_TERM
	mov SEND_DATA1,#REFDIV_DATA1
	mov SEND_DATA2,#REFDIV_DATA2
	mov SEND_DATA3,#REFDIV_DATA3
	call senddata
	call delay1
	mov SEND_DATA1,#RX_OPTIONAL_DATA1
	mov SEND_DATA2,#RX_OPTIONAL_DATA2
	mov SEND_DATA3,#RX_OPTIONAL_DATA3
	call senddata
	call delay1
	mov SEND_DATA1,#TX_PROGDIV_DATA1
	mov SEND_DATA2,#TX_PROGDIV_DATA2
	mov SEND_DATA3,#TX_PROGDIV_DATA3
	call senddata
	call delay1
	mov SEND_DATA1,#RX_PROGDIV_DATA1
	mov SEND_DATA2,#RX_PROGDIV_DATA2
	mov SEND_DATA3,#RX_PROGDIV_DATA3
	call senddata
	call delay2
	call delay1
	clr CLOCK_TERM
	clr DATA_TERM
	call delay2
	setb tr0
 wait:	
	mov SEND_DATA1,#RX_OPTIONAL_DATA1
	mov SEND_DATA2,#RX_OPTIONAL_DATA2
	mov SEND_DATA3,#RX_OPTIONAL_DATA3
	call senddata
	call delay2
	call main
	jb LD_INDICATE,wait
	call setrxstatus
	call delay2
	jmp wait

main:
	jb CS_INDICATE,maincs
	clr STB_INDICATE
	clr DIVCE_POWER
	jmp mainover
maincs:
	setb DIVCE_POWER
	setb STB_INDICATE
mainover:
	ret

inttr0:
	push acc
	push psw
	mov ie,#INTERRUPT_DISABLE
	mov th0,#0c5h
	mov tl0,#68h
	mov p1,#0ffh
	nop
	nop
	mov a,p1
	mov p1,#0ffh
	cjne a,#0ffh,intover
	jmp over
intover:
	call settxstatus
	call delay2
	clr DIVCE_POWER
	setb RX_SW
	clr TX_INDICATE
retxstatus:
	call settxstatus
txstatus:
	jnb LD_INDICATE,retxstatus
	call delay2
	mov p1,#0ffh
	nop
	nop
	mov a,p1
	cjne a,#0ffh,txstatus
	setb TX_INDICATE
	setb TX_SW
	clr RX_SW
	setb DIVCE_POWER
over:
	mov ie,#INTERRUPT_ENABLE
	setb tr0
	pop psw
	pop acc
	reti

settxstatus:
	mov ie,#INTERRUPT_DISABLE
	clr STB_TERM
	mov SEND_DATA1,#REFDIV_DATA1
	mov SEND_DATA2,#REFDIV_DATA2
	mov SEND_DATA3,#REFDIV_DATA3
	call senddata
	call delay1
	mov SEND_DATA1,#TX_OPTIONAL_DATA1
	mov SEND_DATA2,#TX_OPTIONAL_DATA2
	mov SEND_DATA3,#TX_OPTIONAL_DATA3
	call senddata
	call delay1
	mov SEND_DATA1,#TX_PROGDIV_DATA1
	mov SEND_DATA2,#TX_PROGDIV_DATA2
	mov SEND_DATA3,#TX_PROGDIV_DATA3
	call senddata
	call delay1
	mov SEND_DATA1,#RX_PROGDIV_DATA1
	mov SEND_DATA2,#RX_PROGDIV_DATA2
	mov SEND_DATA3,#RX_PROGDIV_DATA3
	call senddata
	nop
	clr TX_SW
	call delay2
settxover:
	mov ie,#INTERRUPT_ENABLE
	ret	

setrxstatus:
	mov ie,#INTERRUPT_DISABLE
	clr STB_TERM
	mov SEND_DATA1,#REFDIV_DATA1
	mov SEND_DATA2,#REFDIV_DATA2
	mov SEND_DATA3,#REFDIV_DATA3
	call senddata
	call delay1
	mov SEND_DATA1,#RX_OPTIONAL_DATA1
	mov SEND_DATA2,#RX_OPTIONAL_DATA2
	mov SEND_DATA3,#RX_OPTIONAL_DATA3
	call senddata
	call delay1
	mov SEND_DATA1,#TX_PROGDIV_DATA1
	mov SEND_DATA2,#TX_PROGDIV_DATA2
	mov SEND_DATA3,#TX_PROGDIV_DATA3
	call senddata
	call delay1
	mov SEND_DATA1,#RX_PROGDIV_DATA1
	mov SEND_DATA2,#RX_PROGDIV_DATA2
	mov SEND_DATA3,#RX_PROGDIV_DATA3
	call senddata
	call delay2
setrxover:
	mov ie,#INTERRUPT_ENABLE
	ret


delay1:
	mov r4,#01h
delay1wait1:
	mov r3,#6fh
delay1wait0:
	nop
	djnz r3,delay1wait0
	djnz r4,delay1wait1
	ret

delay2:
	mov r4,#2fh
delay2wait0:
	mov r3,#0ffh
delay2wait1:
	nop
	nop
	djnz r3,delay2wait1
	djnz r4,delay2wait0
	ret	
	
senddata:
	setb DATA_TERM
	setb CLOCK_TERM
	clr STB_TERM
	nop
	mov scon,#00h
	clr es
	nop
	mov r0,#SEND_DATA1
	mov r2,#SEND_DATA_TIMERS
  resend:
	mov a,@r0
	mov sbuf,a
  waitres:
	jnb ti,waitres
	clr ti
	inc r0
	nop
	nop
	djnz r2,resend
	mov scon,#00h
	setb DATA_TERM
	nop
	clr CLOCK_TERM
	nop
	nop
	setb STB_TERM
	nop
	nop
	clr STB_TERM
	nop
	nop
	setb CLOCK_TERM
	nop
	setb DATA_TERM
	ret

	end
	

⌨️ 快捷键说明

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