📄 asmpro.lst
字号:
02D6 C291 =1 794 CLR BC_PB
02D8 D290 =1 795 SETB BC_PC ;X4
=1 796
02DA 120371 =1 797 LCALL OUTPUT_VOL
02DD 7409 =1 798 MOV A, #09H ;该延时值需要调整!!!!!
02DF D5E0FD =1 799 DJNZ ACC, $
=1 800
02E2 208305 =1 801 JB BC_AD, ADR_L05 ;检测声道是否到位
02E5 8900 F =1 802 MOV AD_IN+3, R1
02E7 0202F0 =1 803 LJMP ADPRO4
02EA =1 804 ADR_L05:
02EA 09 =1 805 INC R1
02EB D8E7 =1 806 DJNZ R0, P_1KHZ
02ED 75000F F =1 807 MOV AD_IN+3,#0FH ;检不到时为最高格数
=1 808 ;*****************************
02F0 =1 809 ADPRO4:
02F0 7810 =1 810 MOV R0,#10H
02F2 7900 =1 811 MOV R1,#00H
=1 812
02F4 =1 813 P_25KHZ:
02F4 C292 =1 814 CLR BC_PA ;2.5KHZ
02F6 D291 =1 815 SETB BC_PB
02F8 D290 =1 816 SETB BC_PC ;X6
A51 MACRO ASSEMBLER ASMPRO DATE 21/06/03 PAGE 15
LOC OBJ LINE SOURCE
=1 817
02FA 120371 =1 818 LCALL OUTPUT_VOL
02FD 7409 =1 819 MOV A, #09H ;该延时值需要调整!!!!!
02FF D5E0FD =1 820 DJNZ ACC, $
=1 821
0302 208305 =1 822 JB BC_AD, ADR_L06 ;检测声道是否到位
0305 8900 F =1 823 MOV AD_IN+4, R1
0307 020310 =1 824 LJMP ADPRO5
030A =1 825 ADR_L06:
030A 09 =1 826 INC R1
030B D8E7 =1 827 DJNZ R0, P_25KHZ
030D 75000F F =1 828 MOV AD_IN+4,#0FH ;检不到时为最高格数
=1 829 ;*****************************
0310 =1 830 ADPRO5:
0310 7810 =1 831 MOV R0,#10H
0312 7900 =1 832 MOV R1,#00H
=1 833
0314 =1 834 P_83KHZ:
0314 D292 =1 835 SETB BC_PA ;8.3KHZ
0316 C291 =1 836 CLR BC_PB
0318 C290 =1 837 CLR BC_PC ;X1
=1 838
031A 120371 =1 839 LCALL OUTPUT_VOL
031D 7409 =1 840 MOV A, #09H ;该延时值需要调整!!!!!
031F D5E0FD =1 841 DJNZ ACC, $
=1 842
0322 208305 =1 843 JB BC_AD, ADR_L07 ;检测声道是否到位
0325 8900 F =1 844 MOV AD_IN+5, R1
0327 020330 =1 845 LJMP ADPRO6
032A =1 846 ADR_L07:
032A 09 =1 847 INC R1
032B D8E7 =1 848 DJNZ R0, P_83KHZ
032D 75000F F =1 849 MOV AD_IN+5,#0FH ;检不到时为最高格数
=1 850 ;*****************************
0330 =1 851 ADPRO6:
0330 7810 =1 852 MOV R0,#10H
0332 7900 =1 853 MOV R1,#00H
=1 854
0334 =1 855 P_10KHZ:
0334 C292 =1 856 CLR BC_PA ;10KHZ
0336 D291 =1 857 SETB BC_PB ;X2
0338 C290 =1 858 CLR BC_PC
=1 859
033A 120371 =1 860 LCALL OUTPUT_VOL
=1 861
033D 7409 =1 862 MOV A, #09H ;该延时值需要调整!!!!!
033F D5E0FD =1 863 DJNZ ACC, $
=1 864
0342 208305 =1 865 JB BC_AD, ADR_L08 ;检测声道是否到位
0345 8900 F =1 866 MOV AD_IN+6, R1
0347 020350 =1 867 LJMP ADPRO7
034A =1 868 ADR_L08:
034A 09 =1 869 INC R1
034B D8E7 =1 870 DJNZ R0, P_10KHZ
034D 75000F F =1 871 MOV AD_IN+6,#0FH ;检不到时为最高格数
=1 872 ;*****************************
0350 =1 873 ADPRO7:
=1 874
0350 7810 =1 875 MOV R0,#10H
A51 MACRO ASSEMBLER ASMPRO DATE 21/06/03 PAGE 16
LOC OBJ LINE SOURCE
0352 7900 =1 876 MOV R1,#00H
=1 877
0354 =1 878 P_12KHZ:
0354 C292 =1 879 CLR BC_PA ;12KHZ
0356 C291 =1 880 CLR BC_PB ;X2
0358 C290 =1 881 CLR BC_PC
=1 882
035A 120371 =1 883 LCALL OUTPUT_VOL
=1 884
035D 7409 =1 885 MOV A, #09H ;该延时值需要调整!!!!!
035F D5E0FD =1 886 DJNZ ACC, $
=1 887
0362 208305 =1 888 JB BC_AD, ADR_L09 ;检测声道是否到位
0365 8900 F =1 889 MOV AD_IN+7, R1
0367 020370 =1 890 LJMP ADPRO8
036A =1 891 ADR_L09:
036A 09 =1 892 INC R1
036B D8E7 =1 893 DJNZ R0, P_12KHZ
036D 75000F F =1 894 MOV AD_IN+7,#0FH ;检不到时为最高格数
0370 =1 895 ADPRO8:
=1 896 ;*****************************
0370 22 =1 897 RET
=1 898 ;*************************
0371 =1 899 OUTPUT_VOL:
0371 E9 =1 900 MOV A, R1
0372 A2E0 =1 901 MOV C, ACC.0
0374 9284 =1 902 MOV BC_AD0, C
0376 A2E1 =1 903 MOV C, ACC.1
0378 9285 =1 904 MOV BC_AD1, C
037A A2E2 =1 905 MOV C, ACC.2
037C 9286 =1 906 MOV BC_AD2, C
037E A2E3 =1 907 MOV C, ACC.3
0380 9287 =1 908 MOV BC_AD3, C
0382 22 =1 909 RET
910
911 ;; $INCLUDE (MVOLDET.ASM)
912 ;; $INCLUDE (VOLDET.ASM)
913 $INCLUDE (M62421.ASM)
=1 914 ;***************************** M62421 器件子程序集 *************************
=1 915 ;2通道电子音量音调控制IC
=1 916 ;占用: ACC, R0
=1 917
=1 918
=1 919 ;************* 外部变量说明 **********************
00B1 =1 920 BC_SDA_62421 BIT P3.1 ;*** 数据输入脚
00B0 =1 921 BC_CLK_62421 BIT P3.0 ;*** 时钟脚
=1 922
=1 923
=1 924
=1 925 ;************ 公共变量定义 ****************
=1 926 PUBLIC SEND_62421
=1 927
=1 928
=1 929
=1 930 ;************** 常数定义 ******************
=1 931
=1 932
=1 933
=1 934
A51 MACRO ASSEMBLER ASMPRO DATE 21/06/03 PAGE 17
LOC OBJ LINE SOURCE
=1 935
=1 936 ;=============================== 公共子程序 (可被C调用) ===============================
=1 937 ;*************** 写M62421 *******************
=1 938 ;********************************************
=1 939 ;写入数据为13位
=1 940 ;参数1: PAR 高8位数据
=1 941 ;参数2: PAR+01H 低8位数据
=1 942 ;返回:
=1 943 ;占用: ACC, R0
=1 944
0383 =1 945 SEND_62421:
0383 780D =1 946 MOV R0,#00DH ;send_data to M62421,13bit
0385 C2B0 =1 947 CLR BC_CLK_62421 ;CLK
0387 C3 =1 948 CLR C
0388 =1 949 LBL_PS58:
0388 E500 F =1 950 MOV A,PAR
038A 13 =1 951 RRC A
038B F500 F =1 952 MOV PAR,A
038D E500 F =1 953 MOV A,PAR+01H
038F 13 =1 954 RRC A
0390 F500 F =1 955 MOV PAR+01H,A
0392 92B1 =1 956 MOV BC_SDA_62421,C ;SDA
0394 00 =1 957 NOP
0395 00 =1 958 NOP
0396 00 =1 959 NOP
0397 D2B0 =1 960 SETB BC_CLK_62421 ;Data is read by CLK rise edge
0399 B80105 =1 961 CJNE R0,#001H,LBL_P59 ;Latch sinal is read by CLK fall edge
039C 00 =1 962 NOP
039D D2B1 =1 963 SETB BC_SDA_62421
039F 8005 =1 964 SJMP LBL_P60
03A1 =1 965 LBL_P59:
03A1 00 =1 966 NOP
03A2 C2B1 =1 967 CLR BC_SDA_62421
03A4 00 =1 968 NOP
03A5 00 =1 969 NOP
03A6 =1 970 LBL_P60:
03A6 00 =1 971 NOP
03A7 00 =1 972 NOP
03A8 C2B0 =1 973 CLR BC_CLK_62421
03AA D8DC =1 974 DJNZ R0,LBL_PS58
03AC 22 =1 975 RET
976
977 $INCLUDE (24C01.ASM)
=1 978 ;*************************** 24c01器件子程序 **************************
=1 979 ;I2C总线EEPROM
=1 980 ;使用了: ACC,R0,R1,R2,R3
=1 981
=1 982 ;************ 公共变量定义 ****************
=1 983 PUBLIC READ_ABYTE, WRITE_ABYTE
=1 984
=1 985
=1 986
=1 987 ;************ 变量说明 *****************
00A7 =1 988 BC_SDA_24C01 BIT P2.7 ;24c01数据线
00A6 =1 989 BC_CLK_24C01 BIT P2.6 ;24c01时钟
=1 990
=1 991 EXTRN BIT(B_ACK_24C01) ;24C01的应答位值寄存
=1 992 EXTRN DATA(ERR_24C01) ;24C01的错误码寄存,!!!!!! 开机时清0 !!!
=1 993
A51 MACRO ASSEMBLER ASMPRO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -