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

📄 dts for bu2614.sam

📁 BU2614 PLL 源程序,直接解压
💻 SAM
📖 第 1 页 / 共 5 页
字号:
			JBS	0X06, 0
			BS	0X1F, 0	;FM STEP_FREQ FLAG, 1 MEANS 50KHz
	READ_P62:
			MOV	A, @0XF3
			MOV	0X04, A			
			JBC	0X06, 2	;IF P6[2](10k/9K)=0(9K),SKIP
			JMP	STEP_FREQ_10K
			;设置STEP_FREQ = 9K
			MOV	A, @0X0D	;PLL Standard freq = 3KHz
			MOV	0X00, A
	READ_P63:
			JBC	0X06, 3
			BS	0X1F, 3	;SIGNAL DETECT FLAG, 1 MEANS DETECT WITH IF

	read_P61:
			JBs	0X06, 1
			JMP	READ_JMPER_END

						
			BS	0X1F, 1	;1 MEANS JAPAN FM MODE
			Bc	0X1F, 0	;FM STEP_FREQ FLAG, 1 MEANS 100KHz

			JMP	READ_JMPER_END
	STEP_FREQ_10K:
			;设置STEP_FREQ = 10K
			BS	0X1F, 2	;AM STEP_FREQ FLAG, 1 MEANS 10KHz
			MOV	A, @0X0E	;PLL Standard freq = 5KHz
			MOV	0X00, A
			JMP	READ_P63
			
	READ_JMPER_END:
			Bs	0X05, 3	;P5[3](KO90)= 1 after read jumper	

			;;;;;;;;;
			CLR	0X01
			ENI				;INTRUPT ENABLE
			MOV	A, @0X01
			IOW	0X0F		;TCC INTRUPT ENABLE,INTRUPT ABOUT 1 SECOND

			BC	0X03, 5
			RET			

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;normal band toggle operation;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
NORMAL_BAND:
			BS	0X07, 5		;P7[5]=1:MUTE ON,NO SOUND
			CLR	0X1E		  ;CLEAR ALL FLAGs
			BS	0X12, 3		;MEM is on
	BAND_RELEASE1:
			CLR	0X01		;CLEAR R1 TO AVOID TCC INTRUPT

			JBs	0X06, 5			;add at 0719
			JMP	begin_band_toggle;begin band toggle when detect EN to be low!!

			JBS	0X06, 1
			JMP	BAND_RELEASE1	;WAIT for BAND KEY RELEASE

	begin_band_toggle:
			JBC	0X07, 0	;JUDGE CURRENT BAND IS AM(P70=0) OR FM(P70=1)
			JMP	NORMAL_BAND_RESTORE_AM

	NORMAL_BAND_RESTORE_FM:
			
			mov	a, @0xa5
			mov	0x04, a
			mov	a, 0x00
			mov	0x0c, a
			inc	0x04
			mov	a, 0x00
			mov	0x0d, a
			inc	0x04
			mov	a, 0x00
			mov	0x10, a
			inc	0x04
			mov	a, 0x00
			mov	0x04, a
			jmp	TOGGLE_BAND_OK
					
	NORMAL_BAND_RESTORE_AM:
			mov	a, @0xf5
			mov	0x04, a
			mov	a, 0x00
			mov	0x08, a
			inc	0x04
			mov	a, 0x00
			mov	0x09, a
			inc	0x04
			mov	a, 0x00
			mov	0x10, a
			inc	0x04
			mov	a, 0x00
			mov	0x04, a
					
	TOGGLE_BAND_OK:
			MOV	A, @0X01
			XOR	0X07, A		;TOGGLE BAND
			mov	a, @0x02
			xor	0x12, a		;toggle band display
			
			bc	0x03, 5
			ret
;;;;;;88888888888888888888888888888888888888888888888;;;;;;;;;
;;;;;;8backup current station,means a stable station8;;;;;;;;;
;;;;;;88888888888888888888888888888888888888888888888;;;;;;;;;

BACKUP_CURRENT_STATE:
				mov	a, 0x04
				mov	0x16, a

				JBS	0X07, 0	;JUDGE CURRENT BAND IS AM(P70=0) OR FM(P70=1)
				jmp	BACKUP_CURRENT_STATE_am
				
			BACKUP_CURRENT_STATE_fm:

				mov	a, @0xa5
				mov	0x04, a
				mov	a, 0x0c
				mov	0x00, a
				inc	0x04
				mov	a, 0x0d
				mov	0x00, a
				inc	0x04
				mov	a, 0x10
				mov	0x00, a
				inc	0x04
				mov	a, 0x16
				mov	0x00, a
				
				mov	a, @0xf9
				mov	0x04, a
				mov	a, 0x0c
				mov	0x00, a
				inc	0x04
				mov	a, 0x0d
				mov	0x00, a
				inc	0x04
				mov	a, 0x10
				mov	0x00, a
				inc	0x04
				mov	a, 0x16
				mov	0x00, a
				
				
				jmp	BACKUP_CURRENT_STATE_ok
							
			BACKUP_CURRENT_STATE_am:

				mov	a, @0xf5
				mov	0x04, a
				mov	a, 0x08
				mov	0x00, a
				inc	0x04
				mov	a, 0x09
				mov	0x00, a
				inc	0x04
				mov	a, 0x10
				mov	0x00, a
				inc	0x04
				mov	a, 0x16
				mov	0x00, a
				
				mov	a, @0xf9
				mov	0x04, a
				mov	a, 0x08
				mov	0x00, a
				inc	0x04
				mov	a, 0x09
				mov	0x00, a
				inc	0x04
				mov	a, 0x10
				mov	0x00, a
				inc	0x04
				mov	a, 0x16
				mov	0x00, a
				
			BACKUP_CURRENT_STATE_ok:
				mov	a, 0x16
				mov	0x04, a
	
				bc	0x03, 5
				RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;888888888888888888888888888888;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;从现在开始,是第三页

		ORG	0X80A
;;;;;;88888888888888888888888888888888888888888888888;;;;;;;;;		
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;DISP_DATA_PROCESS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;88888888888888888888888888888888888888888888888;;;;;;;;;


;;;;;;;;;TEMP0~TEMP3中间计数
;;;;;;;;;DIG0~DIG3显示
;;;;;;;;;DATAH,DATAL实际存储数据
;;;;;;;;;将RC,RD或R8,R9的值,转成BCD码,存入R10的高四位和R11,还有R12的B0(1)位和B2(5)位.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		TEMP0==0X18
		TEMP1==0X19
		TEMP2==0X1A
		TEMP3==0X1B
		TEMP4==0X13
		TEMP==0X15
		DATAH==0X16
		DATAL==0X17
		DCFLAG==0X1
		ZERO==0X2
DISP_DATA_PROCESS:
		JBS	0X07, 0	;JUDGE AM(0)/FM(1) 
		JMP	AM_DISP_DATA_PROCESS
		MOV	A, 0X0D
		MOV	DATAH, A
		MOV	A, 0X0C
		MOV	DATAL, A
		JBC	0X1F, 0	;STEP FREQ = 100K		
		JMP	FM_DISP_DATA_50K	;SETP FREQ = 50K
		JMP	DATA_LOAD_OK
		
		
FM_DISP_DATA_50K:		
		JBC	0X0C, 0
		BS	0X12, 2		;(5)IS ON
		BC	0X03, 0
		RRC	DATAH
		RRC	DATAL
		JBS	0X0C, 0
		BC	0X12, 2		;(5)IS OFF
		JMP	DATA_LOAD_OK
				
