?? main.lst
字號:
0477 F536 736 MOV 36H, A
0479 E542 737 MOV A, SECOND ;以下產生秒鐘的低位
047B 540F 738 ANL A, #0FH
047D 93 739 MOVC A, @A+DPTR
047E F537 740 MOV 37H, A
0480 22 741 RET
742
743 ;****************************************************************
744 ;啟動時鐘更新
0481 745 UPDATA_ON:
0481 C28C 746 CLR TR0 ;以下十行程序用于開啟DS12887的時鐘更新
0483 C293 747 CLR CS
0485 C080 748 PUSH P0
0487 85A083 749 MOV DPH, P2
048A 75820B 750 MOV DPL, #0BH
048D 7402 751 MOV A, #02H
048F F0 752 MOVX @DPTR, A
0490 31A7 753 CALL GET_DATE
0492 D080 754 POP P0
0494 D293 755 SETB CS
0496 D28C 756 SETB TR0
0498 22 757 RET
758
759 ;****************************************************************
760 ;按鍵子程序
0499 761 KEYBO:
0499 20011A 762 JB KEY_DIR_1, D_RELAY
049C E590 763 MOV A, P1
049E F4 764 CPL A
049F 5407 765 ANL A, #07H
04A1 602F 766 JZ KEY_RET
04A3 91EA 767 CALL DLY10MS ;消抖動
04A5 E590 768 MOV A, P1
04A7 F4 769 CPL A
04A8 5407 770 ANL A, #07H
04AA 6026 771 JZ KEY_RET
04AC F53C 772 MOV KEY_VOL, A;存按鍵值
04AE D201 773 SETB KEY_DIR_1
04B0 753A00 774 MOV MS, #00H
04B3 753B00 775 MOV MS255, #00H
776
04B6 E590 777 D_RELAY:MOV A, P1 ;等待按鍵釋放
04B8 F4 778 CPL A
04B9 5407 779 ANL A, #07H
04BB 600F 780 JZ KEY_RELAY
04BD E53B 781 MOV A, MS255
04BF B40B10 782 CJNE A, #0BH, KEY_RET
A51 MACRO ASSEMBLER MAIN 11/22/2005 10:14:03 PAGE 13
04C2 D202 783 SETB OVER3S ;當按鍵按下超過三秒,設標志位
04C4 E53C 784 MOV A, KEY_VOL
04C6 4480 785 ORL A, #80H
04C8 F53C 786 MOV KEY_VOL, A
04CA 8006 787 SJMP KEY_RET
04CC 788 KEY_RELAY: ;當按鍵放開時,設KEY_DIR標志
04CC C201 789 CLR KEY_DIR_1
04CE C202 790 CLR OVER3S
04D0 D203 791 SETB KEY_DIR
04D2 22 792 KEY_RET:RET
793
794 ;***********************************************************
795 ;閃濼子程序
04D3 796 FLASH:
04D3 E53B 797 MOV A, MS255 ;以下六行程序用于閃濼
04D5 20E105 798 JB ACC.1, HIDE
04D8 753D00 799 MOV FLASH_BIT, #00H
04DB 8002 800 SJMP FLASH_RET
04DD 8F3D 801 HIDE: MOV FLASH_BIT, R7;R7存用戶的閃爍位設置
04DF 802 FLASH_RET:
04DF 22 803 RET
804
805 ;***********************************************************
806 ;延時子程序
04E0 7F17 807 D1MS: MOV R7, #23 ;delay time 1 ms
04E2 7E14 808 DL_1: MOV R6, #20
04E4 DEFE 809 DJNZ R6, $
04E6 DFFA 810 DJNZ R7, DL_1
04E8 00 811 NOP
04E9 22 812 RET
813
04EA 7D0A 814 DLY10MS:MOV R5, #10 ;delay time 10 ms
04EC 1204E0 815 DL_2: LCALL D1MS
04EF DDFB 816 DJNZ R5, DL_2
04F1 00 817 NOP
04F2 22 818 RET
819
04F3 820 DLY100MS:
04F3 7C0C 821 MOV R4, #0CH ;以下三行程序用于連續步進的延時處理
04F5 91EA 822 DL_3: CALL DLY10MS
04F7 DCFC 823 DJNZ R4, DL_3
04F9 22 824 RET
825 ;************************************************************
826
827 END
;*********************************************************
;BIT
;00H:256豪秒指針
;01H: KEY_DIR_1,是否按下按鍵
;OVER3S 02H;是否按住按鍵超過三秒
;KEY_DIR 03H 是否有按鍵輸出
;BYTE:
;30H-37H:8位的動態顯示緩存
;38H:動態顯示中,位選的標志,每隔一豪秒左移一次
;39H:動態顯示緩存指針
;MS: 3AH,256豪秒計數
;MS255:3BH,計時
;3CH,KEY_VOL,用于存按鍵值
A51 MACRO ASSEMBLER MAIN 11/22/2005 10:14:03 PAGE 14
;3DH,FLASH_BIT,用于指示閃爍的位
;40H,41H,42H:HOUR,MUNITE,SECOND,小時,分鐘,秒
;43H,44H,45H,46H:YEAR,MONTH,DAY,HOLIDAY,年,月,日,星期
;
;
;
;
;
A51 MACRO ASSEMBLER MAIN 11/22/2005 10:14:03 PAGE 15
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
CGE_RET. . . . . . C ADDR 0352H A
CGE_RET1 . . . . . C ADDR 01CCH A
CHANGE1. . . . . . C ADDR 01CFH A
CHANGE_DAY . . . . C ADDR 0285H A
CHANGE_DAY2. . . . C ADDR 0289H A
CHANGE_HOUR. . . . C ADDR 02B8H A
CHANGE_HOUR2 . . . C ADDR 02BCH A
CHANGE_HOUR_L. . . C ADDR 02B6H A
CHANGE_MONTH . . . C ADDR 0254H A
CHANGE_MONTH2. . . C ADDR 0258H A
CHANGE_MUNITE. . . C ADDR 02E9H A
CHANGE_MUNITE2 . . C ADDR 02EDH A
CHANGE_RET . . . . C ADDR 034EH A
CHANGE_RING. . . . C ADDR 034FH A
CHANGE_RING1 . . . C ADDR 0355H A
CHANGE_RING_RET. . C ADDR 0382H A
CHANGE_RI_HOUR . . C ADDR 034BH A
CHANGE_SECOND. . . C ADDR 031AH A
CHANGE_SECOND2 . . C ADDR 031EH A
CHANGE_TIME. . . . C ADDR 01C9H A
CHANGE_YEAR. . . . C ADDR 0223H A
CHANGE_YEAR2 . . . C ADDR 0227H A
CS . . . . . . . . B ADDR 0090H.3 A
D1MS . . . . . . . C ADDR 04E0H A
DATE_DISP. . . . . C ADDR 013AH A
DATE_DISP1 . . . . C ADDR 014AH A
DATE_DIS_NO. . . . C ADDR 0196H A
DATE_RET . . . . . C ADDR 01A6H A
DATE_RET2. . . . . C ADDR 019FH A
DATE_WAIT. . . . . C ADDR 01A1H A
DAY. . . . . . . . N NUMB 0045H A
DAY_KEY2 . . . . . C ADDR 02A7H A
DAY_KEY3 . . . . . C ADDR 02B0H A
DAY_NEXT . . . . . C ADDR 029BH A
DLY100MS . . . . . C ADDR 04F3H A
DLY10MS. . . . . . C ADDR 04EAH A
DLY_RLY. . . . . . C ADDR 0372H A
DL_1 . . . . . . . C ADDR 04E2H A
DL_2 . . . . . . . C ADDR 04ECH A
DL_3 . . . . . . . C ADDR 04F5H A
DPH. . . . . . . . D ADDR 0083H A
DPL. . . . . . . . D ADDR 0082H A
DS12887. . . . . . C ADDR 0059H A
D_RELAY. . . . . . C ADDR 04B6H A
EA . . . . . . . . B ADDR 00A8H.7 A
ET0. . . . . . . . B ADDR 00A8H.1 A
FLASH. . . . . . . C ADDR 04D3H A
FLASH_BIT. . . . . N NUMB 003DH A
FLASH_RET. . . . . C ADDR 04DFH A
GET_DATE . . . . . C ADDR 01A7H A
HIDE . . . . . . . C ADDR 04DDH A
HOLIDAY. . . . . . N NUMB 0046H A
HOUR . . . . . . . N NUMB 0040H A
HOUR_KEY2. . . . . C ADDR 02DAH A
HOUR_KEY3. . . . . C ADDR 02E3H A
HOUR_NEXT. . . . . C ADDR 02CEH A
INC_DAY. . . . . . C ADDR 03F5H A
INC_HOUR . . . . . C ADDR 0418H A
INC_MONTH. . . . . C ADDR 03D2H A
A51 MACRO ASSEMBLER MAIN 11/22/2005 10:14:03 PAGE 16
INC_MUNITE . . . . C ADDR 043BH A
INC_SECOND . . . . C ADDR 045EH A
INC_YEAR . . . . . C ADDR 03B7H A
ITP_T0 . . . . . . C ADDR 0089H A
KEYBO. . . . . . . C ADDR 0499H A
KEY_DIR. . . . . . N NUMB 0003H A
KEY_DIR_1. . . . . N NUMB 0001H A
KEY_RELAY. . . . . C ADDR 04CCH A
KEY_RET. . . . . . C ADDR 04D2H A
KEY_VOL. . . . . . N NUMB 003CH A
LOOP . . . . . . . C ADDR 007DH A
MAIN . . . . . . . C ADDR 0030H A
MONTH. . . . . . . N NUMB 0044H A
MONTH_KEY2 . . . . C ADDR 0276H A
MONTH_KEY3 . . . . C ADDR 027FH A
MONTH_NEXT . . . . C ADDR 026AH A
MS . . . . . . . . N NUMB 003AH A
MS255. . . . . . . N NUMB 003BH A
MUNITE . . . . . . N NUMB 0041H A
MUNITE_KEY2. . . . C ADDR 030BH A
MUNITE_KEY3. . . . C ADDR 0314H A
MUNITE_NEXT. . . . C ADDR 02FFH A
N_RESET. . . . . . C ADDR 009AH A
OVER3S . . . . . . N NUMB 0002H A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
SAVE_12887 . . . . C ADDR 0383H A
SECOND . . . . . . N NUMB 0042H A
SECOND_KEY2. . . . C ADDR 033CH A
SECOND_KEY3. . . . C ADDR 0345H A
SECOND_NEXT. . . . C ADDR 0330H A
SP . . . . . . . . D ADDR 0081H A
TH0. . . . . . . . D ADDR 008CH A
TIME_DISP. . . . . C ADDR 00C5H A
TIME_RET . . . . . C ADDR 012BH A
TIME_TAB . . . . . C ADDR 012CH A
TIP_T0_NEXT. . . . C ADDR 00BAH A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
UPDATA_ON. . . . . C ADDR 0481H A
YEAR . . . . . . . N NUMB 0043H A
YEAR_KEY2. . . . . C ADDR 0245H A
YEAR_KEY3. . . . . C ADDR 024EH A
YEAR_NEXT. . . . . C ADDR 0239H A
ZERO_DAY . . . . . C ADDR 0405H A
ZERO_HOUR. . . . . C ADDR 0428H A
ZERO_MONTH . . . . C ADDR 03E2H A
ZERO_MUNITE. . . . C ADDR 044BH A
ZERO_SECOND. . . . C ADDR 046EH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -