📄 kzwj230.asm
字号:
MOV A,#03h
CJNE A,RT_ADD,ISNOT_MY_3 ;比较是不是本身
MOV A,#00H
LJMP READ_XRAM_3
ISNOT_MY_3:
MOV R0,#0B2H
MOV A,@R0
JNZ ISNOT_MY_3_1
MOV A,#00H
AJMP READ_XRAM_3
ISNOT_MY_3_1:
CJNE A,#81H,$+6 ;判断是否被该乘员呼叫
LJMP $+8
MOV A,VOL_NT
LJMP $+5
MOV A,#0BH
READ_XRAM_3: ;从总线地址内取出43话音字,放在80H~AAH内
MOV R0,#cont_vram ;解码置音量字
MOV @R0,A
CLR A
MOV R7,#cont_smq ;43 TONE_BYTE
MOV R0,#80H
MOV DPTR,#0091H
READ_XRAM_3_1:
MOVX A,@DPTR
MOV @R0,A
NOP
INC R0
INC DPTR
DJNZ R7,READ_XRAM_3_1
NOP
NOP
NOP
NOP
NOP
NOP
WRITE_DRAM_3: ;把80H~ABH内的话音字及音量字写入声码器
CLR A
MOV R7,#cont_smq+1
MOV R0,#80H
MOV DPTR,#0180H
WRITE_DRAM_3_1:
MOV A,@R0
MOV B,A
LCALL WRITE_XRAM
INC R0
INC DPTR
INC DPTR
DJNZ R7,WRITE_DRAM_3_1
THIS_TIME_END_3:
MOV Temp,#02h ;延时1uS 3
DJNZ Temp,$
;04--乘员4
MOV A,#04h
CJNE A,RT_ADD,ISNOT_MY_4 ;比较是不是本身
MOV A,#00H
LJMP READ_XRAM_4
ISNOT_MY_4:
MOV R0,#0B3H
MOV A,@R0
JNZ ISNOT_MY_4_1
AJMP READ_XRAM_4
ISNOT_MY_4_1:
CJNE A,#81H,$+6 ;判断是否被该乘员呼叫
LJMP $+8
MOV A,VOL_NT
LJMP $+5
MOV A,#0BH
READ_XRAM_4: ;从总线地址内取出43话音字,放在80H~AAH内
MOV R0,#cont_vram ;解码置音量字
MOV @R0,A
CLR A
MOV R7,#cont_smq ;43 TONE_BYTE
MOV R0,#80H
MOV DPTR,#00C1H
READ_XRAM_4_1:
MOVX A,@DPTR
MOV @R0,A
NOP
INC R0
INC DPTR
DJNZ R7,READ_XRAM_4_1
NOP
NOP
NOP
NOP
NOP
NOP
WRITE_DRAM_4: ;把80H~ABH内的话音字及音量字写入声码器
CLR A
MOV R7,#cont_smq+1
MOV R0,#80H
MOV DPTR,#0200H
WRITE_DRAM_4_1:
MOV A,@R0
MOV B,A
LCALL WRITE_XRAM
INC R0
INC DPTR
INC DPTR
DJNZ R7,WRITE_DRAM_4_1
THIS_TIME_END_4:
MOV Temp,#02h ;延时1uS 3
DJNZ Temp,$
;05--超短波1
MOV R6,RT_ADD
CJNE R6,#01,$+11 ;3
JNB CY12_DT.0,READ_XRAM_5_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_5 ;3
CJNE R6,#02,$+11 ;3
JNB CY12_DT.4,READ_XRAM_5_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_5 ;3
CJNE R6,#03,$+11 ;3
JNB CY34_DT.0,READ_XRAM_5_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_5 ;3
CJNE R6,#04,$+11 ;3
JNB CY34_DT.4,READ_XRAM_5_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_5 ;3
READ_XRAM_5_0:
MOV A,VOL_C1
READ_XRAM_5: ;从总线地址内取出43话音字,放在80H~AAH内
MOV R0,#cont_vram ;解码置音量字
MOV @R0,A
MOV R7,#cont_smq ;43 TONE_BYTE
MOV R0,#80H
MOV DPTR,#00F1H
READ_XRAM_5_1:
MOVX A,@DPTR
MOV @R0,A
NOP
INC R0
INC DPTR
DJNZ R7,READ_XRAM_5_1
NOP
NOP
NOP
NOP
NOP
NOP
WRITE_DRAM_5: ;把80H~ABH内的话音字及音量字写入声码器
CLR A
MOV R7,#cont_smq+1
MOV R0,#80H
MOV DPTR,#0280H
WRITE_DRAM_5_1:
MOV A,@R0
MOV B,A
LCALL WRITE_XRAM
INC R0
INC DPTR
INC DPTR
DJNZ R7,WRITE_DRAM_5_1
THIS_TIME_END_5:
MOV Temp,#02H ;延时1uS 3
DJNZ Temp,$
;06--超短波2
MOV R6,RT_ADD
CJNE R6,#01,$+11 ;3
JNB CY12_DT.1,READ_XRAM_6_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_6 ;3
CJNE R6,#02,$+11 ;3
JNB CY12_DT.5,READ_XRAM_6_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_6 ;3
CJNE R6,#03,$+11 ;3
JNB CY34_DT.1,READ_XRAM_6_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_6 ;3
CJNE R6,#04,$+11 ;3
JNB CY34_DT.5,READ_XRAM_6_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_6 ;3
READ_XRAM_6_0:
MOV A,VOL_C2
READ_XRAM_6: ;从总线地址内取出43话音字,放在80H~AAH内
MOV R0,#cont_vram ;解码置音量字
MOV @R0,A
MOV R7,#cont_smq ;43 TONE_BYTE
MOV R0,#80H
MOV DPTR,#0121H
READ_XRAM_6_1:
MOVX A,@DPTR
MOV @R0,A
NOP
INC R0
INC DPTR
DJNZ R7,READ_XRAM_6_1
NOP
NOP
NOP
NOP
NOP
NOP
WRITE_DRAM_6: ;把80H~ABH内的话音字及音量字写入声码器
MOV R7,#cont_smq+1
MOV R0,#80H
MOV DPTR,#0300H
WRITE_DRAM_6_1:
MOV A,@R0
MOV B,A
LCALL WRITE_XRAM
INC R0
INC DPTR
INC DPTR
DJNZ R7,WRITE_DRAM_6_1
THIS_TIME_END_6:
MOV Temp,#02H ;延时1uS 3
DJNZ Temp,$
;07--短波1
MOV R6,RT_ADD
CJNE R6,#01,$+11 ;3
JNB CY12_DT.2,READ_XRAM_7_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_7 ;3
CJNE R6,#02,$+11 ;3
JNB CY12_DT.6,READ_XRAM_7_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_7 ;3
CJNE R6,#03,$+11 ;3
JNB CY34_DT.2,READ_XRAM_7_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_7 ;3
CJNE R6,#04,$+11 ;3
JNB CY34_DT.6,READ_XRAM_7_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_7 ;3
READ_XRAM_7_0:
MOV A,VOL_HF1
READ_XRAM_7: ;从总线地址内取出43话音字,放在80H~AAH内
MOV R0,#cont_vram ;解码置音量字
MOV @R0,A
MOV R7,#cont_smq ;43 TONE_BYTE
MOV R0,#80H
MOV DPTR,#0151H
READ_XRAM_7_1:
MOVX A,@DPTR
MOV @R0,A
NOP
INC R0
INC DPTR
DJNZ R7,READ_XRAM_7_1
NOP
NOP
NOP
NOP
NOP
NOP
WRITE_DRAM_7: ;把80H~ABH内的话音字及音量字写入声码器
MOV R7,#cont_smq+1
MOV R0,#80H
MOV DPTR,#0380H
WRITE_DRAM_7_1:
MOV A,@R0
MOV B,A
LCALL WRITE_XRAM
INC R0
INC DPTR
INC DPTR
DJNZ R7,WRITE_DRAM_7_1
THIS_TIME_END_7:
MOV Temp,#02H ;延时1uS 3
DJNZ Temp,$
;08--短波2
MOV R6,RT_ADD
CJNE R6,#01,$+11 ;3
JNB CY12_DT.3,READ_XRAM_8_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_8 ;3
CJNE R6,#02,$+11 ;3
JNB CY12_DT.7,READ_XRAM_8_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_8 ;3
CJNE R6,#03,$+11 ;3
JNB CY34_DT.3,READ_XRAM_8_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_8 ;3
CJNE R6,#04,$+11 ;3
JNB CY34_DT.7,READ_XRAM_8_0 ;3
MOV A,#00H ;2
LJMP READ_XRAM_8 ;3
READ_XRAM_8_0:
MOV A,VOL_HF2
READ_XRAM_8: ;从总线地址内取出43话音字,放在80H~AAH内
MOV R0,#cont_vram ;解码置音量字
MOV @R0,A
MOV R7,#cont_smq ;43 TONE_BYTE
MOV R0,#80H
MOV DPTR,#0181H
READ_XRAM_8_1:
MOVX A,@DPTR
MOV @R0,A
NOP
INC R0
INC DPTR
DJNZ R7,READ_XRAM_8_1
NOP
NOP
NOP
NOP
NOP
NOP
WRITE_DRAM_8: ;把80H~ABH内的话音字及音量字写入声码器
MOV R7,#cont_smq+1
MOV R0,#80H
MOV DPTR,#0400H
WRITE_DRAM_8_1:
MOV A,@R0
MOV B,A
LCALL WRITE_XRAM
INC R0
INC DPTR
INC DPTR
DJNZ R7,WRITE_DRAM_8_1
THIS_TIME_END_8:
MOV Temp,#02h ;延时1uS 3
DJNZ Temp,$
;09--罗1
JB LED2.1,ISNOT_MY_9
MOV A,#00H
AJMP READ_XRAM_9
ISNOT_MY_9:
MOV A,VOL_DH
READ_XRAM_9: ;从总线地址内取出43话音字,放在80H~AAH内
MOV R0,#cont_vram ;解码置音量字
MOV @R0,A
MOV R7,#cont_smq ;43 TONE_BYTE
MOV R0,#80H
MOV DPTR,#01B1H
READ_XRAM_9_1:
MOVX A,@DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ R7,READ_XRAM_9_1
NOP
NOP
NOP
NOP
NOP
NOP
WRITE_DRAM_9: ;把80H~ABH内的话音字及音量字写入声码器
MOV R7,#cont_smq+1
MOV R0,#80H
MOV DPTR,#0480H
WRITE_DRAM_9_1:
MOV A,@R0
MOV B,A
LCALL WRITE_XRAM
INC R0
INC DPTR
INC DPTR
DJNZ R7,WRITE_DRAM_9_1
THIS_TIME_END_9:
MOV Temp,#02h ;延时1uS 3
DJNZ Temp,$
;0A--罗2
JB LED2.4,ISNOT_MY_A
MOV A,#00H
AJMP READ_XRAM_A
ISNOT_MY_A:
MOV A,VOL_DH
READ_XRAM_A: ;从总线地址内取出43话音字,放在80H~AAH内
MOV R0,#cont_vram ;解码置音量字
MOV @R0,A
MOV R7,#cont_smq ;43 TONE_BYTE
MOV R0,#80H
MOV DPTR,#01E1H
READ_XRAM_A_1:
MOVX A,@DPTR
MOV @R0,A
NOP
INC R0
INC DPTR
DJNZ R7,READ_XRAM_A_1
NOP
NOP
NOP
NOP
NOP
NOP
WRITE_DRAM_A: ;把80H~ABH内的话音字及音量字写入声码器
MOV R7,#cont_smq+1
MOV R0,#80H
MOV DPTR,#0500H
WRITE_DRAM_A_1:
MOV A,@R0
MOV B,A
LCALL WRITE_XRAM
NOP
NOP
NOP
NOP
NOP
INC R0
INC DPTR
INC DPTR
DJNZ R7,WRITE_DRAM_A_1
THIS_TIME_END_A:
MOV Temp,#02H ;延时1uS 3
DJNZ Temp,$
;0B--导航
JB LED1.4,ISNOT_MY_B
MOV A,#00H
AJMP READ_XRAM_B
ISNOT_MY_B:
MOV A,VOL_DH
READ_XRAM_B: ;从总线地址内取出43话音字,放在80H~AAH内
MOV R0,#cont_vram ;解码置音量字
MOV @R0,A
MOV R7,#cont_smq ;43 TONE_BYTE
MOV R0,#80H
MOV DPTR,#0211H
READ_XRAM_B_1:
MOVX A,@DPTR
MOV @R0,A
NOP
INC R0
INC DPTR
DJNZ R7,READ_XRAM_B_1
NOP
NOP
NOP
NOP
NOP
NOP
WRITE_DRAM_B: ;把80H~ABH内的话音字及音量字写入声码器
MOV R7,#cont_smq+1
MOV R0,#80H
MOV DPTR,#0580H
WRITE_DRAM_B_1:
MOV A,@R0
MOV B,A
LCALL WRITE_XRAM
INC R0
INC DPTR
INC DPTR
DJNZ R7,WRITE_DRAM_B_1
THIS_TIME_END_B:
MOV Temp,#02h ;延时1uS 3
DJNZ Temp,$
;0C--RES1
;有一点注意:若按下任务要建立链接,但ACP在收到建链命令前仍然发00H命令字,所以要等20MS以确定ACP所发命令字的状态
;RES1:
; MOV A,#01h
; CJNE A,RT_ADD,ISNOT_MY_C1 ;比较是不是1号地址
; JB KEY_RES_ON,RES1_1
; JNB KEY_RES_OFF,RES1_3
; DJNZ RES_COUNT3,ISNOT_MY_C1
; MOV RES_COUNT3,#01H
; CLR KEY_RES_OFF
;RES1_3:
; MOV DPTR,#0240H
; MOVX A,@DPTR
; CJNE A,#0AAH,RES1_2
; CLR A
; MOVX @DPTR,A
;; DJNZ RES_COUNT1,ISNOT_MY_C1 ;灯灭时,等20MS,期间不收
;; MOV RES_COUNT1,#05H
;; MOV DPTR,#0240H ;等待后二次判断PTT信号
;; MOVX A,@DPTR
;; CJNE A,#0AAH,RES1_2
; MOV A,VOL_NT
; SETB LED1.1
; LJMP READ_XRAM_C1
;RES1_1:
; LJMP RES2
;RES1_2:
;; DJNZ RES_COUNT2,ISNOT_MY_C1 ;灯灭时,等20MS,期间不收
;; MOV RES_COUNT2,#05H
;; MOV DPTR,#0240H ;等待后二次判断PTT信号
;; MOVX A,@DPTR
;; CJNE A,#0AAH,ISNOT_MY_C1_0
;; LJMP ISNOT_MY_C1
;;ISNOT_MY_C1_0:
; CLR LED1.1
;ISNOT_MY_C1:
; MOV A,#00H
;READ_XRAM_C1: ;从总线地址内取出43话音字,放在80H~AAH内
; MOV R0,#cont_vram ;解码置音量字
; MOV @R0,A
; MOV R7,#cont_smq ;43 TONE_BYTE
; MOV R0,#80H
; MOV DPTR,#0241H
;READ_XRAM_C1_1:
; MOVX A,@DPTR
; MOV @R0,A
; NOP
; INC R0
; INC DPTR
; DJNZ R7,READ_XRAM_C1_1
; NOP
; NOP
; NOP
; NOP
; NOP
; NOP
;WRITE_DRAM_C1: ;把80H~ABH内的话音字及音量字写入声码器
; MOV R7,#cont_smq+1
; MOV R0,#80H
; MOV DPTR,#0600H
;WRITE_DRAM_C1_1:
; MOV A,@R0
; MOV B,A
; LCALL WRITE_XRAM
; INC R0
; INC DPTR
; INC DPTR
; DJNZ R7,WRITE_DRAM_C1_1
;THIS_TIME_END_C1:
; MOV Temp,#02h ;延时1uS 3
; DJNZ Temp,$
; LJMP TAKANG
;;RES2
;RES2:
; SETB LED1.1
; MOV A,VOL_NT
;READ_XRAM_C2: ;从总线地址内取出43话音字,放在80H~AAH内
; MOV R0,#cont_vram ;解码置音量字
; MOV @R0,A
; MOV R7,#cont_smq ;43 TONE_BYTE
; MOV R0,#80H
; MOV DPTR,#0241H
;READ_XRAM_C2_1:
; MOVX A,@DPTR
; MOV @R0,A
; NOP
; INC R0
; INC DPTR
; DJNZ R7,READ_XRAM_C2_1
; NOP
; NOP
; NOP
; NOP
; NOP
; NOP
;WRITE_DRAM_C2: ;把80H~ABH内的话音字及音量字写入声码器
; MOV R7,#cont_smq+1
; MOV R0,#80H
; MOV DPTR,#0600H
;WRITE_DRAM_C2_1:
; MOV A,@R0
; MOV B,A
; LCALL WRITE_XRAM
; INC R0
; INC DPTR
; INC DPTR
; DJNZ R7,WRITE_DRAM_C2_1
;THIS_TIME_END_C2:
; MOV Temp,#02h ;延时1uS 3
; DJNZ Temp,$
; LJMP TAKANG
;0D--DME+塔康
TAKANG:
JB LED1.1,ISNOT_MY_D
MOV A,#00H
AJMP READ_XRAM_D
ISNOT_MY_D:
MOV A,RT_ADD
CJNE A,#04H,$+8 ;3
MOV A,#00H ;2
LJMP READ_XRAM_D ;3
MOV A,VOL_DH
READ_XRAM_D: ;从总线地址内取出43话音字,放在80H~AAH内
MOV R0,#cont_vram ;解码置音量字
MOV @R0,A
MOV R7,#cont_smq ;43 TONE_BYTE
MOV R0,#80H
MOV DPTR,#0271H
READ_XRAM_D_1:
MOVX A,@DPTR
MOV @R0,A
NOP
INC R0
INC DPTR
DJNZ R7,READ_XRAM_D_1
NOP
NOP
NOP
NOP
NOP
NOP
WRITE_DRAM_D: ;把80H~ABH内的话音字及音量字写入声码器
MOV R7,#cont_smq+1
MOV R0,#80H
MOV DPTR,#0680H
WRITE_DRAM_D_1:
MOV A,@R0
MOV B,A
LCALL WRITE_XRAM
INC R0
INC DPTR
INC DPTR
DJNZ R7,WRITE_DRAM_D_1
THIS_TIME_END_D:
MOV Temp,#02h ;延时1uS 3
DJNZ Temp,$
;0E--临界攻角DH1+DH2
MOV DPTR,#02A0H
MOVX A,@DPTR
LING_DH1:
JNB ACC.0,LING_DH2 ;DH1
MOV A,RT_ADD
CJNE A,#01H,$+8 ;3
MOV A,#0BH ;2
LJMP READ_XRAM_E ;3
MOV A,RT_ADD
CJNE A,#03H,LING_DH3
MOV A,#0BH
LJMP READ_XRAM_E
LING_DH2:
JNB ACC.1,LING_DH3 ;DH2
MOV A,RT_ADD
CJNE A,#02H,$+8
MOV A,#0BH
LJMP READ_XRAM_E
LING_DH3:
MOV A,#00H
READ_XRAM_E: ;从总线地址内取出43话音字,放在80H~AAH内
MOV R0,#cont_vram ;解码置音量字
MOV @R0,A
MOV R7,#cont_smq ;43 TONE_BYTE
MOV R0,#80H
MOV DPTR,#02A1H
READ_XRAM_E_1:
MOVX A,@DPTR
MOV @R0,A
NOP
INC R0
INC DPTR
DJNZ R7,READ_XRAM_E_1
NOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -