📄 modem.lst
字号:
832 00517 040D mov a,0x0d
833 00518 006D MOV FSK_SEND_ADD,A
834 00519 1843 MOV A,@0X43
835 0051A 004C mov 0x0c,a
836 0051B 040D mov a,0x0d
837 0051C 006E MOV FSK_BYTE_TOTAL,A
838
839 0051D 00EF CLR FSK_SEND_TOTAL
840 0051E 00F1 CLR FSK_BIT_CONT
841
842 0051F 0014 CONTR ;SET FOR 833US
843 00520 1902 OR A,@0B00000010 ;1:8 PRESCALE
844 00521 1AF2 AND A,@0B11110010 ;PAB 0,TCC
845 00522 0002 CONTW
846
847 00523 1849 MOV A,@73
848 00524 0041 MOV 0X01,A
849
850 00525 18FF MOV A,@0XFF
851 00526 004C MOV 0X0C,A
852 00527 001F IOR 0X0F ;SAVE IOCF_TEMP,IN 0XFF(CID PAGE0)
853 00528 004D MOV 0X0D,A
854
855 00529 1801 MOV A,@0B00000001 ;FSK,SEND ENABLE TCC,DISABLE ALL
856 0052A 000F IOW 0X0F
857
858 0052B 0AE0 bs sta_flag,in_send_fsk
859 0052C 09A0 bc sta_flag,in_i2c_rec
860 0052D 143E JMP main
861
862
863 0052E _rec_io_control:
864
865 0052E _rec_output:
866
867 0052E _rec_input_inquire:
868
869 0052E _on_off_control:
870
871 0052E _fsk_send_parameter:
872
873
874 0052E _rec_command_err:
875 0052E _not_use:
876 0052E 143E jmp main
877
878 0052F _rec_fail:
879 0052F 09A0 bc sta_flag,in_i2c_rec
880 00530 00EB clr i2c_flag
881 00531 0807 BC 0X07,DSR
882 00532 0017 IOR 0X07
883 00533 190C OR A,@0B00001100
884 00534 0017 IOR 0X07
885 ; clr i2c_temp
886 ; clr i2c_bit_cont
887 ; clr i2c_send_total
888 ; clr i2c_total
889 00535 143E JMP MAIN
890
891
892
893 ;sub:dail_sub's child prog
894 00536 DAIL_DTMF_HIGH:
895 00536 0020 TBL
896 00537 1C44 RETL @0X44 ;D
897 00538 1C5D RETL @0X5D ;1
898 00539 1C54 RETL @0X54 ;2
899 0053A 1C4C RETL @0X4C ;3
900 0053B 1C5D RETL @0X5D ;4
901 0053C 1C54 RETL @0X54 ;5
902 0053D 1C4C RETL @0X4C ;6
903 0053E 1C5D RETL @0X5D ;7
904 0053F 1C54 RETL @0X54 ;8
905 00540 1C4C RETL @0X4C ;9
906 00541 1C54 RETL @0X54 ;0
907 00542 1C5D RETL @0X5D ;*
908 00543 1C4C RETL @0X4C ;#
909 00544 1C44 RETL @0X44 ;A
910 00545 1C44 RETL @0X44 ;B
911 00546 1C44 RETL @0X44 ;C
912 ; RETL @0X44 ;D
913
914
915 ;sub:dail_sub's child prog
916 00547 DAIL_DTMF_LOW:
917 00547 0020 TBL
918 00548 1C77 RETL @0X77 ;D
919 00549 1CA0 RETL @0XA0 ;1
920 0054A 1CA0 RETL @0XA0 ;2
921 0054B 1CA0 RETL @0XA0 ;3
922 0054C 1C91 RETL @0X91 ;4
923 0054D 1C91 RETL @0X91 ;5
924 0054E 1C91 RETL @0X91 ;6
925 0054F 1C83 RETL @0X83 ;7
926 00550 1C83 RETL @0X83 ;8
927 00551 1C83 RETL @0X83 ;9
928 00552 1C77 RETL @0X77 ;0
929 00553 1C77 RETL @0X77 ;*
930 00554 1C77 RETL @0X77 ;#
931 00555 1CA0 RETL @0XA0 ;A
932 00556 1C91 RETL @0X91 ;B
933 00557 1C83 RETL @0X83 ;C
934 ; RETL @0X77 ;D
935
936
937 /*
938 ;sub:dail sub
939 DAIL_SUB:
940 MOV A,DAIL_TOTAL
941 JBC 0X03,2
942 JMP DAIL_SEND_DTMF
943
944 JBS C2_FLAG,C2_80MS_DONE2 ;SEND 80MS,DELAY 80MS;SEND NEXT BUTE
945 RET
946
947 DAIL_SEND_DTMF:
948 MOV A,DAIL_BUF_TOTAL
949 XOR A,DAIL_TOTAL
950 JBC 0X03,2 ;
951 JMP DAIL_BUF_END
952
953
954 MOV A,DAIL_BUF_ADD
955 ADD A,DAIL_TOTAL
956 MOV 0X0C,A
957
958 MOV A,0X0D
959 BC 0X03,7 ;IOCX PAGE 0
960 CALL DAIL_DTMF_HIGH ;high frequency ,high voltage
961 IOW 0X0E ;tone generator2 is 2DB higher than 1
962
963 MOV A,0X0D
964 CALL DAIL_DTMF_LOW
965 IOW 0X0D ;low frequency, low voltage
966 MOV A,@0B01100000
967 OR 0X03,A
968 INC DAIL_TOTAL
969
970 CLR C2_80MS_COUNTER
971 BC C2_FLAG,C2_80MS_START2
972 BC C2_FLAG,C2_80MS_DONE2
973 BS C2_FLAG,C2_80MS_START
974 RET
975
976 DAIL_BUF_END:
977 BS DAIL_FLAG,DAIL_OK
978 RET
979 */
980
981
982 ;SUB:I2C,REC 1BYTE
983 00558 I2C_REC_BYTE:
984 00558 00D4 CLR I2C_TEMP
985 00559 00D2 CLR I2C_BIT_CONT
986
987 0055A _WAIT_SCL_LOW:
988 0055A 0C87 JBC 0X07,CLOCK
989 0055B 155A JMP _WAIT_SCL_LOW
990
991 0055C 0000 NOP
992 0055D _WAIT_SCL_HIGH:
993 0055D 0E87 JBS 0X07,CLOCK
994 0055E 155D JMP _WAIT_SCL_HIGH
995
996 0055F 0803 BC 0X03,0
997 00560 0CC7 JBC 0X07,DATA
998 00561 0A03 BS 0X03,0
999
1000 00562 06D4 RLC I2C_TEMP
1001 00563 0552 INC I2C_BIT_CONT
1002
1003 00564 0412 MOV A,I2C_BIT_CONT ;IF 1ST BIT, REC STOP BIT
1004 00565 1B01 XOR A,@0X01
1005 00566 0E83 JBS 0X03,2
1006 00567 1570 JMP _JUDGE_8BIT
1007 00568 0C03 JBC 0X03,0
1008 00569 1570 JMP _JUDGE_8BIT
1009 0056A _END_BIT_LOOP:
1010 0056A 0C87 JBC 0X07,CLOCK
1011 0056B 1570 JMP _JUDGE_8BIT
1012 0056C 0EC7 JBS 0X07,DATA
1013 0056D 156A JMP _END_BIT_LOOP
1014 0056E 0B2B BS I2C_FLAG,END_BIT
1015 0056F 0012 RET
1016
1017 00570 _JUDGE_8BIT:
1018 00570 1D07 SUB A,@0X07
1019 00571 0C03 JBC 0X03,0
1020 00572 155A JMP _WAIT_SCL_LOW
1021 00573 00D2 CLR I2C_BIT_CONT
1022 00574 0012 RET
1023
1024
1025 ;SUB : SEND ACK
1026 00575 I2C_SEND_ACK:
1027 00575 0017 IOR 0X07
1028 00576 1AF7 AND A,@0B11110111
1029 00577 0007 IOW 0X07
1030
1031 00578 _WAIT_SCL_LOW1:
1032 00578 0C87 JBC 0X07,CLOCK
1033 00579 1578 JMP _WAIT_SCL_LOW1
1034 0057A 08C7 BC 0X07,DATA
1035
1036 0057B _WAIT_SCL_HIGH1:
1037 0057B 0E87 JBS 0X07,CLOCK
1038 0057C 157B JMP _WAIT_SCL_HIGH1
1039
1040 0057D _WAIT_SCL_LOW_A1:
1041 0057D 0C87 JBC 0X07,CLOCK
1042 0057E 157D JMP _WAIT_SCL_LOW_A1
1043 0057F 0017 IOR 0X07
1044 00580 1908 OR A,@0B00001000
1045 00581 0007 IOW 0X07
1046 00582 0012 RET
1047
1048
1049 ;SUB:SEND BYTE
1050 00583 I2C_SEND_BYTE:
1051 00583 _WAIT_SCL_LOW2:
1052 00583 0C87 JBC 0X07,CLOCK
1053 00584 1583 JMP _WAIT_SCL_LOW2
1054
1055 00585 06D4 RLC I2C_TEMP
1056 00586 0C03 JBC 0X03,0
1057 00587 0AC7 BS 0X07,DATA
1058 00588 0E03 JBS 0X03,0
1059 00589 0887 BC 0X07,CLOCK
1060
1061 0058A _WAIT_SCL_HIGH2:
1062 0058A 0E87 JBS 0X07,CLOCK
1063 0058B 158A JMP _WAIT_SCL_HIGH2
1064
1065 0058C 0552 INC I2C_BIT_CONT
1066 0058D 1D07 SUB A,@0X07
1067 0058E 0C03 JBC 0X03,0
1068 0058F 1583 JMP _WAIT_SCL_LOW2
1069 00590 00D2 CLR I2C_BIT_CONT
1070 00591 0012 RET
1071
1072
1073 ;SUB:REC ACK
1074 00592 I2C_REC_ACK:
1075 00592 _WAIT_SCL_LOW3:
1076 00592 0C87 JBC 0X07,CLOCK
1077 00593 1592 JMP _WAIT_SCL_LOW3
1078
1079 00594 0017 IOR 0X07
1080 00595 1908 OR A,@0B00001000
1081 00596 0007 IOW 0X07
1082
1083 00597 _WAIT_SCL_HIGH3:
1084 00597 0E87 JBS 0X07,CLOCK
1085 00598 1597 JMP _WAIT_SCL_HIGH3
1086
1087 00599 0CC7 JBC 0X07,DATA
1088 0059A 15A1 JMP _REC_NO_ACK
1089
1090 0059B _WAIT_SCL_LOW_A2:
1091 0059B 0C87 JBC 0X07,CLOCK
1092 0059C 159B JMP _WAIT_SCL_LOW_A2
1093
1094 0059D 0017 IOR 0X07
1095 0059E 1AF7 AND A,@0B11110111
1096 0059F 0017 IOR 0X07
1097 005A0 0012 RET
1098
1099 005A1 _REC_NO_ACK:
1100 005A1 0AEB BS I2C_FLAG,NO_ACK
1101 005A2 159B JMP _WAIT_SCL_LOW_A2
1102
1103
1104 END
1105
1106
1107
0 Error(s), 0 Warning(s), 0 User Message(s)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -