📄 ex_rtc.lst
字号:
01F8 20B6 00838 CALL 0B6
01F9 300A 00839 MOVLW 0A
01FA 009E 00840 MOVWF 1E
01FB 20B6 00841 CALL 0B6
01FC 300A 00842 MOVLW 0A
01FD 009E 00843 MOVWF 1E
01FE 20B6 00844 CALL 0B6
01FF 2A78 00845 GOTO 278
0000 00846 .................... }
0000 00847 ....................
0000 00848 ....................
0000 00849 .................... void display_bcd( byte n ) {
0000 00850 .................... putc( (n/16)+'0' );
021B 081A 00851 MOVF 1A,W
021C 008C 00852 MOVWF 0C
021D 0E8C 00853 SWAPF 0C,F
021E 300F 00854 MOVLW 0F
021F 058C 00855 ANDWF 0C,F
0220 080C 00856 MOVF 0C,W
0221 008C 00857 MOVWF 0C
0222 3030 00858 MOVLW 30
0223 070C 00859 ADDWF 0C,W
0224 009B 00860 MOVWF 1B
0225 081B 00861 MOVF 1B,W
0226 009E 00862 MOVWF 1E
0227 20B6 00863 CALL 0B6
0000 00864 .................... putc( (n%16)+'0' );
0228 081A 00865 MOVF 1A,W
0229 390F 00866 ANDLW 0F
022A 008C 00867 MOVWF 0C
022B 3030 00868 MOVLW 30
022C 070C 00869 ADDWF 0C,W
022D 009B 00870 MOVWF 1B
022E 081B 00871 MOVF 1B,W
022F 009E 00872 MOVWF 1E
0230 20B6 00873 CALL 0B6
0231 3400 00874 RETLW 00
0000 00875 .................... }
0000 00876 ....................
0000 00877 .................... void display_3_bcd( char separator, byte a, byte b, byte c ) {
0000 00878 ....................
0000 00879 .................... display_bcd(a);
0232 0817 00880 MOVF 17,W
0233 009A 00881 MOVWF 1A
0234 221B 00882 CALL 21B
0000 00883 .................... putc(separator);
0235 0816 00884 MOVF 16,W
0236 009E 00885 MOVWF 1E
0237 20B6 00886 CALL 0B6
0000 00887 .................... display_bcd(b);
0238 0818 00888 MOVF 18,W
0239 009A 00889 MOVWF 1A
023A 221B 00890 CALL 21B
0000 00891 .................... putc(separator);
023B 0816 00892 MOVF 16,W
023C 009E 00893 MOVWF 1E
023D 20B6 00894 CALL 0B6
0000 00895 .................... display_bcd(c);
023E 0819 00896 MOVF 19,W
023F 009A 00897 MOVWF 1A
0240 221B 00898 CALL 21B
0241 3400 00899 RETLW 00
0000 00900 .................... }
0000 00901 ....................
0000 00902 ....................
0000 00903 .................... main() {
0000 00904 .................... char cmd;
0000 00905 .................... byte day,mth,year,dow,hour,min,sec;
0254 0184 00906 CLRF 04
0255 1683 00907 BSF 03,5
0256 1185 00908 BCF 05,3
0257 1283 00909 BCF 03,5
0258 1585 00910 BSF 05,3
0000 00911 ....................
0000 00912 .................... rtc_init();
0259 28AD 00913 GOTO 0AD
0000 00914 ....................
0000 00915 .................... printf("\r\nPress S to change, D to display: ");
0085 100A 00916 BCF 0A,0
0086 108A 00917 BCF 0A,1
0087 110A 00918 BCF 0A,2
0088 0782 00919 ADDWF 02,F
0089 340D 00920 RETLW 0D
008A 340A 00921 RETLW 0A
008B 3450 00922 RETLW 50
008C 3472 00923 RETLW 72
008D 3465 00924 RETLW 65
008E 3473 00925 RETLW 73
008F 3473 00926 RETLW 73
0090 3420 00927 RETLW 20
0091 3453 00928 RETLW 53
0092 3420 00929 RETLW 20
0093 3474 00930 RETLW 74
0094 346F 00931 RETLW 6F
0095 3420 00932 RETLW 20
0096 3463 00933 RETLW 63
0097 3468 00934 RETLW 68
0098 3461 00935 RETLW 61
0099 346E 00936 RETLW 6E
009A 3467 00937 RETLW 67
009B 3465 00938 RETLW 65
009C 342C 00939 RETLW 2C
009D 3420 00940 RETLW 20
009E 3444 00941 RETLW 44
009F 3420 00942 RETLW 20
00A0 3474 00943 RETLW 74
00A1 346F 00944 RETLW 6F
00A2 3420 00945 RETLW 20
00A3 3464 00946 RETLW 64
00A4 3469 00947 RETLW 69
00A5 3473 00948 RETLW 73
00A6 3470 00949 RETLW 70
00A7 346C 00950 RETLW 6C
00A8 3461 00951 RETLW 61
00A9 3479 00952 RETLW 79
00AA 343A 00953 RETLW 3A
00AB 3420 00954 RETLW 20
00AC 3400 00955 RETLW 00
025A 0196 00956 CLRF 16
025B 0816 00957 MOVF 16,W
025C 2085 00958 CALL 085
025D 0A96 00959 INCF 16,F
025E 009E 00960 MOVWF 1E
025F 20B6 00961 CALL 0B6
0260 3023 00962 MOVLW 23
0261 0216 00963 SUBWF 16,W
0262 1D03 00964 BTFSS 03,2
0263 2A5B 00965 GOTO 25B
0000 00966 ....................
0000 00967 .................... do {
0000 00968 .................... cmd=getc()%0xdf;
0264 20D4 00969 CALL 0D4
0265 080D 00970 MOVF 0D,W
0266 0097 00971 MOVWF 17
0267 30DF 00972 MOVLW DF
0268 0098 00973 MOVWF 18
0269 28F6 00974 GOTO 0F6
026A 080C 00975 MOVF 0C,W
026B 008E 00976 MOVWF 0E
0000 00977 .................... } while ((cmd!='D')&&(cmd!='S'));
026C 3044 00978 MOVLW 44
026D 020E 00979 SUBWF 0E,W
026E 1903 00980 BTFSC 03,2
026F 2A74 00981 GOTO 274
0270 3053 00982 MOVLW 53
0271 020E 00983 SUBWF 0E,W
0272 1D03 00984 BTFSS 03,2
0273 2A64 00985 GOTO 264
0000 00986 ....................
0000 00987 .................... if(cmd=='S')
0274 3053 00988 MOVLW 53
0275 020E 00989 SUBWF 0E,W
0276 1903 00990 BTFSC 03,2
0000 00991 .................... set_clock();
0277 2960 00992 GOTO 160
0000 00993 ....................
0000 00994 .................... printf("\r\n");
0278 300D 00995 MOVLW 0D
0279 009E 00996 MOVWF 1E
027A 20B6 00997 CALL 0B6
027B 300A 00998 MOVLW 0A
027C 009E 00999 MOVWF 1E
027D 20B6 01000 CALL 0B6
0000 01001 .................... while (TRUE) {
0000 01002 .................... rtc_get_date( day, mth, year, dow);
0000 01003 .................... display_3_bcd( '/', day, mth, year );
02AC 302F 01004 MOVLW 2F
02AD 0096 01005 MOVWF 16
02AE 080F 01006 MOVF 0F,W
02AF 0097 01007 MOVWF 17
02B0 0810 01008 MOVF 10,W
02B1 0098 01009 MOVWF 18
02B2 0811 01010 MOVF 11,W
02B3 0099 01011 MOVWF 19
02B4 2232 01012 CALL 232
0000 01013 .................... printf(" ");
02B5 3004 01014 MOVLW 04
02B6 0096 01015 MOVWF 16
02B7 3020 01016 MOVLW 20
02B8 009E 01017 MOVWF 1E
02B9 20B6 01018 CALL 0B6
02BA 0B96 01019 DECFSZ 16,F
02BB 2AB7 01020 GOTO 2B7
0000 01021 .................... rtc_get_time( hour, min, sec );
0000 01022 .................... display_3_bcd( ':', hour, min, sec );
02E2 303A 01023 MOVLW 3A
02E3 0096 01024 MOVWF 16
02E4 0813 01025 MOVF 13,W
02E5 0097 01026 MOVWF 17
02E6 0814 01027 MOVF 14,W
02E7 0098 01028 MOVWF 18
02E8 0815 01029 MOVF 15,W
02E9 0099 01030 MOVWF 19
02EA 2232 01031 CALL 232
0000 01032 .................... printf("\r");
02EB 300D 01033 MOVLW 0D
02EC 009E 01034 MOVWF 1E
02ED 20B6 01035 CALL 0B6
0000 01036 .................... delay_ms(250);
02EE 30FA 01037 MOVLW FA
02EF 0096 01038 MOVWF 16
02F0 2A42 01039 GOTO 242
0000 01040 .................... }
02F1 2A7E 01041 GOTO 27E
0000 01042 .................... }
02F2 0063 1043 SLEEP
SYMBOL TABLE
LABEL VALUE
_RETURN_ 0000000D
MAIN.CMD 0000000E
MAIN.DAY 0000000F
MAIN.MTH 00000010
MAIN.YEAR 00000011
MAIN.DOW 00000012
MAIN.HOUR 00000013
MAIN.MIN 00000014
MAIN.SEC 00000015
DELAY_MS.P1 00000016
RTC_GET_DATE.I 00000016
RTC_GET_TIME.I 00000016
SET_CLOCK.DAY 00000016
DISPLAY_3_BCD.SEPARATOR 00000016
SET_CLOCK.MTH 00000017
DISPLAY_3_BCD.A 00000017
SET_CLOCK.YEAR 00000018
DISPLAY_3_BCD.B 00000018
SET_CLOCK.DOW 00000019
DISPLAY_3_BCD.C 00000019
SET_CLOCK.HOUR 0000001A
DISPLAY_BCD.N 0000001A
READ_RTC_BYTE.NUMBER_OF_BITS 0000001B
SET_CLOCK.MIN 0000001B
READ_RTC_BYTE.I 0000001C
RTC_SET_DATETIME.DAY 0000001C
GET_BCD.FIRST 0000001C
READ_RTC_BYTE.DATA 0000001D
RTC_SET_DATETIME.MTH 0000001D
GET_BCD.SECOND 0000001D
RTC_SET_DATETIME.YEAR 0000001E
RTC_SET_DATETIME.DOW 0000001F
RTC_SET_DATETIME.HOUR 00000020
RTC_SET_DATETIME.MIN 00000021
WRITE_RTC_BYTE.DATA_BYTE 00000022
WRITE_RTC_BYTE.NUMBER_OF_BITS 00000023
WRITE_RTC_BYTE.I 00000024
DELAY_US.P1 0000FFEF
DELAY_MS 00000242
RTC_INIT 000000AD
WRITE_RTC_BYTE 00000140
READ_RTC_BYTE 00000200
GET_BCD 0000010B
SET_CLOCK 00000160
DISPLAY_BCD 0000021B
DISPLAY_3_BCD 00000232
MAIN 00000254
MEMORY USAGE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -