📄 4pled-a3.lst
字号:
778
779 BS ATTTT,ALARM
780 MOV A,@0x1F
781 DT15:
782 MOV RXD_SA,A
783 MOV A,RXD_SA ;取接收数据
784 AND A,@0x1F ;去掉高三位
785 MOV TEMP1,A ;暂存数据
786 JBC STATUS,Z ;是否为零
787 CALL TEMP_SET ;是零,从新初始化数据
788 CLR DATA_C ;初始化显示图形低位数据指针
789 CLR DATA_D ;初始化显示图形高位数据指针
790 CLR ALARM_PX ;初始化报警及动点定时时间常数指针
791 BC MARK,ALA_EN ;关闭报警
792 BC MARK,FLASH
793 JBC TEMP1,4 ;S>16?
794 JMP DT_ADD_END ;S>16 关图形显示
795 CALL DATA_ADX
796 MOV A,TEMP2
797 MOV ALARM_PX,A
798
799 DATA_ADX:
800 ;15
801 INC TEMP2 ;AL=1
802 BS MARK,ALA_EN ;启动报警
803 MOV A,TEMP1
804 SUB A,@12 ;S>12?
805 JBS STATUS,C
806 JMP DT_ADD_END ;15>S>=13
807 ;12
808 INC TEMP2 ;AL=2
809 MOV A,TEMP1
810 SUB A,@10
811 JBS STATUS,C
812 JMP DT_ADD_END ;12>S>11
813 ;10
814 INC TEMP2 ;AL=3
815 MOV A,TEMP1
816 SUB A,@8
817 JBS STATUS,C
818 JMP DT_ADD_END ;10>S>9
819 ;08
820 INC TEMP2 ;AL=4
821 MOV A,TEMP1
822 SUB A,@6
823 JBS STATUS,C
824 JMP DT_ADD_END ;8>S>6
825 ;06
826 INC TEMP2 ;AL=5
827 MOV A,TEMP1
828 SUB A,@5
829 JBS STATUS,C
830 JMP DT_ADD_END ;6>S>5
831 ;05
832 INC TEMP2 ;AL=6
833 BS MARK,FLASH
834 MOV A,TEMP1
835 SUB A,@4
836 JBS STATUS,C
837 JMP DT_ADD_END ;5>S>4
838 ;04
839 INC TEMP2 ;AL=7
840 RET
841 ;---------------------------------------------------------------------
842 ;计算波段值
843 DT_ADD_END:
844 DISI
845 MOV A,ALARM_PX
846 JBC STATUS,Z
847 JMP TO_LEF_RIG
848 MOV DATA_C,A
849 MOV DATA_D,A
850 JBC RXD_SA,RIG
851 JMP TO_LEF
852 MOV A,DATA_D
853 SUB A,@2
854 MOV DATA_D,A
855 COM DATA_D
856 INC DATA_D
857 JBS STATUS,C
858 JMP TO_LEF
859 CLR DATA_D
860 TO_LEF:
861 JBC RXD_SA,LEF
862 JMP TO_LEF_RIG
863 MOV A,DATA_C
864 SUB A,@2
865 MOV DATA_C,A
866 COM DATA_C
867 INC DATA_C
868 JBS STATUS,C
869 JMP TO_LEF_RIG
870 CLR DATA_C
871 TO_LEF_RIG:
872 MOV A,DATA_C
873 CALL TAB_C
874 MOV DOUT_C,A
875 MOV A,DATA_D
876 CALL TAB_C
877 MOV DOUT_D,A
878 JBS MARK,FLASH
879 JMP TO_DATA_DA
880 JBC RXD_SA,LEF
881 BS DOUT_C,FLASH
882 JBC RXD_SA,RIG
883 BS DOUT_D,FLASH
884 ;---------------------------------------------------------------------
885 ;数据转换
886 TO_DATA_DA:
887 MOV A,RXD_SA
888 AND A,@0x1F
889 MOV TEMP1,A
890 CALL DATA_DA
891 MOV A,DATA_A
892 CALL TAB_A
893 MOV DOUT_A,A
894 MOV A,DATA_B
895 CALL TAB_A
896 MOV DOUT_B,A
897 BC MARK,RXDM
898 RETI */
899 ;*********************************************************************
900 ;二进制-十进制转换子程序
901 ;入口数据:A,TEMP1
902 ;出口数据:十位在DATA_B; 个位在DATA_A
903 ;影响资源:A; TEMP1; TEMP2; DATA_A; DATA_B
904 ;最大指令周期:T=
905 ;*********************************************************************
906 /*DATA_DA:
907 MOV A,TEMP1
908 SUB A,@18
909 JBC STATUS,C
910 JMP DATA_LOOP
911 MOV A,@10
912 MOV TEMP1,A
913 MOV A,@10
914 MOV TEMP2,A
915 JMP DA_END
916 DATA_LOOP:
917 MOV A,TEMP1
918 SUB A,@3
919 JBC STATUS,C
920 CLR TEMP1
921 CLR TEMP2
922 DA_LOOP1:
923 MOV A,@10
924 SUB A,TEMP1
925 JBS STATUS,C
926 JMP DA_END
927 MOV TEMP1,A
928 INC TEMP2
929 JMP DA_LOOP1
930 DA_END:
931 MOV A,TEMP1
932 MOV DATA_A,A
933 MOV A,TEMP2
934 MOV DATA_B,A
935 RET */
936
937 ;-------------------------------------------------------------------
938 ;TIME_PRO:
939 ; INC T100MST
940 ; BC MARK,T10MS
941 ; MOV A,T100MST
942 ; SUB A,@10
943 ; JBC STATUS,C
944 ; RET
945 ; CLR T100MST
946 ; BS MARK,PX_OUT
947 ; RET
948 ;-------------------------------------------------------------------
949 001C9 ALARM_PRO:
950 001C9 0562 INC ALARM_TIME
951 001CA 0EC6 JBS RB,SP
952 001CB 15D7 JMP ALARM_OFF
953 001CC 0422 MOV A,ALARM_TIME
954 001CD 1D01 SUB A,@1 ;2
955 001CE 0C03 JBC STATUS,C
956 001CF 0012 RET
957 001D0 0425 MOV A,ALARM_PX
958 001D1 1A07 AND A,@7
959 001D2 1B07 XOR A,@7
960 001D3 0E83 JBS STATUS,Z
961 001D4 08C6 BC RB,SP
962 001D5 00E2 CLR ALARM_TIME
963 001D6 0012 RET
964 001D7 ALARM_OFF:
965 001D7 0425 MOV A,ALARM_PX
966 001D8 1A07 AND A,@7
967 001D9 1028 CALL TAB_ARM_TIME
968 001DA 0122 SUB A,ALARM_TIME
969 001DB 0E03 JBS STATUS,C
970 001DC 0012 RET
971 001DD 0AC6 BS RB,SP
972 001DE 00E2 CLR ALARM_TIME
973 001DF 0012 RET
974
975 ;*************************************************************************
976 /*;-----------------------------------------------------------------
977 ;临时自动数据减量子程序
978 ;-----------------------------------------------------------------
979 TEMP_SET:
980 INC T1S_TIME
981 MOV A,T1S_TIME
982 SUB A,@1
983 JBC STATUS,C
984 RET
985 CLR T1S_TIME
986 MOV A,TEMP1
987 MOV DP_SA,A
988 MOV A,TEMP2
989 MOV DP_SB,A
990 MOV A,RXD_SA
991 AND A,@0x60
992 MOV TEMP2,A
993 MOV A,RXD_SA
994 AND A,@0x1F
995 MOV TEMP1,A ;是否为零
996 JBC STATUS,Z
997 JMP TEMP_SET1
998 DEC TEMP1
999 JMP TEMP_SET_RET ;不为零,距离减一返回
1000 TEMP_SET1:
1001 MOV A,@0x16 ;是零,从新初始化数据
1002 OR RXD_SA,A
1003 MOV TEMP1,A
1004 MOV A,RXD_SA
1005 AND A,@0x60 ;读取方向位 L=6 R=5
1006 MOV TEMP2,A
1007 XOR A,@0x60 ;L=R?
1008 JBS STATUS,Z
1009 JMP TEMP_SET_L ;不是,继续判定左
1010 BC TEMP2,RIG ;是,方向改为左,返回
1011 JMP TEMP_SET_RET
1012
1013 TEMP_SET_L:
1014 JBS TEMP2,LEF ;是左向?
1015 JMP TEMP_SET_R
1016 BC STATUS,C
1017 RRC TEMP2 ;是左向,改为右向,返回
1018 JMP TEMP_SET_RET
1019
1020 TEMP_SET_R:
1021 BS TEMP2,LEF ;是右向,改为双向
1022 BS TEMP2,RIG
1023
1024 TEMP_SET_RET:
1025 MOV A,TEMP1 ;从新组合接收数据
1026 OR A,TEMP2
1027 MOV RXD_SA,A ;存入接收寄存器
1028 MOV A,DP_SA
1029 MOV TEMP1,A
1030 RET */
1031 END
1032
0 Error(s), 0 Warning(s), 0 User Message(s)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -