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

📄 p08008-1.asm

📁 IPOD通讯控制程序,采用ETA的MCU,对IPOD进行控制
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;裘丰铭 2008、2月14日
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INCLUDE		"ADAM41K.LIB"
ESD1			EQU				00H
ESD2			EQU				01H
TIME0_MARK			EQU				02H
TIME1_MARK			EQU				03H
KEY_COUNT1			EQU				10H
KEY_COUNT2			EQU				11H
KEY_COUNT3			EQU				12H
KEY_COUNT4			EQU				13H
VARIABLE1			EQU				14H
VARIABLE2			EQU				15H
SAVE_A			EQU				16H
KEY_STATUS			EQU				17H
PHDR_MARK			EQU				18H
SRS_DATA1			EQU				20H
SRS_DATA2			EQU				21H
SRS_DATA3			EQU				22H
SRS_DATA4			EQU				23H
SRS_DATA5			EQU				24H
SRS_DATA6			EQU				25H
SRS_DATA7			EQU				26H
SRS_DATA8			EQU				27H
SRS_DATA9			EQU				28H
SRS_DATA10			EQU				29H
SRS_DATA11			EQU				2AH
SRS_DATA12			EQU				2BH
SRS_DATA13			EQU				2CH
SRS_DATA14			EQU				2DH
SRS_DATA15			EQU				2EH
SRS_DATA16			EQU				2FH
SRS_DATA17			EQU				30H
SRS_DATA18			EQU				31H
SRS_DATA19			EQU				32H
SRS_DATA20			EQU				33H
SRS_DATA21			EQU				34H
SRS_DATA22			EQU				35H
SRS_DATA23			EQU				36H
SRS_DATA24			EQU				37H
SRS_DATA25			EQU				38H
SRS_DATA26			EQU				39H
SRS_DATA27			EQU				3AH
SRS_DATA28			EQU				3BH
SRS_DATA29			EQU				3CH
SRS_DATA30			EQU				3DH
SRS_DATA31			EQU				3EH
SRS_DATA32			EQU				3FH
ESD3			EQU				40H
SRS_DATA33			EQU				41H
SRS_DATA34			EQU				42H
SRS_DATA35			EQU				43H
SRS_DATA36			EQU				44H
SRS_I2C_IN1			EQU				45H
SRS_I2C_IN2			EQU				46H
SRSAI_ACTION			EQU				47H
SRSAI_FLOW			EQU				48H
SRSAI_C1			EQU				49H
SRSAI_C2			EQU				4AH
PBDR_M              EQU                 4CH
CHANNEL_MARK			EQU				60H
MODE_MARK			EQU				61H
EQ_MARK			EQU				62H
STATUS_MARK			EQU				63H
SPEAKER_VOL1			EQU				64H
SPEAKER_VOL2			EQU				65H
INPUT_VOL1			EQU				66H
INPUT_VOL2			EQU				67H
SUB_VOL1			EQU				68H
SUB_VOL2			EQU				69H
VOL_FULL			EQU				6AH
ESD4			EQU				70H
VOL_I2C_IN1			EQU				71H
VOL_I2C_IN2			EQU				72H
VOL_DATA1			EQU				73H
VOL_DATA2			EQU				74H
VOL_DATA3			EQU				75H
VOL_DATA4			EQU				76H
VOL_DATA_H			EQU				77H
VOL_DATA_L			EQU				78H

RADIO_I2C_IN1       EQU		80H
RADIO_I2C_IN2       EQU       81H
RADIO_DATA00H1		EQU       82H
RADIO_DATA00H2		EQU       83H
RADIO_DATA00H3		EQU       84H
RADIO_DATA00H4		EQU       85H
RADIO_DATA01H1		EQU       86H
RADIO_DATA01H2		EQU       87H
RADIO_DATA01H3		EQU       88H
RADIO_DATA01H4		EQU       89H
RADIO_DATA02H1		EQU       8AH
RADIO_DATA02H2		EQU       8BH
RADIO_DATA02H3		EQU       8CH
RADIO_DATA02H4		EQU       8DH		
RADIO_DATA03H1		EQU       8EH
RADIO_DATA03H2		EQU       8FH
RADIO_DATA03H3		EQU       90H
RADIO_DATA03H4		EQU       91H
RADIO_DATA04H1		EQU       92H
RADIO_DATA04H2		EQU       93H
RADIO_DATA04H3		EQU       94H
RADIO_DATA04H4		EQU       95H
RADIO_DATA05H1		EQU       96H
RADIO_DATA05H2		EQU       97H
RADIO_DATA05H3		EQU       98H
RADIO_DATA05H4		EQU       99H
RADIO_DATA06H1		EQU       9AH
RADIO_DATA06H2		EQU       9BH
RADIO_DATA06H3		EQU       9CH
RADIO_DATA06H4		EQU       9DH
RADIO_DATA07H1		EQU       9EH
RADIO_DATA07H2		EQU       9FH
RADIO_DATA07H3		EQU       0A1H
RADIO_DATA07H4		EQU       0A2H
RADIO_DATA08H1		EQU       0A3H
RADIO_DATA08H2		EQU       0A4H
RADIO_DATA08H3		EQU       0A5H
RADIO_DATA08H4		EQU       0A6H
RADIO_DATA09H1		EQU       0A7H
RADIO_DATA09H2		EQU       0A8H
RADIO_DATA09H3		EQU       0A9H
RADIO_DATA09H4		EQU       0AAH
RADIO_DATA0AH1		EQU       0ABH
RADIO_DATA0AH2		EQU       0ACH
RADIO_DATA0AH3		EQU       0ADH
RADIO_DATA0AH4		EQU       0AEH
RADIO_DATA0BH1		EQU       0AFH
RADIO_DATA0BH2		EQU       0B0H
RADIO_DATA0BH3		EQU       0B1H
RADIO_DATA0BH4		EQU       0B2H
RADIO_DATA0CH1		EQU       0B3H
RADIO_DATA0CH2		EQU       0B4H
RADIO_DATA0CH3		EQU       0B5H
RADIO_DATA0CH4		EQU       0B6H
RADIO_DATA0DH1		EQU       0B7H
RADIO_DATA0DH2		EQU       0B8H
RADIO_DATA0DH3		EQU       0B9H
RADIO_DATA0DH4		EQU       0BAH
RADIO_DATA0EH1		EQU       0BBH
RADIO_DATA0EH2		EQU       0BCH
RADIO_DATA0EH3		EQU       0BDH
RADIO_DATA0EH4		EQU       0BEH

ESD5			EQU				0D0H
R_MARK_1			EQU				0D2H
R_MARK_2			EQU				0D3H
R_DATA_1			EQU				0D4H
R_DATA_2			EQU				0D5H
R_DATA_3			EQU				0D6H
R_DATA_4			EQU				0D7H
R_DATA_5			EQU				0D8H
R_DATA_6			EQU				0D9H
R_DATA_7			EQU				0DAH
R_DATA_8			EQU				0DBH
R_DATA			EQU				0DCH
R_KEY_OUT1			EQU				0E4H
R_KEY_OUT2			EQU				0E5H
R_KEY_DATA1			EQU				0E7H
R_KEY_DATA2			EQU				0E8H
R_KEY_C1			EQU				0EAH
R_KEY_C2			EQU				0EBH
R_KEY_C3			EQU				0ECH
R_KEY_STATUS1			EQU				0EEH
R_KEY_STATUS2			EQU				0EFH
SERIES_ACTION			EQU				0F0H
SERIES_C			EQU				0F1H
SERIES_R			EQU				0F2H
LED_DATA1			EQU				0F4H
LED_DATA2			EQU				0F5H
LED_DATA3			EQU				0F6H
LED_DATA4			EQU				0F7H
LEDAI_ACTION			EQU				0F9H
LEDAI_C1			EQU				0FBH
LEDAI_C2			EQU				0FCH
ESD6			EQU				0FEH
ESD7			EQU				0FFH
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;			ORG				0000H
			WDTC
			BR				!START
			CLRR1			T1MR.#2
			BR				!REMOTE_F
			WDTC
			BR				!START
			LDM				TIME0_MARK,#1111B
			RETI
			LDM				TIME1_MARK,#1111B
			RETI
			WDTC
			BR				!START
