main.lst
来自「我用PROTEUS做了一个基于PIC16F877A的5路电压采集系统」· LST 代码 · 共 1,336 行 · 第 1/5 页
LST
1,336 行
776 0A1D 1003 bcf 3,0
777 0A1E 0DF0 rlf btemp
778 0A1F 0DF1 rlf btemp+1
779 0A20 0870 movf btemp,w
780 0A21 1283 bcf 3,5
781 0A22 00A4 movwf ?a_get_date+1
782 0A23 0871 movf btemp+1,w
783 0A24 00A5 movwf ?a_get_date+2
784 ;main.c: 343: date_temp1|=ADRESL;
785 0A25 1683 bsf 3,5
786 0A26 081E movf 30,w ;volatile
787 0A27 1283 bcf 3,5
788 0A28 04A4 iorwf ?a_get_date+1
789 ;main.c: 344: date_temp1=date_temp1*5;
790 0A29 3005 movlw 5
791 0A2A 00F2 movwf btemp+2
792 0A2B 01F3 clrf btemp+3
793 0A2C 0824 movf ?a_get_date+1,w
794 0A2D 00F0 movwf btemp
795 0A2E 0825 movf ?a_get_date+2,w
796 0A2F 00F1 movwf btemp+1
797 0A30 120A 118A 24CF fcall lwmul
798 0A33 0874 movf btemp+4,w
799 0A34 00A4 movwf ?a_get_date+1
800 0A35 0875 movf btemp+5,w
801 0A36 00A5 movwf ?a_get_date+2
802 ;main.c: 345: date_temp2=(float)date_temp1;
803 0A37 00F1 movwf btemp+1
804 0A38 0824 movf ?a_get_date+1,w
805 0A39 00F0 movwf btemp
806 0A3A 120A 118A 26FD fcall lwtoft
807 0A3D 0870 movf btemp,w
808 0A3E 1703 bsf 3,6
809 0A3F 0092 movwf _date_temp2^(0+256)
810 0A40 0871 movf btemp+1,w
811 0A41 0093 movwf (_date_temp2+1)^(0+256)
812 0A42 0872 movf btemp+2,w
813 0A43 0094 movwf (_date_temp2+2)^(0+256)
814 ;main.c: 346: date_temp2/=1024;
815 0A44 01F3 clrf btemp+3
816 0A45 3080 movlw 128
817 0A46 00F4 movwf btemp+4
818 0A47 3044 movlw 68
819 0A48 00F5 movwf btemp+5
820 0A49 3012 movlw _date_temp2^(0+256)
821 0A4A 0084 movwf 4
822 0A4B 1783 bsf 3,7
823 0A4C 120A 118A 263F fcall ftdiv_f
824 ;main.c: 347: date_temp1=(int)(date_temp2*100);
825 0A4F 1283 bcf 3,5
826 0A50 1703 bsf 3,6
827 0A51 0812 movf _date_temp2^(0+256),w
828 0A52 00F3 movwf btemp+3
829 0A53 0813 movf (_date_temp2+1)^(0+256),w
830 0A54 00F4 movwf btemp+4
831 0A55 0814 movf (_date_temp2+2)^(0+256),w
832 0A56 00F5 movwf btemp+5
833 0A57 01F0 clrf btemp
834 0A58 30C8 movlw 200
835 0A59 00F1 movwf btemp+1
836 0A5A 3042 movlw 66
837 0A5B 00F2 movwf btemp+2
838 0A5C 120A 118A 2680 fcall ftmul
839 0A5F 120A 118A 26C1 fcall fttol
840 0A62 0870 movf btemp,w
841 0A63 1303 bcf 3,6 ;carry unused
842 0A64 00A4 movwf ?a_get_date+1
843 0A65 0871 movf btemp+1,w
844 0A66 00A5 movwf ?a_get_date+2
845 ;main.c: 348: ad_key_init();
846 0A67 120A 118A 24A1 fcall _ad_key_init
+ 120A 158A
847 ;main.c: 349: return date_temp1;
848 0A6C 0825 movf ?a_get_date+2,w
849 0A6D 00F1 movwf btemp+1
850 0A6E 0824 movf ?a_get_date+1,w
851 0A6F 00F0 movwf btemp
852 ;main.c: 350: }
853 0A70 0008 return
854 ;main.c: 494: void alarm()
855 ;main.c: 495: {
856 0A71 _alarm
857 ; _channel_i assigned to ?a_alarm+0
858 0000 _alarm$channel_i set ?a_alarm
859 ;main.c: 496: unsigned char channel_i;
860 0A71 1683 bsf 3,5
861 0A72 1303 bcf 3,6 ;carry unused
862 0A73 082B movf _set^(0+128),w
863 0A74 3A03 xorlw 3
864 ;main.c: 499: {
865 0A75 1283 bcf 3,5
866 0A76 1903 btfsc 3,2
867 0A77 0008 return
868 0A78 01A0 clrf ?a_alarm
869 0A79 0AA0 incf ?a_alarm
870 0A7A l155
871 ;main.c: 501: {
872 ;main.c: 502: if(get_date(channel_i)>=high[chan
+ nel_i-1])
873 0A7A 0820 movf ?a_alarm,w
874 0A7B 0720 addwf ?a_alarm,w
875 0A7C 3EFE addlw -2
876 0A7D 3E1F addlw _high^(0+256)
877 0A7E 0084 movwf 4
878 0A7F 1783 bsf 3,7
879 0A80 0800 movf 0,w
880 0A81 00F0 movwf btemp
881 0A82 0A84 incf 4
882 0A83 0800 movf 0,w
883 0A84 00F1 movwf btemp+1
884 0A85 0870 movf btemp,w
885 0A86 00A1 movwf ?a_alarm+1
886 0A87 0871 movf btemp+1,w
887 0A88 00A2 movwf ?a_alarm+2
888 0A89 0820 movf ?a_alarm,w
889 0A8A 21F4 120A 158A fcall _get_date
890 0A8D 0822 movf ?a_alarm+2,w
891 0A8E 0271 subwf btemp+1,w
892 0A8F 1D03 btfss 3,2
893 0A90 2A93 goto u1245
894 0A91 0821 movf ?a_alarm+1,w
895 0A92 0270 subwf btemp,w
896 0A93 u1245
897 0A93 1C03 btfss 3,0
898 0A94 2AB0 goto l158
899 ;main.c: 503: {
900 0A95 30CE movlw -50
901 0A96 120A 118A 2568 fcall _LCD_WriteControl
902 ;main.c: 505: LCD_DisplayCharacter(channel_i+0x
+ 30);
903 0A99 0820 movf ?a_alarm,w
904 0A9A 3E30 addlw 48
905 0A9B 120A 118A 25E2 fcall _LCD_DisplayCharacter
906 ;main.c: 506: LCD_DisplayCharacter('H');
907 0A9E 3048 movlw 72
908 0A9F 120A 118A 25E2 fcall _LCD_DisplayCharacter
+ 120A 158A
909 ;main.c: 507: PORTB=0x01<<(channel_i-1);
910 0AA4 3001 movlw 1
911 0AA5 00F0 movwf btemp
912 0AA6 0320 decf ?a_alarm,w
913 0AA7 00F1 movwf btemp+1
914 0AA8 0AF1 incf btemp+1
915 0AA9 2AAC goto u1254
916 0AAA u1255
917 0AAA 1003 bcf 3,0
918 0AAB 0DF0 rlf btemp
919 0AAC u1254
920 0AAC 0BF1 decfsz btemp+1
921 0AAD 2AAA goto u1255
922 0AAE 0870 movf btemp,w
923 0AAF 0086 movwf 6 ;volatile
924 0AB0 l158
925 ;main.c: 508: }
926 0AB0 0820 movf ?a_alarm,w
927 0AB1 21F4 120A 158A fcall _get_date
928 0AB4 0820 movf ?a_alarm,w
929 0AB5 0720 addwf ?a_alarm,w
930 0AB6 3EFE addlw -2
931 0AB7 3E15 addlw _low^(0+256)
932 0AB8 0084 movwf 4
933 0AB9 1783 bsf 3,7
934 0ABA 0800 movf 0,w
935 0ABB 00F2 movwf btemp+2
936 0ABC 0A84 incf 4
937 0ABD 0800 movf 0,w
938 0ABE 00F3 movwf btemp+3
939 0ABF 0871 movf btemp+1,w
940 0AC0 0273 subwf btemp+3,w
941 0AC1 1D03 btfss 3,2
942 0AC2 2AC5 goto u1265
943 0AC3 0870 movf btemp,w
944 0AC4 0272 subwf btemp+2,w
945 0AC5 u1265
946 0AC5 1C03 btfss 3,0
947 0AC6 2AE2 goto l159
948 ;main.c: 510: {
949 0AC7 30CE movlw -50
950 0AC8 120A 118A 2568 fcall _LCD_WriteControl
951 ;main.c: 512: LCD_DisplayCharacter(channel_i+0x
+ 30);
952 0ACB 0820 movf ?a_alarm,w
953 0ACC 3E30 addlw 48
954 0ACD 120A 118A 25E2 fcall _LCD_DisplayCharacter
955 ;main.c: 513: LCD_DisplayCharacter('L');
956 0AD0 304C movlw 76
957 0AD1 120A 118A 25E2 fcall _LCD_DisplayCharacter
+ 120A 158A
958 ;main.c: 514: PORTB=0x01<<(channel_i-1);
959 0AD6 3001 movlw 1
960 0AD7 00F0 movwf btemp
961 0AD8 0320 decf ?a_alarm,w
962 0AD9 00F1 movwf btemp+1
963 0ADA 0AF1 incf btemp+1
964 0ADB 2ADE goto u1274
965 0ADC u1275
966 0ADC 1003 bcf 3,0
967 0ADD 0DF0 rlf btemp
968 0ADE u1274
969 0ADE 0BF1 decfsz btemp+1
970 0ADF 2ADC goto u1275
971 0AE0 0870 movf btemp,w
972 0AE1 0086 movwf 6 ;volatile
973 0AE2 l159
974 ;main.c: 515: }
975 0AE2 0AA0 incf ?a_alarm
976 0AE3 3006 movlw 6
977 0AE4 0220 subwf ?a_alarm,w
978 0AE5 1C03 btfss 3,0
979 0AE6 2A7A goto l155
980 ;main.c: 517: if(auto_count==1)
981 0AE7 1683 bsf 3,5
982 0AE8 0B23 decfsz _auto_count^(0+128),w
983 0AE9 2AF9 goto l153
984 ;main.c: 518: {
985 0AEA 30CE movlw -50
986 0AEB 120A 118A 2568 fcall _LCD_WriteControl
987 ;main.c: 520: LCD_DisplayCharacter(' ');
988 0AEE 3020 movlw 32
989 0AEF 120A 118A 25E2 fcall _LCD_DisplayCharacter
990 ;main.c: 521: LCD_DisplayCharacter(' ');
991 0AF2 3020 movlw 32
992 0AF3 120A 118A 25E2 fcall _LCD_DisplayCharacter
+ 120A 158A
993 ;main.c: 522: PORTB=0x00;
994 0AF8 0186 clrf 6 ;volatile
995 ;main.c: 523: }
996 ;main.c: 525: }
997 0AF9 l153
998 0AF9 1283 bcf 3,5
999 0AFA 0008 return
1000 ;main.c: 185: void time_seting()
1001 ;main.c: 186: {
1002 0AFB _time_seting
1003 ;main.c: 187: if(shift==1)
1004 0AFB 1683 bsf 3,5
1005 0AFC 1303 bcf 3,6 ;carry unused
1006 0AFD 0B2C decfsz _shift^(0+128),w
1007 0AFE 2B11 goto l27
1008 ;main.c: 188: {
1009 0AFF 0B22 decfsz _add^(0+128),w
1010 0B00 2B07 goto l28
1011 ;main.c: 190: {
1012 0B01 0AAA incf _second^(0+128)
1013 ;main.c: 192: if(second>59)second=0;
1014 0B02 303C movlw 60
1015 0B03 022A subwf _second^(0+128),w
1016 0B04 1803 btfsc 3,0
1017 0B05 01AA clrf _second^(0+128)
1018 ;main.c: 193: add=0;
1019 0B06 01A2 clrf _add^(0+128)
1020 0B07 l28
1021 ;main.c: 194: }
1022 0B07 0B29 decfsz _reduce^(0+128),w
1023 0B08 2B11 goto l27
1024 ;main.c: 196: {
1025 0B09 03AA decf _second^(0+128)
1026 ;main.c: 198: if(second>59) second=59;
1027 0B0A 303C movlw 60
1028 0B0B 022A subwf _second^(0+128),w
1029 0B0C 1C03 btfss 3,0
1030 0B0D 2B10 goto l31
1031 0B0E 303B movlw 59
1032 0B0F 00AA movwf _second^(0+128)
1033 0B10 l31
1034 ;main.c: 199: reduce=0;
1035 0B10 01A9 clrf _reduce^(0+128)
1036 ;main.c: 200: }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?