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

📄 p08008-1.asm

📁 IPOD通讯控制程序,采用ETA的MCU,对IPOD进行控制
💻 ASM
📖 第 1 页 / 共 5 页
字号:
					BR				!LED_F_1
					LDM				LED_DATA4,#0000B
					LDM				LED_DATA3,#0000B
					LDM				LED_DATA2,#0000B
					LDM				LED_DATA1,#0100B
					CALL			!LED_SCAN
					RET
LED_F_1:
					LDM				LED_DATA4,#0
					CMNE			CHANNEL_MARK,#1000B
					BR				!LED_F_1_1A
					SET1			LED_DATA4.#3
					BR				!LED_F_1_1Z
LED_F_1_1A:
					CMNE			CHANNEL_MARK,#0100B
					BR				!LED_F_1_1B
					SET1			LED_DATA4.#2
					BR				!LED_F_1_1Z
LED_F_1_1B:
					CMNE			CHANNEL_MARK,#0010B
					BR				!LED_F_1_1C
					SET1			LED_DATA4.#1
					BR				!LED_F_1_1Z
LED_F_1_1C:
					SET1			LED_DATA4.#0
LED_F_1_1Z:
					;
					LDM				LED_DATA3,#0
					LDM				LED_DATA2,#0
					CMNE			MODE_MARK,#1000B
					BR				!LED_F_1A
					SET1			LED_DATA3.#1
					BR				!LED_F_1Z
LED_F_1A:
					CMNE			MODE_MARK,#0100B
					BR				!LED_F_1B
					SET1			LED_DATA3.#3
					BR				!LED_F_1Z
LED_F_1B:
					CMNE			MODE_MARK,#0010B
					BR				!LED_F_1C
					SET1			LED_DATA2.#0
					BR				!LED_F_1Z
LED_F_1C:
					SET1			LED_DATA2.#3
LED_F_1Z:
					;
					TM				STATUS_MARK.#1
					BR				!LED_F_2
					BR				!LED_F_3
LED_F_2:
					CMNE			EQ_MARK,#1000B
					BR				!LED_F_2A
					SET1			LED_DATA3.#2
					BR				!LED_F_3
LED_F_2A:
					CMNE			EQ_MARK,#0100B
					BR				!LED_F_2B
					SET1			LED_DATA2.#2
					BR				!LED_F_3
LED_F_2B:
					CMNE			EQ_MARK,#0010B
					BR				!LED_F_2C
					SET1			LED_DATA3.#0
					BR				!LED_F_3
LED_F_2C:
					SET1			LED_DATA2.#1
LED_F_3:
					;
					CMLE			LEDAI_ACTION,#1
					BR				!LED_F_3A
					BR				!LED_F_6
LED_F_3A:
					TM				STATUS_MARK.#2
					BR				!LED_F_4
					LDM				LED_DATA1,#1000B
					BR				!LED_F_5
LED_F_4:
					LDM				LED_DATA1,#1100B
LED_F_5:
					LDM				LEDAI_C1,#0
					LDM				LEDAI_C2,#0
					CALL			!LED_SCAN
					RET
LED_F_6:
					CLRC
					ADDC			LEDAI_C1,#1
					LDM				LEDAI_C1,A
					ADDC			LEDAI_C2,#0
					LDM				LEDAI_C2,A
					CMNE			LEDAI_C1,#4
					BR				!LED_F_7
					CMNE			LEDAI_C2,#2
					BR				!LED_F_7
					LDM				LEDAI_ACTION,#0
					BR				!LED_F_3
LED_F_7:
					LDM				LED_DATA1,#0000B
					CALL			!LED_SCAN
					RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;SECOND LAYER
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SOUND_UP:
					LDA				VOL_DATA4			;比较音量是否已经一样
					CANE			VOL_DATA_L
					BR				!SOUND_UP_1
					LDA				VOL_DATA2
					CANE			VOL_DATA_H
					BR				!SOUND_UP_1
					BR				!SOUND_UP_2
SOUND_UP_1:
					CLRC
					SUBC			VOL_DATA4,#1
					LDM				VOL_DATA4,A
					CMLE			VOL_DATA4,#8
					BR				!SOUND_UP_3
					LDM				VOL_DATA4,#9
					CLRC
					SUBC			VOL_DATA2,#1
					LDM				VOL_DATA2,A
					CMLE			VOL_DATA2,#6
					BR				!SOUND_UP_3
					BR				!START
SOUND_UP_2:
					LDM				VOL_DATA1,#1101B		;调整总音量
					LDM				VOL_DATA3,#1110B
					CALL			!VOL_I2C
					CLRC
					ADDC			SRSAI_FLOW,#1
					LDM				SRSAI_FLOW,A
					RET
SOUND_UP_3:
					LDM				VOL_DATA1,#1101B		;调整总音量
					LDM				VOL_DATA3,#1110B
					CALL			!VOL_I2C
					RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SOUND_DOWN:
					CMNE			VOL_DATA2,#0111B		;比较音量是否最小
					BR				!SOUND_DOWN_1
					CMNE			VOL_DATA4,#1001B
					BR				!SOUND_DOWN_1
					BR				!SOUND_DOWN_2
SOUND_DOWN_1:
					CLRC
					ADDC			VOL_DATA4,#1
					LDM				VOL_DATA4,A
					CMLE			VOL_DATA4,#9
					BR				!SOUND_DOWN_3
					LDM				VOL_DATA4,#0
					ADDC			VOL_DATA2,#1
					LDM				VOL_DATA2,A
					CMLE			VOL_DATA2,7
					BR				!SOUND_DOWN_3
					BR				!START
SOUND_DOWN_2:
					LDM				VOL_DATA1,#1101B		;调整总音量
					LDM				VOL_DATA3,#1110B
					CALL			!VOL_I2C
					CLRC
					ADDC			SRSAI_FLOW,#1
					LDM				SRSAI_FLOW,A
					RET
SOUND_DOWN_3:
					LDM				VOL_DATA1,#1101B		;调整总音量
					LDM				VOL_DATA3,#1110B
					CALL			!VOL_I2C
					RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DATA_RECEIVE:
					LDM				R_DATA,#0
					CALL			!WAIT_H
					CMLE			R_MARK_1,#0
					BR				!DATA_RECEIVE_R
					CALL			!WAIT_L
					CMNE			R_MARK_1,#0
					BR				!DATA_RECEIVE_1
					SET1			R_DATA.#3
					CALL			!R_KEY_SET  ;补
					CALL			!WAIT_L
					CMLE			R_MARK_1,#0
					BR				!DATA_RECEIVE_R
DATA_RECEIVE_1:
					CALL			!WAIT_H
					CMLE			R_MARK_1,#0
					BR				!DATA_RECEIVE_R
					CALL			!WAIT_L
					CMNE			R_MARK_1,#0
					BR				!DATA_RECEIVE_2
					SET1			R_DATA.#2
					CALL			!R_KEY_SET  ;补
					CALL			!WAIT_L
					CMLE			R_MARK_1,#0
					BR				!DATA_RECEIVE_R
DATA_RECEIVE_2:
					CALL			!WAIT_H
					CMLE			R_MARK_1,#0
					BR				!DATA_RECEIVE_R
					CALL			!WAIT_L
					CMNE			R_MARK_1,#0
					BR				!DATA_RECEIVE_3
					SET1			R_DATA.#1
					CALL			!R_KEY_SET  ;补
					CALL			!WAIT_L
					CMLE			R_MARK_1,#0
					BR				!DATA_RECEIVE_R
DATA_RECEIVE_3:
					CALL			!WAIT_H
					CMLE			R_MARK_1,#0
					BR				!DATA_RECEIVE_R
					CALL			!WAIT_L
					CMNE			R_MARK_1,#0
					BR				!DATA_RECEIVE_4
					SET1			R_DATA.#0
					CALL			!R_KEY_SET  ;补
					CALL			!WAIT_L
					CMLE			R_MARK_1,#0
					BR				!DATA_RECEIVE_R
DATA_RECEIVE_4:
					LDM				R_MARK_1,#1111B
DATA_RECEIVE_R:
					RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