START:
			DI
			SPC
			WDTC
					
			LRI				R1FN,#0000B
			LRI				R1OD,#1111B
			LRI				R1PC,#1111B
			LRI				R1DD,#1111B
			LRI				R1DR,#1111B
			LRI				R1ST,#1111B
					
			LRI				PBFN,#0001B
			LRI				PBOD,#1100B
			LRI				PBPC,#1110B
			LRI				PBDD,#1100B
			LRI				PBDR,#1111B
			LRI				PBST,#1111B
			
			LRI				PGFN,#0000B
			LRI				PGOD,#0000B
			LRI				PGDD,#0000B
			LRI				PGDR,#1111B
			
			LRI				PHFN,#0000B
			LRI				PHOD,#1111B
			LRI				PHDD,#1111B
			LRI				PHDR,#1011B
				
			LRI				CGMR,#0000B
			LRI				RCR,#0000B
			
		     LDM			KEY_COUNT1,#00H
			LDM			KEY_COUNT2,#00H
SET1_LED:
			LRI			PHDR,#1111B
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			LRI			PHDR,#1011B
			CLRC
			ADDC			KEY_COUNT1,#1
			LDM			KEY_COUNT1,A
			ADDC			KEY_COUNT2,#0
			LDM			KEY_COUNT2,A
			TSTC
			BR			!SET1_LED_1
			BR			!SET1_LED
SET1_LED_1:
			LRI			PHDR,#1001B
			LDM			KEY_COUNT1,#00H
			LDM			KEY_COUNT2,#00H
			LDM			KEY_COUNT3,#06H
			CALL			!TIME_DELAY
			LDM			KEY_COUNT1,#00H
			LDM			KEY_COUNT2,#00H
SET1_LED_2:
			LRI			PHDR,#1101B
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			LRI			PHDR,#1001B
			CLRC
			ADDC			KEY_COUNT1,#1
			LDM			KEY_COUNT1,A
			ADDC			KEY_COUNT2,#0
			LDM			KEY_COUNT2,A
			TSTC
			BR			!SET1_LED_3
			BR			!SET1_LED_2
SET1_LED_3:
			LDM			KEY_COUNT1,#00H
			LDM			KEY_COUNT2,#00H
			LDM			KEY_COUNT3,#08H
			CALL			!TIME_DELAY
			LRI			PHDR,#1000B
					
			LDM				VOL_DATA1,#1100B
			LDM				VOL_DATA3,#0000B
			CALL			!VOL1_I2C
			LDM				VOL_DATA1,#1111B
			LDM				VOL_DATA3,#1001B
			CALL			!VOL1_I2C
			LDM				VOL_DATA1,#0000B
			LDM				VOL_DATA2,#0000B
			LDM				VOL_DATA3,#0001B
			LDM				VOL_DATA4,#0000B
			CALL			!VOL_I2C
			LDM				VOL_DATA1,#0010B
			LDM				VOL_DATA2,#0000B
			LDM				VOL_DATA3,#0011B
			LDM				VOL_DATA4,#0000B
			CALL			!VOL_I2C
			LDM				VOL_DATA1,#0100B
			LDM				VOL_DATA2,#0000B
			LDM				VOL_DATA3,#0101B
			LDM				VOL_DATA4,#0000B
			CALL			!VOL_I2C
			LDM				VOL_DATA1,#0110B
			LDM				VOL_DATA2,#0000B
			LDM				VOL_DATA3,#0111B
			LDM				VOL_DATA4,#0000B
			CALL			!VOL_I2C
			LDM				VOL_DATA1,#1000B
			LDM				VOL_DATA2,#0000B
			LDM				VOL_DATA3,#1001B
			LDM				VOL_DATA4,#0000B
			CALL			!VOL_I2C
			LDM				VOL_DATA1,#1010B
			LDM				VOL_DATA2,#0000B
			LDM				VOL_DATA3,#1011B
			LDM				VOL_DATA4,#0000B
			CALL			!VOL_I2C
					
			CALL			!CL_RAM
			LDM				ESD1,#0101B
			LDM				ESD2,#0101B
			LDM				ESD3,#0101B
			LDM				ESD4,#0101B
			LDM				ESD5,#0101B
			LDM				ESD6,#0101B
			LDM				ESD7,#0101B
			
			LDM				SRS_DATA1,#0000B
			LDM				SRS_DATA2,#0000B
			LDM				SRS_DATA3,#0001B
			LDM				SRS_DATA4,#0000B
			LDM				SRS_DATA5,#1110B
			LDM				SRS_DATA6,#0000B
			LDM				SRS_DATA7,#1111B
			LDM				SRS_DATA8,#0000B
			LDM				SRS_DATA9,#1100B
			LDM				SRS_DATA10,#1000B
			LDM				SRS_DATA11,#0011B		;左喇叭音量
			LDM				SRS_DATA12,#1111B
			LDM				SRS_DATA13,#0011B		;右喇叭音量
			LDM				SRS_DATA14,#1111B
			LDM				SRS_DATA15,#0011B		;左耳机音量
			LDM				SRS_DATA16,#1111B
			LDM				SRS_DATA17,#0011B		;右耳机音量
			LDM				SRS_DATA18,#1111B
			LDM				SRS_DATA19,#0011B		;低音冲压级数
			LDM				SRS_DATA20,#0010B
			LDM				SRS_DATA21,#0011B
			LDM				SRS_DATA22,#1100B
			LDM				SRS_DATA23,#1110B
			LDM				SRS_DATA24,#1100B		;LPF 60Hz
			LDM				SRS_DATA25,#0011B		;重低音音量
			LDM				SRS_DATA26,#1111B
			LDM				SRS_DATA27,#0000B
			LDM				SRS_DATA28,#0000B
			LDM				SRS_DATA29,#0000B
			LDM				SRS_DATA30,#0000B
			LDM				SRS_DATA31,#0000B
			LDM				SRS_DATA32,#0000B
			LDM				SRS_DATA33,#0000B
			LDM				SRS_DATA34,#0000B
			LDM				SRS_DATA35,#0000B
			LDM				SRS_DATA36,#0000B
			CALL			!SRS_I2C_ALL
			LDM				VOL_DATA1,#1101B		;2258总音量设为最小
			LDM				VOL_DATA2,#0111B
			LDM				VOL_DATA3,#1110B
			LDM				VOL_DATA4,#1001B
			CALL			!VOL_I2C
			
			;LDM                 RADIO_DATA00H1,#0100B
			;LDM                 RADIO_DATA00H2,#0000B
			;LDM                 RADIO_DATA00H3,#0000B
			;LDM                 RADIO_DATA00H4,#0000B
			;LDM                 RADIO_DATA01H1,#0000B
			;LDM                 RADIO_DATA01H2,#0001B
			;LDM                 RADIO_DATA01H3,#0101B
			;LDM                 RADIO_DATA01H4,#1110B
			;LDM                 RADIO_DATA02H1,#1010B
			;LDM                 RADIO_DATA02H2,#0100B
			;LDM                 RADIO_DATA02H3,#0000B
			;LDM                 RADIO_DATA02H4,#0000B
			;CALL                !RADIO_I2C_READ
			;
			LDM                 RADIO_DATA03H1,#0100B            ;03H(B3工作状态0工作,1休眠;B2保留1;B1左右道输出0有声,1静音;B0左声道输出0有声,1静音)
			LDM                 RADIO_DATA03H2,#0001B            ;   (B3右声道输出0有声,1静音;B2软件静音0能,1不能;B1搜预设好的台0不能,1能;B0搜台0不能,1能)
			LDM                 RADIO_DATA03H3,#1010B            ;   (B3搜台0向下,1向上;B2单声道选择0自动,1强迫在单声道模式;B1立休声0不强迫(立体声噪声消除开),1强迫(关);B0高移除0旁路,1能)
			LDM                 RADIO_DATA03H4,#1001B            ;   (B3低音推进0不能,1能;B2搜台完成中断位0不能中断,1能;B1高低边注入控制0手动,1自动;B0高低边注入手动控制0低,1高)
			LDM                 RADIO_DATA04H1,#0011B            ;04H(B3B2声音增加:00-1倍,01-1.5倍,10-2倍,11-2倍;B1B0与DATA18B3B2音量:00最细,11最大)
			LDM                 RADIO_DATA04H2,#1101B            ;   (B1B0和DATA19B3B2B1B0和DATA20B3B2B1B0(组成CHAN)频道选择:=CHAN*50KHZ+70MHZ)
			LDM                 RADIO_DATA04H3,#0101B
			LDM                 RADIO_DATA04H4,#1110B
			LDM                 RADIO_DATA05H1,#0001B            ;05H(B3B2波段选择:00-87.5~108MHZ(US/Europe,CHINA),10-76~90MHZ(JAPEN),11-70~108MHZ;B1B0频段间隔:00-200KHZ,01-100KHZ,10-50KHZ)
			LDM                 RADIO_DATA05H2,#1101B            ;   (B3不强调0不能,1能;B2不强调0-75US(USA),1-50US(China)B1AFC模式选择0无AFC,1接收调揩;B0AFC极性(接收调揩))
			LDM                 RADIO_DATA05H3,#1100B            ;   (B3信号质量检查模式0:RSS+Envelop detection/Frequency devivation detection,1:RSSI+Frequency deviation detection;B2接收信号强度指示0不能,1能;B1B0普通I/O口3:00高阻,01MOMO/ST指示,10低电平,11高电平)
			LDM                 RADIO_DATA05H4,#0000B            ;   (B3B2普通I/O口2:00高阻,01搜台完成中断,10低电平,11高电平;B1B0保留00)
			LDM                 RADIO_DATA06H1,#0000B            ;06H(B3频率背离测试模式控制0正常,1快速;B2晶振选择0-32.768KHZ,1-13MHZ;B1振荡器选择0两口晶振,1单口晶振;B0保留0)
			LDM                 RADIO_DATA06H2,#1000B            ;   (B3保留1;B2B1B0同DATA27B3组成RSSITU)
			LDM                 RADIO_DATA06H3,#0001B            ;   (B2APLL N/K MODE SELECTION:0IIC,1TUNE MODULE;B1B0同DATA28组成APLLN:N to APLL When APLL_NK_SEL=0)
			LDM                 RADIO_DATA06H4,#0110B                 
			LDM                 RADIO_DATA07H1,#0000B            ;07H(同DATA30,31,32组成APLLK:K to APLL When APLL_NK_SEL=0)
			LDM                 RADIO_DATA07H2,#0101B
			LDM                 RADIO_DATA07H3,#0111B
			LDM                 RADIO_DATA07H4,#0011B                 
			LDM                 RADIO_DATA08H1,#1010B            ;08H(同DATA34组成SEEKTH:搜台极限11001001-201,-65dBm;11111111-Max RSSI)
			LDM                 RADIO_DATA08H2,#0000B                 
			LDM                 RADIO_DATA08H3,#1111B            ;   (B3B2PGA range detector switching threshold:00-35000,01-30000,10-25000,11-20000;B1B0同DATA36B3组成ENVELOP_TH:000-224(14),001-228(18),010-352(22),011-416(26),100-480(30),101-544(34),110-608(38),111-672(42))
			LDM                 RADIO_DATA08H4,#0001B            ;   (B2B1B0频率背离检测极限(000-12(9.6K),001-14,010-16,011-18,100-20,101-22,110-24,111-26(20.8K)) 
			LDM                 RADIO_DATA09H1,#1000B            ;09H(8BAA)
			LDM                 RADIO_DATA09H2,#1011B
			LDM                 RADIO_DATA09H3,#1010B
			LDM                 RADIO_DATA09H4,#1010B
			LDM                 RADIO_DATA0AH1,#1100B            ;0AH(C604)
			LDM                 RADIO_DATA0AH2,#0110B
			LDM                 RADIO_DATA0AH3,#0000B
			LDM                 RADIO_DATA0AH4,#0100B
			LDM                 RADIO_DATA0BH1,#0110B            ;0BH(6D25)
			LDM                 RADIO_DATA0BH2,#1101B
			LDM                 RADIO_DATA0BH3,#0010B
			LDM                 RADIO_DATA0BH4,#0101B
			LDM                 RADIO_DATA0CH1,#1111B            ;0CH(FFFD)
			LDM                 RADIO_DATA0CH2,#1111B
			LDM                 RADIO_DATA0CH3,#1111B
			LDM                 RADIO_DATA0CH4,#1101B
			LDM                 RADIO_DATA0DH1,#0001B            ;0DH(120F)
			LDM                 RADIO_DATA0DH2,#0010B
			LDM                 RADIO_DATA0DH3,#0000B
			LDM                 RADIO_DATA0DH4,#1111B             
			LDM                 RADIO_DATA0EH1,#0100B            ;0EH(451D)
			LDM                 RADIO_DATA0EH2,#0101B
			LDM                 RADIO_DATA0EH3,#0001B
			LDM                 RADIO_DATA0EH4,#1101B
			CALL           !RADIO_I2C_WRITE
					
					
			LDM				KEY_STATUS,#1111B
			LDM				PHDR_MARK,#1000B
			
			LDM				INPUT_VOL1,#0001B
			LDM				INPUT_VOL2,#0000B
			LDM				SPEAKER_VOL1,#0001B
			LDM				SPEAKER_VOL2,#1100B
			LDM				SUB_VOL1,#0001B
			LDM				SUB_VOL2,#1111B
			LDM				VOL_DATA_H,#0011B
			LDM				VOL_DATA_L,#1001B
			
			LDM				CHANNEL_MARK,#1000B	;上电默认通道1
			LDM				MODE_MARK,#1000B		;上电默认模式1
			LDM				EQ_MARK,#0010B			;模式1/2没有EQ
			LDM				STATUS_MARK,#0000B	;0功放关/1开-0响/1静音-0开关EQ-0
				
			LRI				T0D0L,#10
			LRI				T0D0H,#15
			LRI				T0D1L,#10
			LRI				T0D1H,#15
			LRI				T0MR,#0010B
			LRI				IEDS,#0001B		;(External interrupt edge selection register) 
			LRI				IENR,#1001B		;(Interrupt enable register)
			LRI				IENR2,#0000B
			LRI				IRQR,#0000B
			LRI				IRQR2,#0000B
			LRI				T1LD,#10
			LRI				T1HD,#15
			LRI				T1MR,#1110B
			EI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;MAIN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME_1:
					LDM				TIME1_MARK,#0000B
					;FUNCTION
					CALL			!R_KEY_SET
					CALL			!R_KEY_F
					CALL			!KEY_SCAN
					CALL			!ESD
					;FUNCTION
TIME_1_1:
					CMNE			TIME1_MARK,#1111B
					BR				!TIME_1_1
					WDTC
;;;;;;;;;;
					LDM				TIME1_MARK,#0000B
					;FUNCTION
					CALL			!R_KEY_SET
					CALL			!SERIES_RKEY_F
					CALL			!LED_F
					CALL			!ESD
					;FUNCTION
TIME_1_2:
					CMNE			TIME1_MARK,#1111B
					BR				!TIME_1_2

⌨️ 快捷键说明

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