AM_DISP_DATA_PROCESS:		;DARAH&DATAL  MULTI 9(9K) OR 10(10K)
		MOV	A, 0X09
		MOV	DATAH, A
		MOV	A, 0X08
		MOV	DATAL, A
		BC	0X03, 0
		RLC	DATAL
		RLC	DATAH
		MOV	A, DATAH
		MOV	TEMP1, A
		MOV	A, DATAL
		MOV	TEMP0, A
		RLC	DATAL
		RLC	DATAH
		RLC	DATAL
		RLC	DATAH
		JBS	0X1F, 2	;STEP_FREQ = 10K ,SKIP
		MOV	A,0X08
		ADD	DATAL, A
		JBC	0X03, 0
		INC	DATAH
		MOV	A, TEMP1
		JBS	0X1F, 2	;STEP_FREQ = 10K ,SKIP
		MOV	A,0X09
		ADD	DATAH, A
DATA_LOAD_OK:
		MOV	A,DATAH		;byte3 change
		AND	A,@0X0F
		CALL	TAB2H
		MOV	TEMP,A
		AND	A,@0XF0
		MOV	TEMP3,A
		SWAP	TEMP3
		MOV	A,TEMP
		AND	A,@0X0F
		MOV	TEMP2,A
		MOV	A,DATAH
		AND	A,@0X0F
		CALL	TAB2L
		MOV	TEMP,A
		AND	A,@0XF0
		MOV	TEMP1,A
		SWAP	TEMP1
		MOV	A,TEMP
		AND	A,@0X0F
		MOV	TEMP0,A
	
		MOV	A,DATAL		;byte1 change
		AND	A,@0X0F
		ADD	A,TEMP0
		JBS	0X3,DCFLAG
		JMP	ADD3NOC
		INC	TEMP1
		AND	A,@0X0F
		ADD	A,@0X6
ADD3NOC:
		DAA	
		MOV	TEMP0,A
		AND	A,@0XF0
		JBC	0X3,ZERO
		JMP	ADDTMP2NOC
		INC	TEMP1
		BC 	TEMP0,4
ADDTMP2NOC:	
		MOV	A,DATAL		;byte2 change
		AND	A,@0XF0
		MOV	TEMP4,A
		SWAPA	TEMP4
		CALL	TAB1L
		MOV	TEMP,A
		AND	A,@0XF0
		MOV	TEMP4,A
		MOV	A,TEMP
		AND	A,@0X0F	
		ADD	A,TEMP0
		JBS	0X03,DCFLAG
		JMP	ADD0NOC
		INC	TEMP1
		AND	A,@0X0F
		ADD	A,@0X6
ADD0NOC:	
		DAA	
		MOV	TEMP0,A
		AND	A,@0XF0
		JBC	0X3,ZERO
		JMP	ADDTMP0NOC
		INC	TEMP1
		BC 	TEMP0,4
ADDTMP0NOC:
		SWAPA	TEMP4
		ADD	A,TEMP1
		JBS	0X03,DCFLAG
		JMP	ADD1NOC
		INC	TEMP2
		AND	A,@0X0F
		ADD	A,@0X6
ADD1NOC:
		DAA
		MOV	TEMP1,A
		AND	A,@0XF0
		JBC	0X3,ZERO
		JMP	ADDTMP1NOC
		INC	TEMP2
		BC 	TEMP1,4
ADDTMP1NOC:
		MOV	A,DATAL
		AND	A,@0XF0
		MOV	TEMP4,A
		SWAPA	TEMP4
		CALL	TAB1H
		ADD	A,TEMP2
		JBS	0X03,DCFLAG
		JMP	ADD2NOC
		INC	TEMP3
		AND	A,@0X0F
		ADD	A,@0X6
ADD2NOC:
		DAA
		MOV	TEMP2,A
		AND	A,@0XF0
		JBC	0X3,ZERO
		JMP	H_D
		INC	TEMP3
		BC 	TEMP2,4
H_D:		
		SWAP	TEMP0
		MOV	A,TEMP1
		ADD	A,TEMP0
		MOV	0X11,A
		MOV	A,0X10
		AND	A,@0X0F
		MOV	0X10,A
		SWAPA  TEMP2
		OR	 0X10,A
		DJZ	TEMP3
		JMP	RT
		BS	 0X12,0
		BC	0X03, 6	;SET ROM PAGE TO 00
		RET
RT:	
		BC	 0X12,0
		BC	0X03, 6	;SET ROM PAGE TO 00
		RET
			
TAB2H:
		ADD	 0X2,A			
		RETL	 @0X00
		RETL	 @0X02			
		RETL	 @0X05			
		RETL	 @0X07			
		RETL	 @0X10			
		RETL	 @0X12			
		RETL	 @0X15			
		RETL	 @0X17
TAB2L:
		ADD	 0X2,A			
		RETL	 @0X00			
		RETL	 @0X56			
		RETL	 @0X12			
		RETL	 @0X68			
		RETL	 @0X24			
		RETL	 @0X80			
		RETL	 @0X36			
		RETL	 @0X92	
TAB1H:
		ADD	 0X2,A			
		RETL	 @0X00			
		RETL	 @0X00			
		RETL	 @0X00			
		RETL	 @0X00			
		RETL	 @0X00			
		RETL	 @0X00			
		RETL	 @0X00			
		RETL	 @0X01				
		RETL	 @0X01			
		RETL	 @0X01			
		RETL	 @0X01			
		RETL	 @0X01			
		RETL	 @0X01			
		RETL	 @0X02			
		RETL	 @0X02			
		RETL	 @0X02	
TAB1L:
		ADD	 0X2,A			
		RETL	 @0X00			
		RETL	 @0X16			
		RETL	 @0X32			
		RETL	 @0X48			
		RETL	 @0X64			
		RETL	 @0X80			
		RETL	 @0X96			
		RETL	 @0X12				
		RETL	 @0X28			
		RETL	 @0X44			
		RETL	 @0X60			
		RETL	 @0X76			
		RETL	 @0X92			
		RETL	 @0X08			
		RETL	 @0X24			
		RETL	 @0X40	
;;;;;;88888888888888888888888888888888888888888888888;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;ROUTINE OF DISPLAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;88888888888888888888888888888888888888888888888;;;;;;;;;
		
DISPLAY:
        	MOV	A, @0X03	;TRY THREE TIMES 
        	MOV	0X13, A
        	MOV	A, @0X02	;SENT D4-D0 TWICE
        	MOV	0X16, A
        	
       SEND_BEGIN:
			MOV	A, 0X12
        	MOV	0X15, A
        	MOV	A, @0X04
        	MOV	0X14, A
        DLOOP_A12:
        	BS	0X06, 6
        	JBS	0X15, 3
        	JMP	DISPOUT012
        	JMP	DISPOUT112
        DISPOUT012:
        	BC	0X06, 7
        	JMP	DLOOP_B12
        DISPOUT112:
        	BS	0X06, 7
        DLOOP_B12:
        	RLC	0X15
        	BC	0X06, 6
        	DJZ	0X14
        	JMP	DLOOP_A12
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        	MOV	A, 0X11
        	MOV	0X15, A
        	MOV	A, @0X08
        	MOV	0X14, A
        
        DLOOP_A11:
        	BS	0X06, 6
        	JBS	0X15, 7
        	JMP	DISPOUT011
        	JMP	DISPOUT111
        DISPOUT011:
        	BC	0X06, 7
        	JMP	DLOOP_B11
        DISPOUT111:
        	BS	0X06, 7
        DLOOP_B11:
        	RLC	0X15
        	BC	0X06, 6
        	DJZ	0X14
        	JMP	DLOOP_A11
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        	MOV	A, 0X10
        	MOV	0X15, A
        	MOV	A, @0X08
        	MOV	0X14, A
        
        DLOOP_A10:
        	BS	0X06, 6
        	JBS	0X15, 7
        	JMP	DISPOUT010
        	JMP	DISPOUT110
        DISPOUT010:
        	BC	0X06, 7
        	JMP	DLOOP_B10
        DISPOUT110:
        	BS	0X06, 7
        DLOOP_B10:
        	RLC	0X15
        	BC	0X06, 6
        	DJZ	0X14
        	JMP	DLOOP_A10
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
			DJZ	0X16
			JMP	SEND_BEGIN

			BS     0X06,6
			NOP
			NOP
			NOP
			NOP
			NOP
			JBs	0X06,5
			jmp	SEND_FAIL
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	CONFIRM:
			DJZ	0X13
			JMP	SEND_AGAIN
			JMP	SEND_FAIL
	SEND_AGAIN:
			BC      0X06,6
        	MOV	A, @0X02	;SENT D4-D0 TWICE
        	MOV	0X16, A
			NOP
			NOP
			NOP
			NOP
			JMP	SEND_BEGIN
		
	SEND_FAIL:
		BC      0X06,6
		BC	0X03, 6	;SET ROM PAGE TO 00
		RET
;;;;;;88888888888888888888888888888888888888888888888;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;PLL_DATA_PROCESS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;88888888888888888888888888888888888888888888888;;;;;;;;;
PLL_DATA_PROCESS:
			MOV	A, 0X04
			MOV	0X13, A		;SAVE CORRENT R4 
			JBS	0X07, 0		;JUDGE CURRENT BAND IS AM(P70=0) OR FM(P70=1)
			JMP	AM_PDATA_PROCESS
			;;;;;;;;;;;;;;;;;;;;;
			;FM_PDATA_PROCESS
			;;;;;;;;;;;;;;;;;;;;;
	FM_PDATA_PROCESS:
			MOV	A, @0XA1
			MOV	0X04, A
			MOV	A, 0X0D
			MOV	0X00, A
			DEC	0X04
			MOV	A, 0X0C
			MOV	0X00, A
			JBC	0X1F, 1			;IF P6[1]= 0 NOT JAPAN,SKIP
			JMP	PDATA_JAPAN_MODE	;IF P6[1]= 1,JAPAN MODE

			JBC	0X1F, 0			;0:STEP FREQ = 100K
			JMP	FM_STP_FQ_50K		;1:STEP FREQ = 50K
			
			MOV	A, @0X6B		;ADD IF=10.7MHz (006B)
			ADD	0X00, A			;CURRENT R4=0XA0
			INC	0X04
			JBC	0X03, 0
			INC	0X00			;CURRENT R4=0XA1
			JMP	FM_PDATA_100_OK
	PDATA_JAPAN_MODE:
			MOV	A, @0X95		;JAPAN IF=-10.7MHz(FF95)
			ADD	0X00, A
			INC	0X04			;CURRENT R4=0XA1
			JBS	0X03, 0			;if C_flag=1,R0 WILL NOT CHANGE
			DEC	0X00			;if C_flag=0,R0 SHOULD MINUS 1
	FM_PDATA_100_OK:	;CURRENT 0XA0&0XA1 SHOULD MULTIPLY 2
			BC	0X03, 0	;CLEAR C FLAG
			DEC	0X04			;CURRENT R4=0XA0
			RLC	0X00
			INC	0X04			;CURRENT R4=0XA1
			RLC	0X00
			JMP	FM_PDATA_OK
			
	FM_STP_FQ_50K:
			MOV	A, @0XD6		;ADD IF=10.7MHz(00D6)
			ADD	0X00, A			;CURRENT R4=0XA0
			INC	0X04
			JBC	0X03, 0
			INC	0X00			;CURRENT R4=0XA1
	
	FM_PDATA_OK:			
			MOV	A, 0X13
			MOV	0X04, A			;RESTORE R4
			BC	0X03, 6			;SET ROM PAGE TO 00
			RET		
			;;;;;;;;;;;;;;;;;
			;AM_PDATA_PROCESS
			;;;;;;;;;;;;;;;;;
	AM_PDATA_PROCESS:
			MOV	A, @0XF1
			MOV	0X04, A
			MOV	A, 0X09
			MOV	0X00, A
			DEC	0X04
			MOV	A, 0X08
			MOV	0X00, A
						; ADD IF OF AM 450K			
			MOV	A, @0X2D	;this IS

⌨️ 快捷键说明

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