⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 用51单片机做的时钟
💻 LST
📖 第 1 页 / 共 4 页
字号:
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 + -