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

📄 dts for bu2614.sam

📁 BU2614 PLL 源程序,直接解压
💻 SAM
📖 第 1 页 / 共 5 页
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;This program is used for a radio system named DTS0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;VERSION J    2002-07-18;;;;;;;;;;;;;;;;;;;;

		ORG	0X00
		JMP	PWR_RESET
		ORG	0X01
		CLR	0x3f	;clear interrupt flag
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;RESET, INITIAL PORT;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PWR_RESET:

			BS	0X03, 5		;SET PAGE NUMBR 01
			CALL	READ_JMPER	;behind RAM_INITIAL at page 01
			
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;RUN AT FIRST TIME , SET DEFAULT RADIO STATION
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RADIO_INI:	

			JBc	0X03, 3				;IS IT FIRST ON POWER?
			jmp	begin_ram_initial	;first time ,system initial
			
			MOV	A, @0XFD
			MOV	0X04, A
			MOV	A, 0X00
			SUB	A, @0xaa
			jbs	0x03, 2
			jmp	begin_ram_initial	;RFD not equal to @0xaa,system re_initial
			INC	0X04
			MOV	A, 0X00
			SUB	A, @0x55
			jbC	0x03, 2
			jmp	EN_HIGH	;RFE equal to @0x55,jump to recall state before sleep;
								;otherwise system re_initial
			
		begin_ram_initial:
			BS	0X03, 5		;SET PAGE NUMBR 01,
			CALL	RAM_INITIAL
			CALL	RESTORE_STATION
			BS	0X03, 5		;SET PAGE NUMBR 01
			call	BACKUP_CURRENT_STATE	;留个备份
			CALL JUST_DO_IT
	
		
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;this IS THE MAIN PROGRAM OF KEY SCAN;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MEM_BUTTON:
			CLR	0X01		;CLEAR R1 TO AVOID TCC INTRUPT

			BC	0X05, 0
			JBC	0X06, 0
			JMP	BAND_BUTTON
			CALL	DELAY_10MS
			JBC	0X06, 0
			JMP	BAND_BUTTON
	MEM_RELEASE:
			CLR	0X01		;CLEAR R1 TO AVOID TCC INTRUPT

			JBs	0X06, 5	;add at 0719
			JMP	turn_off_radio;turn off the redio when detect EN to be low!!

			JBS	0X06, 0
			JMP	MEM_RELEASE	;WAIT for MEM KEY RELEASE
			
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;;MEM KEY PUSH DETECT;;;;;;;;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	

			CALL	JUDGE_AUTO_TUNING
			JBC	0X1E, 6		;WHEN IT IS AUTO TUNING ,NO OPERATION
			JMP	BAND_BUTTON
			
	NORMAL_MEM:
			JBC	0X1E, 0		;HAVE EVER THE MEM KEY PUSHED?1:YES
			JMP	STORE_STATION	;JUMP TO STORE STATION 
			
			CLR	0X1E
			BS	0X1E, 0		;SET MEM FLAG
			BC	0X12, 3		;MEMORY FLASHING
			CALL	COUNT_MN
			BS	0X03, 6
			CALL	DISPLAY
			JMP	BAND_BUTTON
			
	STORE_STATION:
			CALL	STORE_CURRENT_STATION
			BS	0X03, 5		;SET PAGE NUMBR 01
			call	BACKUP_CURRENT_STATE	;留个备份					
		;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;BAND_BUTTON
		;;;;;;;;;;;;;;;;;;;;;;;;;;;
		
BAND_BUTTON:
			BC	0X1E, 6	;clear AUTO TUNING flag
			JBC	0X06, 1
			JMP	DOWN_BUTTON
			CALL	DELAY_10MS
			JBC	0X06, 1
			JMP	DOWN_BUTTON

			
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;;BAND KEY PUSH DETECT;;;;;;;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	

			bs	0x03, 5		;set page 01
			call	normal_band

			CALL	JUST_DO_IT	;
			BS	0X03, 5		;SET PAGE NUMBR 01
			call	BACKUP_CURRENT_STATE	;留个备份					

			JBs	0X06, 5	;add at 0719
			JMP	turn_off_radio;turn off the redio when detect EN to be low!!
			call	delay_100ms			
			BC	0X07, 5		;P7[5]=0:MUTE OFF, SOUND ON
			JMP	DOWN_BUTTON					
					
		;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;DOWN_BUTTON;;;;;;;;;		
		;;;;;;;;;;;;;;;;;;;;;;;;;;;
DOWN_BUTTON:
			JBC	0X06, 2
			JMP	UP_BUTTON
			CALL	DELAY_10MS
			JBC	0X06, 2
			JMP	UP_BUTTON	
			
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;;DOWN KEY PUSH DETECT;;;;;;;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	
			BS	0X12, 3	;PRESET NO FLASHING
			BC	0X1E, 0		;CLEAR MEM KEY FLAG
			bc	0x1e, 1		;clear initial flag
			
			BS	0X03, 5		;SET PAGE NUMBR 01
				call	BACKUP_CURRENT_STATE	;留个备份					

			CALL	JUDGE_AUTO_TUNING
			JBC	0X1E, 6		;WHEN IT IS AUTO TUNING ,NO OPERATION
			JMP	DOWN_KEY_500MS

		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;NORMAL DOWN KEY FOUNCTION;;;;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	
	NORMAL_DOWN:
			Bs	0X07, 5		;P7[5]=0:MUTE On, SOUND Off

			JBS	0X07, 0		;JUDGE CURRENT BAND IS AM(P70=0) OR FM(P70=1)
			JMP	JUDGE_R8R9_DN	;AM MODE, JUMP TO AM

			JBC	0X1F, 1
			JMP	IF_DN_JAPAN	; JAPAN MODE

			JBC	0X1F, 0		;0:IF=100K
			JMP	IF_DN_50K	; IF = 50K
			;;;;;;;;;;;;;;;;;;;;;;;;;
	IF_DN_100K:
			CALL	IF_DN_100K_SUB
			JMP	DOWN_OK
			;;;;;;;;;;;;;;;;;;;;;;;;;
	IF_DN_50K:
			CALL	IF_DN_50K_SUB
			JMP	DOWN_OK
			;;;;;;;;;;;;;;;;;;;;;;;;;
	IF_DN_JAPAN:
			CALL	IF_DN_JAPAN_SUB
			JMP	DOWN_OK
			;;;;;;;;;;;;;;;;;;;;;;;;;
			;;;;;;;;;;;;;;;;;;;;;;;;;
	JUDGE_R8R9_DN:
			JBS	0X1F, 2		;1:IF=10KHz
			JMP	AM_IF_9K		;IF = 9KHz
			;;;;;;;;;;;;;;;;;;;;;;;;;
	AM_IF_10K:	
			CALL	IF_DN_10K_SUB
			JMP	DOWN_OK
			;;;;;;;;;;;;;;;;;;;;;;;;;
	AM_IF_9K:	
			CALL	IF_DN_9K_SUB
			JMP	DOWN_OK

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;;;;DISPLAY WHEN DETECT DOWN KEY PRESSED;;;;
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	DOWN_OK:

			CLR	0X10		;DONT DISPLAY CHANNEL AND PRESET
			BS	0X03, 5		;SET PAGE NUMBR 01
			call	BACKUP_CURRENT_STATE	;留个备份
			BS	0X03, 6
			CALL	DISP_DATA_PROCESS
			BS	0X03, 6
			CALL	DISPLAY
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;;;;JUDGE WHETHER DOWN KEY PRESSED 500ms;;;;
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	DOWN_KEY_500MS:
			BC	0X1E, 6	;clear AUTO TUNING flag
			CALL	DELAY_100MS
			JBC	0X06, 2
			JMP	DOWN_KEY_RELEASE2	;R6[2]=1 MEANS THE KEY RELEASED
			CALL	DELAY_100MS
			JBC	0X06, 2
			JMP	DOWN_KEY_RELEASE2	;R6[2]=1 MEANS THE KEY RELEASED
			CALL	DELAY_100MS
			JBC	0X06, 2
			JMP	DOWN_KEY_RELEASE2	;R6[2]=1 MEANS THE KEY RELEASED
			CALL	DELAY_100MS
			JBC	0X06, 2
			JMP	DOWN_KEY_RELEASE2	;R6[2]=1 MEANS THE KEY RELEASED
			CALL	DELAY_100MS
			JBC	0X06, 2
			JMP	DOWN_KEY_RELEASE2	;R6[2]=1 MEANS THE KEY RELEASED



	down_tuning_continue:
			


	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;;;SET A FLAG  WHEN DN BUTTON PRESSED THAN 500ms;;;
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;				
			BS	0X1E, 2		;SET AUTO_DOWN TUNING FLAG			
			CLR	0X01		;CLEAR R1 TO AVOID TCC INTRUPT

			JBs	0X06, 5	;add at 0719
			JMP	turn_off_radio;turn off the redio when detect EN to be low!!
			
			BS	0X07, 5		;MUTE ON WHEN auto TUNING
	
			BS	0X03, 6
			CALL	PLL_DATA_PROCESS
			BS	0X03, 6
			CALL	PLL_DATA_OUT			

			JMP	AUTO_DOWN_TUNING


	DOWN_KEY_RELEASE2:

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;;;;SET PLL WHEN DETECT DOWN KEY RELEASE;;;;
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	
			BS	0X03, 6
			CALL	PLL_DATA_PROCESS
			BS	0X03, 6
			CALL	PLL_DATA_OUT
			call	delay_100ms
			BC	0X07, 5		;P7[5]=0:MUTE OFF, SOUND ON


		;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;;;UP_BUTTON;;;;;;;;;		
		;;;;;;;;;;;;;;;;;;;;;;;;;;;
UP_BUTTON:
			JBC	0X06, 3
			JMP	MEM_UP_BUTTON
			CALL	DELAY_100MS
			JBC	0X06, 3
			JMP	MEM_UP_BUTTON	
			
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;;;;UP KEY PUSH DETECT;;;;;;;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	

			BS	0X12, 3	;PRESET NO FLASHING
			BC	0X1E, 0		;CLEAR MEM KEY FLAG
			bc	0x1e, 1		;clear initial flag
			
			BS	0X03, 5		;SET PAGE NUMBR 01
			call	BACKUP_CURRENT_STATE	;留个备份

			CALL	JUDGE_AUTO_TUNING
			JBC	0X1E, 6		;WHEN IT IS AUTO TUNING ,NO OPERATION
			JMP	UP_KEY_500MS

		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;NORMAL UP KEY FOUNCTION;;;;;;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	
	NORMAL_UP:
			Bs	0X07, 5		;P7[5]=0:MUTE On, SOUND Off

			JBS	0X07, 0		;JUDGE CURRENT BAND IS AM(P70=0) OR FM(P70=1)
			JMP	JUDGE_R8R9_UP	;AM MODE, JUMP TO AM

			JBC	0X1F, 1
			JMP	IF_UP_100K	; JAPAN MODE

			JBC	0X1F, 0		;0:IF=100K
			JMP	IF_UP_50K	; IF = 50K
			;;;;;;;;;;;;;;;;;;;;;;;;;
	IF_UP_100K:
			CALL	IF_UP_100K_INC
			JMP	UP_OK
			;;;;;;;;;;;;;;;;;;;;;;;;;
	IF_UP_50K:
			CALL	IF_UP_50K_INC
			JMP	UP_OK
			;;;;;;;;;;;;;;;;;;;;;;;;;
			;;;;;;;;;;;;;;;;;;;;;;;;;
	JUDGE_R8R9_UP:
			JBS	0X1F, 2		;1:IF=10KHz
			JMP	AM_IF_UP_9K	;IF = 9KHz
			;;;;;;;;;;;;;;;;;;;;;;;;;
	AM_IF_UP_10K:	
			CALL	IF_UP_10K_INC
			JMP	UP_OK
			;;;;;;;;;;;;;;;;;;;;;;;;;
	AM_IF_UP_9K:	
			CALL	IF_UP_9K_INC
			JMP	UP_OK

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;;;;DISPLAY WHEN DETECT UP KEY PRESSED;;;;;;
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	UP_OK:

			CLR	0X10		;DONT DISPLAY CHANNEL AND PRESET
			BS	0X03, 5		;SET PAGE NUMBR 01
			call	BACKUP_CURRENT_STATE	;留个备份
			BS	0X03, 6
			CALL	DISP_DATA_PROCESS
			BS	0X03, 6
			CALL	DISPLAY
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;;;;;JUDGE WHETHER UP KEY PRESSED 500ms;;;;;
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	UP_KEY_500MS:
			BC	0X1E, 6	;clear AUTO TUNING flag
			CALL	DELAY_100MS
			JBC	0X06, 3
			JMP	UP_KEY_RELEASE2	;R6[3]=1 MEANS THE KEY RELEASED
			CALL	DELAY_100MS
			JBC	0X06, 3
			JMP	UP_KEY_RELEASE2	;R6[3]=1 MEANS THE KEY RELEASED
			CALL	DELAY_100MS
			JBC	0X06, 3
			JMP	UP_KEY_RELEASE2	;R6[3]=1 MEANS THE KEY RELEASED
			CALL	DELAY_100MS
			JBC	0X06, 3
			JMP	UP_KEY_RELEASE2	;R6[3]=1 MEANS THE KEY RELEASED
			CALL	DELAY_100MS
			JBC	0X06, 3
			JMP	UP_KEY_RELEASE2	;R6[3]=1 MEANS THE KEY RELEASED



	up_tuning_continue:

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;;;SET A FLAG  WHEN UP BUTTON PRESSED THAN 500ms;;;
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;				
			BS	0X1E, 3		;SET AUTO_UP TUNING FLAG			
			CLR	0X01		;CLEAR R1 TO AVOID TCC INTRUPT

			JBs	0X06, 5	;add at 0719
			JMP	turn_off_radio;turn off the redio when detect EN to be low!!

			BS	0X07, 5		;MUTE ON WHEN auto TUNING
	
			BS	0X03, 6
			CALL	PLL_DATA_PROCESS
			BS	0X03, 6
			CALL	PLL_DATA_OUT			

			JMP	AUTO_UP_TUNING



	UP_KEY_RELEASE2:
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;;;;SET PLL WHEN DETECT UP KEY RELEASE;;;;
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	
			BS	0X03, 6
			CALL	PLL_DATA_PROCESS
			BS	0X03, 6
			CALL	PLL_DATA_OUT

			call	delay_100ms
			BC	0X07, 5		;P7[5]=0:MUTE OFF, SOUND ON



		;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;MEM_UP_BUTTON;;;;;;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;						
MEM_UP_BUTTON:
			BS	0X05, 0
			CALL	DELAY_10MS
			BC	0X05, 1
			JBC	0X06, 0
			JMP	MEM_DN_BUTTON
			CALL	DELAY_10MS
			JBC	0X06, 0
			JMP	MEM_DN_BUTTON
			
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;;MEM_UP KEY PUSH DETECT;;;;;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	

			JBC	0X1E, 1		;IF IT IS INITIAL STATE
			JMP	INITIAL_STATION_FM_M1		;RECALL FM/M1


			CALL	JUDGE_AUTO_TUNING
			JBS	0X1E, 6		;WHEN IT IS AUTO TUNING ,NO OPERATION
			JMP	NORMAL_MEM_UP
			
	MEM_UP_RELEASE1:
			CLR	0X01		;CLEAR R1 TO AVOID TCC INTRUPT

			JBs	0X06, 5	;add at 0719
			JMP	turn_off_radio;turn off the redio when detect EN to be low!!

			JBS	0X06, 0
			JMP	MEM_UP_RELEASE1
			BC	0X1E, 6	;clear AUTO TUNING flag
			BS	0X03, 5		;SET PAGE NUMBR 01
			call	BACKUP_CURRENT_STATE	;留个备份
			JMP	MEM_DN_BUTTON
			
	NORMAL_MEM_UP:		
			Bs	0X07, 5		;MUTE On when mem_up


			mov	a, @0x0f
			AND	A, 0x10
			jbc	0x03, 2	;Zflag=0,skip
			jmp	MEM_UP_RELEASE2	;doing nothing if R10=x0
			
			MOV	A, @0X3B
			JBS	0X07, 0	;JUDGE CURRENT BAND IS AM(P70=0) OR FM(P70=1)
			MOV	A, @0X7B
			SUB	0X04, A
			DJZ	0X04		;DID R4 = 0X3C/0X7C:
			JMP	MEM_UP_INC	;WHEN R4 IS NOT 0X3C/0X7C
			MOV	A, @0X20	; WHEN R4 = 0X3C/0X7C, NEXT WILL BE 0X20/0X60
			JBS	0X07, 0	;JUDGE CURRENT BAND IS AM(P70=0) OR FM(P70=1)
			MOV	A, @0X60	; WHEN R4 = 0X7C, NEXT WILL BE 0X60
			MOV	0X04, A
			JMP	MEM_UP_RELEASE2
	MEM_UP_INC:
			ADD	0X04, A
			MOV	A, @0X03
			ADD	0X04, A
	MEM_UP_RELEASE2:
			CLR	0X01		;CLEAR R1 TO AVOID TCC INTRUPT

			JBs	0X06, 5	;add at 0719
			JMP	turn_off_radio;turn off the redio when detect EN to be low!!

			JBS	0X06, 0
			JMP	MEM_UP_RELEASE2	

			CALL	COUNT_MN
			JBC	0X1E, 0		;MEM KEY PRESSED?
			JMP	JUST_DISPLAY_MEM_UP
			CALL	RESTORE_STATION
			BS	0X03, 5		;SET PAGE NUMBR 01
			call	BACKUP_CURRENT_STATE	;留个备份
			BS	0X03, 6
			CALL	PLL_DATA_PROCESS
			BS	0X03, 6
			CALL	PLL_DATA_OUT
			BS	0X03, 6
			CALL	DISP_DATA_PROCESS
			
	JUST_DISPLAY_MEM_UP:
			BS	0X03, 6
			CALL	DISPLAY
			
			call	delay_100ms
			BC	0X07, 5		;P7[5]=0:MUTE OFF, SOUND ON when stable
		
			JMP	MEM_DN_BUTTON
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;			
	INITIAL_STATION_FM_M1:

			CALL	RESTORE_STATION
			CALL	COUNT_MN
			BS	0X03, 5		;SET PAGE NUMBR 01
			call	BACKUP_CURRENT_STATE	;留个备份
	MEM_UP_RELEASE3:
			CLR	0X01		;CLEAR R1 TO AVOID TCC INTRUPT

			JBs	0X06, 5	;add at 0719
			JMP	turn_off_radio;turn off the redio when detect EN to be low!!

			JBS	0X06, 0
			JMP	MEM_UP_RELEASE3
			
	MEM_DN_RELEASE3:
			CLR	0X01		;CLEAR R1 TO AVOID TCC INTRUPT

			JBs	0X06, 5	;add at 0719
			JMP	turn_off_radio;turn off the redio when detect EN to be low!!

			JBS	0X06, 1
			JMP	MEM_DN_RELEASE3
			
			CALL	JUST_DO_IT
			
			BC	0X1E, 1		;CLEAR INITIAL FLAG
			BC	0X07, 5		;MUTE OFF
			JMP	A5_10_BUTTON
					

			
		;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;MEM_DN_BUTTON;;;;;;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;						
MEM_DN_BUTTON:
			JBC	0X06, 1
			JMP	A5_10_BUTTON
			CALL	DELAY_10MS
			JBC	0X06, 1
			JMP	A5_10_BUTTON	
			
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;;MEM_DN KEY PUSH DETECT;;;;;;
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;	

			JBC	0X1E, 1		;IF IT IS INITIAL STATE
			JMP	INITIAL_STATION_FM_M1		;RECALL FM/M1

			
			CALL	JUDGE_AUTO_TUNING
			JBS	0X1E, 6		;WHEN IT IS AUTO TUNING ,NO OPERATION
			JMP	NORMAL_MEM_DN
			
	MEM_DN_RELEASE1:
			CLR	0X01		;CLEAR R1 TO AVOID TCC INTRUPT

			JBs	0X06, 5	;add at 0719
			JMP	turn_off_radio;turn off the redio when detect EN to be low!!

			JBS	0X06, 1
			JMP	MEM_DN_RELEASE1
			BC	0X1E, 6	;clear AUTO TUNING flag
			BS	0X03, 5		;SET PAGE NUMBR 01
			call	BACKUP_CURRENT_STATE	;留个备份
			JMP	A5_10_BUTTON
			
	NORMAL_MEM_DN:
			Bs	0X07, 5		;MUTE On when mem_dn
			
			mov	a, @0x0f
			AND	A, 0x10
			jbc	0x03, 2	;Zflag=0,skip
			jmp	MEM_DN_RELEASE2	;doing nothing if R10=x0
			
			MOV	A, @0X1F
			JBS	0X07, 0	;JUDGE CURRENT BAND IS AM(P70=0) OR FM(P70=1)
			MOV	A, @0X5F
			SUB	0X04, A
			DJZ	0X04		;DID R4 = 0X20/0X60?
			JMP	MEM_DN_DEC	;WHEN R4 IS NOT 0X20/60
			MOV	A, @0X3C	; WHEN R4 = 0X20, NEXT WILL BE 0X3C
			JBS	0X07, 0	;JUDGE CURRENT BAND IS AM(P70=0) OR FM(P70=1)
			MOV	A, @0X7C	; WHEN R4 = 0X60, NEXT WILL BE 0X7C
			MOV	0X04, A
			JMP	MEM_DN_RELEASE2
	MEM_DN_DEC:
			ADD	0X04, A
			DEC	0X04
			
	MEM_DN_RELEASE2:
			CLR	0X01		;CLEAR R1 TO AVOID TCC INTRUPT

			JBs	0X06, 5	;add at 0719
			JMP	turn_off_radio;turn off the redio when detect EN to be low!!

			JBS	0X06, 1
			JMP	MEM_DN_RELEASE2
			
			CALL	COUNT_MN
			JBC	0X1E, 0		;MEM KEY PRESSED?
			JMP	JUST_DISPLAY_MEM_DN
			CALL	RESTORE_STATION
			BS	0X03, 5		;SET PAGE NUMBR 01
			call	BACKUP_CURRENT_STATE	;留个备份
			BS	0X03, 6
			CALL	PLL_DATA_PROCESS
			BS	0X03, 6
			CALL	PLL_DATA_OUT
			BS	0X03, 6
			CALL	DISP_DATA_PROCESS
			
	JUST_DISPLAY_MEM_DN:
			BS	0X03, 6
			CALL	DISPLAY

			call	delay_100ms
			Bc	0X07, 5		;MUTE OFF when stable

		
		;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;;;;;;;+5/+10_BUTTON;;;;;;;		
		;;;;;;;;;;;;;;;;;;;;;;;;;;;				
A5_10_BUTTON:
			JBC	0X06, 2
			JMP	M5_BUTTON
			CALL	DELAY_10MS
			JBC	0X06, 2
			JMP	M5_BUTTON
			

⌨️ 快捷键说明

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