VOL_I2C:
					LRI				R1DR,#1011B   ;SCL(R13)高电平期间,SDA(R12)由高电平变低电平,开始I2C数据传输
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					LRI				R1DR,#0011B   ;SCL(R13)为低电平,主控制器等待
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					LDA				#1000B
					LDM				VOL_I2C_IN1,A
					LDA				#1000B
					LDM				VOL_I2C_IN2,A
					CALL			!VOL_I2C_E
					;
					LDA				VOL_DATA1
					LDM				VOL_I2C_IN1,A
					LDA				VOL_DATA2
					LDM				VOL_I2C_IN2,A
					CALL			!VOL_I2C_E
					LDA				VOL_DATA3
					LDM				VOL_I2C_IN1,A
					LDA				VOL_DATA4
					LDM				VOL_I2C_IN2,A
					CALL			!VOL_I2C_E
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					LRI				R1DR,#1011B   ;SCL(R13)高电平期间,SDA(R12)由低电平变高电平,停止I2C数据传输
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					LRI				R1DR,#1111B   
					RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
VOL1_I2C:
					LRI				R1DR,#1011B
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					LRI				R1DR,#0011B
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					LDA				#1000B
					LDM				VOL_I2C_IN1,A
					LDA				#1000B
					LDM				VOL_I2C_IN2,A
					CALL			!VOL_I2C_E
					;
					LDA				VOL_DATA1
					LDM				VOL_I2C_IN1,A
					LDA				VOL_DATA3
					LDM				VOL_I2C_IN2,A
					CALL			!VOL_I2C_E
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					LRI				R1DR,#1011B
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					LRI				R1DR,#1111B
					RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SRS_I2C_ALL:
					LRI				R1DR,#1110B
					NOP
					LRI				R1DR,#1100B
					LDA				SRS_DATA1
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA2
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA3
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA4
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA5
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA6
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA7
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA8
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA9
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA10
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA11
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA12
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA13
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA14
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA15
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA16
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA17
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA18
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA19
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA20
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA21
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA22
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA23
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA24
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA25
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA26
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA27
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA28
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA29
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA30
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA31
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA32
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA33
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA34
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					LDA				SRS_DATA35
					LDM				SRS_I2C_IN1,A
					LDA				SRS_DATA36
					LDM				SRS_I2C_IN2,A
					CALL			!SRS_I2C_E
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					LRI				R1DR,#1110B
					NOP
					LRI				R1DR,#1111B
					RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RADIO_I2C_READ:
					LRI				PBOD,#1000B
					LRI				PBDD,#1000B          ;0输入,1输出PB2设为输入
					LRI                 PBDR,#1111B
					NOP
					NOP
					NOP
					LRI				PBDR,#1011B
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					LRI				PBDR,#0011B
					NOP
					NOP
					NOP
					NOP
					NOP
					NOP
					LDA				#0010B
					LDM				RADIO_I2C_IN1,A
					LDA				#0001B                  ;最低位1为读方式
					LDM				RADIO_I2C_IN2,A
					CALL			!RADIO_I2C_E_WRITE
					;
					CALL			!RADIO_I2C_E_READ
					LDA				RADIO_I2C_IN1
					LDM				RADIO_DATA00H1,A
					LDA				RADIO_I2C_IN2
					LDM				RADIO_DATA00H2,A
					CALL			!RADIO_I2C_E_READ
					LDA				RADIO_I2C_IN1
					LDM				RADIO_DATA00H3,A
					LDA				RADIO_I2C_IN2
					LDM				RADIO_DATA00H4,A
					CALL			!RADIO_I2C_E_READ
					LDA				RADIO_I2C_IN1
					LDM				RADIO_DATA01H1,A
					LDA				RADIO_I2C_IN2
					LDM				RADIO_DATA01H2,A
					CALL			!RADIO_I2C_E_READ
					LDA				RADIO_I2C_IN1
					LDM				RADIO_DATA01H3,A
					LDA				RADIO_I2C_IN2
					LDM				RADIO_DATA01H4,A
					CALL			!RADIO_I2C_E_READ
					LDA				RADIO_I2C_IN1
					LDM				RADIO_DATA02H1,A
					LDA				RADIO_I2C_IN2
					LDM				RADIO_DATA02H2,A
					CALL			!RADIO_I2C_E_READ
					LDA				RADIO_I2C_IN1
					LDM				RADIO_DATA02H3,A
					LDA				RADIO_I2C_IN2
					

⌨️ 快捷键说明

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