📄 dongli_24h.lst
字号:
02A9: MOVF 52,W
02AA: MOVWF 7D
02AB: CALL 05C
.................... break;
02AC: GOTO 2AD
.................... default:
.................... }
.................... }
....................
.................... if(is_set==1)
.................... {
02AD: DECFSZ 53,W
02AE: GOTO 2DE
.................... disable_interrupts(int_TIMER1);
02AF: BSF 03.5
02B0: BCF 0C.0
.................... BCD_time= HEX_TO_BCD(dura_time);
02B1: BCF 03.5
02B2: MOVF 52,W
02B3: MOVWF 7C
02B4: CALL 0C8
02B5: MOVF 78,W
02B6: MOVWF 76
.................... write7279(0x80,(BCD_time & 0x0F));
02B7: MOVF 76,W
02B8: ANDLW 0F
02B9: MOVWF 7C
02BA: MOVLW 80
02BB: BSF 03.5
02BC: MOVWF 28
02BD: MOVF 7C,W
02BE: MOVWF 29
02BF: BCF 03.5
02C0: CALL 1BD
.................... write7279(0x81,(BCD_time & 0xF0)>>4);
02C1: MOVF 76,W
02C2: ANDLW F0
02C3: MOVWF 77
02C4: SWAPF 77,W
02C5: MOVWF 7D
02C6: MOVLW 0F
02C7: ANDWF 7D,F
02C8: MOVLW 81
02C9: BSF 03.5
02CA: MOVWF 28
02CB: MOVF 7D,W
02CC: MOVWF 29
02CD: BCF 03.5
02CE: CALL 1BD
.................... write7279(0x82,0x0F);
02CF: MOVLW 82
02D0: BSF 03.5
02D1: MOVWF 28
02D2: MOVLW 0F
02D3: MOVWF 29
02D4: BCF 03.5
02D5: CALL 1BD
.................... write7279(0x83,0x8C);
02D6: MOVLW 83
02D7: BSF 03.5
02D8: MOVWF 28
02D9: MOVLW 8C
02DA: MOVWF 29
02DB: BCF 03.5
02DC: CALL 1BD
.................... //count_day_flag=0;
.................... }
.................... else
.................... {
02DD: GOTO 2E2
.................... dot_flag=0;
02DE: CLRF 51
.................... // disp_time();
.................... enable_interrupts(int_TIMER1);
02DF: BSF 03.5
02E0: BSF 0C.0
02E1: BCF 03.5
.................... }
....................
.................... }
....................
.................... enable_interrupts(int_RB);
02E2: BSF 0B.3
....................
.................... }
.................... //************************************************************************************************
02E3: BCF 0B.0
02E4: BCF 0A.3
02E5: BCF 0A.4
02E6: GOTO 029
.................... #int_TIMER1
.................... void TIMER1_isr()//显示时间
.................... {
.................... char hourl,hourh,minl,minh;
.................... minl=(realtime.min & 0x0F);
02E7: MOVF 2E,W
02E8: ANDLW 0F
02E9: BSF 03.5
02EA: MOVWF 25
.................... minh=(realtime.min & 0xF0)>>4;
02EB: BCF 03.5
02EC: MOVF 2E,W
02ED: ANDLW F0
02EE: MOVWF 77
02EF: SWAPF 77,W
02F0: BSF 03.5
02F1: MOVWF 26
02F2: MOVLW 0F
02F3: ANDWF 26,F
.................... write7279(0x80,minl);
02F4: MOVLW 80
02F5: MOVWF 28
02F6: MOVF 25,W
02F7: MOVWF 29
02F8: BCF 03.5
02F9: CALL 1BD
.................... write7279(0x81,minh);
02FA: MOVLW 81
02FB: BSF 03.5
02FC: MOVWF 28
02FD: MOVF 26,W
02FE: MOVWF 29
02FF: BCF 03.5
0300: CALL 1BD
.................... hourl=(realtime.hour & 0x0F);
0301: MOVF 2D,W
0302: ANDLW 0F
0303: BSF 03.5
0304: MOVWF 23
.................... hourh=(realtime.hour & 0xF0)>>4;
0305: BCF 03.5
0306: MOVF 2D,W
0307: ANDLW F0
0308: MOVWF 77
0309: SWAPF 77,W
030A: BSF 03.5
030B: MOVWF 24
030C: MOVLW 0F
030D: ANDWF 24,F
....................
.................... if(dot_flag==0x00)
.................... write7279(0x82,(hourl|0x80));
030E: BCF 03.5
030F: MOVF 51,F
0310: BTFSS 03.2
0311: GOTO 31D
0312: BSF 03.5
0313: MOVF 23,W
0314: IORLW 80
0315: MOVWF 27
0316: MOVLW 82
0317: MOVWF 28
0318: MOVF 27,W
0319: MOVWF 29
031A: BCF 03.5
031B: CALL 1BD
.................... else
.................... write7279(0x82,hourl);
031C: GOTO 324
031D: MOVLW 82
031E: BSF 03.5
031F: MOVWF 28
0320: MOVF 23,W
0321: MOVWF 29
0322: BCF 03.5
0323: CALL 1BD
....................
.................... //write7279(0x82,(hourl|0x80));
.................... dot_flag=dot_flag^0x01;
0324: MOVLW 01
0325: XORWF 51,F
.................... write7279(0x83,hourh);
0326: MOVLW 83
0327: BSF 03.5
0328: MOVWF 28
0329: MOVF 24,W
032A: MOVWF 29
032B: BCF 03.5
032C: CALL 1BD
.................... }
....................
032D: BCF 0C.0
032E: BCF 0A.3
032F: BCF 0A.4
0330: GOTO 029
.................... unsigned char BCD_TO_HEX(unsigned char x)
.................... {
.................... unsigned char t,y;
.................... t=(x/16)*10;
*
009E: SWAPF 6E,W
009F: MOVWF 77
00A0: MOVLW 0F
00A1: ANDWF 77,F
00A2: MOVF 77,W
00A3: MOVWF 72
00A4: MOVWF 73
00A5: MOVLW 0A
00A6: MOVWF 74
00A7: CALL 079
00A8: MOVF 78,W
00A9: MOVWF 6F
.................... y=t+(x&0x0F);
00AA: MOVF 6E,W
00AB: ANDLW 0F
00AC: ADDWF 6F,W
00AD: MOVWF 70
.................... return y;
00AE: MOVF 70,W
00AF: MOVWF 78
.................... }
00B0: RETLW 00
....................
.................... unsigned char HEX_TO_BCD(unsigned char x)
.................... {
.................... unsigned char t,y;
.................... t=(x/10)*16;
*
00C8: MOVF 7C,W
00C9: BSF 03.5
00CA: MOVWF 20
00CB: MOVLW 0A
00CC: MOVWF 21
00CD: BCF 03.5
00CE: CALL 0B1
00CF: SWAPF 78,W
00D0: MOVWF 7D
00D1: MOVLW F0
00D2: ANDWF 7D,F
.................... y=t+x%10;
00D3: MOVF 7C,W
00D4: BSF 03.5
00D5: MOVWF 20
00D6: MOVLW 0A
00D7: MOVWF 21
00D8: BCF 03.5
00D9: CALL 0B1
00DA: MOVF 77,W
00DB: ADDWF 7D,W
00DC: MOVWF 7E
.................... delay_us(1);
00DD: CLRWDT
.................... return y;
00DE: MOVF 7E,W
00DF: MOVWF 78
.................... }
00E0: RETLW 00
....................
.................... void first_run()
.................... {
.................... uchar is_first;
.................... is_first=EEPROM_read_parameter(first_flag);
*
053C: MOVLW 18
053D: MOVWF 5F
053E: CALL 354
053F: MOVF 78,W
0540: MOVWF 5E
.................... if(is_first!=0xAA)
.................... {
0541: MOVF 5E,W
0542: SUBLW AA
0543: BTFSC 03.2
0544: GOTO 589
.................... EEPROM_write_parameter(a_year,lmt_year);
0545: CLRF 28
0546: BTFSC 0B.7
0547: BSF 28.7
0548: BCF 0B.7
0549: MOVLW 10
054A: MOVWF 7C
054B: MOVLW 07
054C: MOVWF 7D
054D: CALL 05C
054E: BTFSC 28.7
054F: BSF 0B.7
0550: CLRF 28
0551: BTFSC 0B.7
0552: BSF 28.7
0553: BCF 0B.7
.................... EEPROM_write_parameter(a_month,lmt_month);
0554: MOVLW 11
0555: MOVWF 7C
0556: MOVLW 02
0557: MOVWF 7D
0558: CALL 05C
0559: BTFSC 28.7
055A: BSF 0B.7
055B: CLRF 28
055C: BTFSC 0B.7
055D: BSF 28.7
055E: BCF 0B.7
.................... EEPROM_write_parameter(a_date,lmt_date);
055F: MOVLW 12
0560: MOVWF 7C
0561: MOVLW 16
0562: MOVWF 7D
0563: CALL 05C
0564: BTFSC 28.7
0565: BSF 0B.7
0566: CLRF 28
0567: BTFSC 0B.7
0568: BSF 28.7
0569: BCF 0B.7
.................... EEPROM_write_parameter(first_flag,0xAA);
056A: MOVLW 18
056B: MOVWF 7C
056C: MOVLW AA
056D: MOVWF 7D
056E: CALL 05C
056F: BTFSC 28.7
0570: BSF 0B.7
0571: CLRF 28
0572: BTFSC 0B.7
0573: BSF 28.7
0574: BCF 0B.7
.................... EEPROM_write_parameter(pd_time,24);
0575: MOVLW 19
0576: MOVWF 7C
0577: MOVLW 18
0578: MOVWF 7D
0579: CALL 05C
057A: BTFSC 28.7
057B: BSF 0B.7
057C: CLRF 28
057D: BTFSC 0B.7
057E: BSF 28.7
057F: BCF 0B.7
.................... get_endate(lmt_year,lmt_month,lmt_date);
0580: MOVLW 07
0581: MOVWF 6B
0582: MOVLW 02
0583: MOVWF 6C
0584: MOVLW 16
0585: MOVWF 6D
0586: CALL 0E1
0587: BTFSC 28.7
0588: BSF 0B.7
.................... }
.................... }
.................... void get_endate(uchar year,uchar month,uchar date)
.................... {
.................... year=BCD_TO_HEX(year);
*
00E1: MOVF 6B,W
00E2: MOVWF 6E
00E3: CALL 09E
00E4: MOVF 78,W
00E5: MOVWF 6B
.................... month=BCD_TO_HEX(month);
00E6: MOVF 6C,W
00E7: MOVWF 6E
00E8: CALL 09E
00E9: MOVF 78,W
00EA: MOVWF 6C
.................... date=BCD_TO_HEX(date);
00EB: MOVF 6D,W
00EC: MOVWF 6E
00ED: CALL 09E
00EE: MOVF 78,W
00EF: MOVWF 6D
....................
.................... if(month==0x02 )
.................... {
00F0: MOVF 6C,W
00F1: SUBLW 02
00F2: BTFSS 03.2
00F3: GOTO 11E
.................... if( date>13)
.................... {
00F4: MOVF 6D,W
00F5: SUBLW 0D
00F6: BTFSC 03.0
00F7: GOTO 10C
.................... endtime.day=HEX_TO_BCD(date-13);
00F8: MOVLW 0D
00F9: SUBWF 6D,W
00FA: MOVWF 6E
00FB: MOVWF 7C
00FC: CALL 0C8
00FD: MOVF 78,W
00FE: MOVWF 31
.................... endtime.month=HEX_TO_BCD(month+1);
00FF: MOVLW 01
0100: ADDWF 6C,W
0101: MOVWF 6E
0102: MOVWF 7C
0103: CALL 0C8
0104: MOVF 78,W
0105: MOVWF 30
.................... endtime.year=HEX_TO_BCD(year);
0106: MOVF 6B,W
0107: MOVWF 7C
0108: CALL 0C8
0109: MOVF 78,W
010A: MOVWF 2F
.................... }
.................... else
.................... {
010B: GOTO 11D
.................... endtime.day=HEX_TO_BCD(date+15);
010C: MOVLW 0F
010D: ADDWF 6D,W
010E: MOVWF 6E
010F: MOVWF 7C
0110: CALL 0C8
0111: MOVF 78,W
01
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -