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

📄 wl010.lst

📁 单片机开发资料 基于51单片机的单片机开发板 包括《实验例程
💻 LST
📖 第 1 页 / 共 2 页
字号:
00FD 32              246             RETI    
                     247     
                     248     ;===============================================================================
                     249             USING   0
00FE                 250     TIMER1:
                     251     ; 定时器1中断服务程序, 产生时基信号10ms
                     252     ; 
                     253     ;
00FE C0D0            254             PUSH    PSW
0100 C0E0            255             PUSH    ACC
0102 C0F0            256             PUSH    B
A51 MACRO ASSEMBLER  WL010                                                                12/02/2005 21:33:07 PAGE     5

0104 C083            257             PUSH    DPH
0106 C082            258             PUSH    DPL
                     259             
0108 758DDC          260             MOV     TH1,#0DCH
                     261             
010B 0500     F      262             INC     SEC100
                     263             
010D E500     F      264             MOV     A,SEC100
010F C3              265             CLR     C
0110 9464            266             SUBB    A,#100                  ; 是否中断100次(达到1s)
0112 4006            267             JC      END_TIMER1              ; < 1S
                     268             
0114 750000   F      269             MOV     SEC100,#00H             ; 达到1s 
0117 120000   F      270             LCALL   INC_SEC                 ; 秒加1 
                     271             
011A                 272     END_TIMER1:
011A D082            273             POP     DPL
011C D083            274             POP     DPH
011E D0F0            275             POP     B
0120 D0E0            276             POP     ACC
0122 D0D0            277             POP     PSW
                     278             
0124 32              279             RETI                            ; 
                     280     
                     281     ;===============================================================================
0125                 282     INC_SEC:
0125 0500     F      283             INC     SEC
                     284             
0127 E500     F      285             MOV     A,SEC
0129 D3              286             SETB    C
012A 943B            287             SUBB    A,#59                   ; 
012C 4006            288             JC      UPDATE_SEC
                     289             
012E E4              290             CLR     A
012F F500     F      291             MOV     SEC,A
0131 120000   F      292             LCALL   INC_MIN
                     293             
0134                 294     UPDATE_SEC:
0134 E500     F      295             MOV     A,SEC
0136 75F00A          296             MOV     B,#10
0139 84              297             DIV     AB                      ; A = SEC / 10
013A 900000   F      298             MOV     DPTR,#DIS_CODE
013D 93              299             MOVC    A,@A+DPTR               ; 
013E F500     F      300             MOV     BUF_SEC_H,A             ; 
                     301             
0140 E500     F      302             MOV     A,SEC
0142 75F00A          303             MOV     B,#10
0145 84              304             DIV     AB
0146 E5F0            305             MOV     A,B                     ; A = SEC % 10
0148 93              306             MOVC    A,@A+DPTR
0149 F500     F      307             MOV     BUF_SEC_L,A
014B 22              308             RET     
                     309     
                     310     ;===============================================================================
                     311     
014C                 312     INC_MIN:
014C 0500     F      313             INC     MIN                     ; 分钟加1
                     314             
014E E500     F      315             MOV     A,MIN                   ; 
0150 D3              316             SETB    C
0151 943B            317             SUBB    A,#59   
0153 4006            318             JC      UPDATE_MIN              ; 如果分钟等于60,则分清0,小时加1
                     319             
0155 E4              320             CLR     A                       ; 
0156 F500     F      321             MOV     MIN,A
0158 120000   F      322             LCALL   INC_HOUR                ; 小时加1
A51 MACRO ASSEMBLER  WL010                                                                12/02/2005 21:33:07 PAGE     6

                     323             
015B                 324     UPDATE_MIN:                             ; 更新分显示缓冲区
015B E500     F      325             MOV     A,MIN
015D 75F00A          326             MOV     B,#10
0160 84              327             DIV     AB                      ; A = MIN / 10  
0161 900000   F      328             MOV     DPTR,#DIS_CODE
0164 93              329             MOVC    A,@A+DPTR
0165 F500     F      330             MOV     BUF_MIN_H,A             ; 更新分十位
                     331             
0167 E500     F      332             MOV     A,MIN
0169 75F00A          333             MOV     B,#10
016C 84              334             DIV     AB
016D E5F0            335             MOV     A,B                     ; A = MIN % 10
016F 93              336             MOVC    A,@A+DPTR
0170 F500     F      337             MOV     BUF_MIN_L,A             ; 更新分个位
                     338             
0172 22              339             RET     
                     340     
                     341     ;===============================================================================
                     342     
0173                 343     INC_HOUR:
0173 0500     F      344             INC     HOUR                    ; 小时加1 
0175 E500     F      345             MOV     A,HOUR
0177 D3              346             SETB    C
0178 9418            347             SUBB    A,#24
017A 4003            348             JC      UPDATE_HOUR             ; 如果小时等于24,则小时清0
                     349             
017C E4              350             CLR     A
017D F500     F      351             MOV     HOUR,A                  ; 小时清0 
                     352             
017F                 353     UPDATE_HOUR:
017F E500     F      354             MOV     A,HOUR
0181 D3              355             SETB    C
0182 940A            356             SUBB    A,#10
0184 400E            357             JC      UPDATE_HOUR1            ; 如果小时小于10,则十位0不显示
                     358             
0186 E500     F      359             MOV     A,HOUR
0188 75F00A          360             MOV     B,#10
018B 84              361             DIV     AB
018C 900000   F      362             MOV     DPTR,#DIS_CODE
018F 93              363             MOVC    A,@A+DPTR               ; 
0190 F500     F      364             MOV     BUF_HOUR_H,A
0192 8003            365             SJMP    UPDATE_HOUR2
                     366             
0194                 367     UPDATE_HOUR1:
0194 7500FF   F      368             MOV     BUF_HOUR_H,#0FFH
                     369             
0197                 370     UPDATE_HOUR2:
0197 E500     F      371             MOV     A,HOUR
0199 75F00A          372             MOV     B,#10
019C 84              373             DIV     AB
019D E5F0            374             MOV     A,B
019F 900000   F      375             MOV     DPTR,#DIS_CODE
01A2 93              376             MOVC    A,@A+DPTR
01A3 F500     F      377             MOV     BUF_HOUR_L,A
01A5 22              378             RET     
                     379     
                     380     ;===============================================================================
                     381     
01A6                 382     DELAYMS:
                     383     ; 延时子程序
                     384     ; 传入参数:R7 --- 延时值(MS) 
                     385     ; 返回值:无
                     386     
01A6 EF              387             MOV     A,R7
01A7 6009            388             JZ      END_DLYMS       
A51 MACRO ASSEMBLER  WL010                                                                12/02/2005 21:33:07 PAGE     7

01A9                 389     DLY_LP1:
01A9 7EB9            390             MOV     R6,#185
01AB                 391     DLY_LP2:
01AB 00              392             NOP
01AC 00              393             NOP
01AD 00              394             NOP
01AE DEFB            395             DJNZ    R6,DLY_LP2
01B0 DFF7            396             DJNZ    R7,DLY_LP1
                     397     
01B2                 398     END_DLYMS:
01B2 22              399             RET 
                     400             
                     401     ; END OF DELAYMS        
                     402     
                     403     ;===============================================================================
                     404     
01B3                 405     DIS_CODE:
01B3 C0              406             DB      0C0H
01B4 F9              407             DB      0F9H
01B5 A4              408             DB      0A4H
01B6 B0              409             DB      0B0H
01B7 99              410             DB      099H
01B8 92              411             DB      092H
01B9 82              412             DB      082H
01BA F8              413             DB      0F8H
01BB 80              414             DB      080H
01BC 90              415             DB      090H
01BD FF              416             DB      0FFH
                     417     
                     418             END
A51 MACRO ASSEMBLER  WL010                                                                12/02/2005 21:33:07 PAGE     8

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ACC. . . . . . . .  D ADDR   00E0H   A   
AN1. . . . . . . .  B ADDR   00B0H.2 A   
AN2. . . . . . . .  B ADDR   00B0H.4 A   
AN2_UPDATE_MIN . .  C ADDR   00B9H   R   SEG=CODE_SEG
AR0. . . . . . . .  D ADDR   0000H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
BUF_HOUR_H . . . .  D ADDR   0008H   R   SEG=DATA_SEG
BUF_HOUR_L . . . .  D ADDR   0009H   R   SEG=DATA_SEG
BUF_MIN_H. . . . .  D ADDR   000BH   R   SEG=DATA_SEG
BUF_MIN_L. . . . .  D ADDR   000CH   R   SEG=DATA_SEG
BUF_SEC_H. . . . .  D ADDR   000EH   R   SEG=DATA_SEG
BUF_SEC_L. . . . .  D ADDR   000FH   R   SEG=DATA_SEG
CODE_SEG . . . . .  C SEG    01BEH       REL=UNIT
DATA_SEG . . . . .  D SEG    0010H       REL=UNIT
DELAYMS. . . . . .  C ADDR   01A6H   R   SEG=CODE_SEG
DIS_BUF. . . . . .  D ADDR   0008H   R   SEG=DATA_SEG
DIS_CODE . . . . .  C ADDR   01B3H   R   SEG=CODE_SEG
DIS_DIGIT. . . . .  D ADDR   0002H   R   SEG=DATA_SEG
DIS_INDEX. . . . .  D ADDR   0004H   R   SEG=DATA_SEG
DLY_LP1. . . . . .  C ADDR   01A9H   R   SEG=CODE_SEG
DLY_LP2. . . . . .  C ADDR   01ABH   R   SEG=CODE_SEG
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
END_DLYMS. . . . .  C ADDR   01B2H   R   SEG=CODE_SEG
END_PROC_KEY . . .  C ADDR   00D0H   R   SEG=CODE_SEG
END_TIMER1 . . . .  C ADDR   011AH   R   SEG=CODE_SEG
HOUR . . . . . . .  D ADDR   0005H   R   SEG=DATA_SEG
IE . . . . . . . .  D ADDR   00A8H   A   
INC_HOUR . . . . .  C ADDR   0173H   R   SEG=CODE_SEG
INC_MIN. . . . . .  C ADDR   014CH   R   SEG=CODE_SEG
INC_SEC. . . . . .  C ADDR   0125H   R   SEG=CODE_SEG
KEY_S. . . . . . .  D ADDR   0000H   R   SEG=DATA_SEG
KEY_V. . . . . . .  D ADDR   0001H   R   SEG=DATA_SEG
MAIN . . . . . . .  C ADDR   0000H   R   SEG=CODE_SEG
MAIN_LP. . . . . .  C ADDR   0077H   R   SEG=CODE_SEG
MIN. . . . . . . .  D ADDR   0006H   R   SEG=DATA_SEG
P0 . . . . . . . .  D ADDR   0080H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
PROC_AN1 . . . . .  C ADDR   00A8H   R   SEG=CODE_SEG
PROC_AN2 . . . . .  C ADDR   00ADH   R   SEG=CODE_SEG
PROC_KEY . . . . .  C ADDR   009CH   R   SEG=CODE_SEG
PSW. . . . . . . .  D ADDR   00D0H   A   
SCAN_KEY . . . . .  C ADDR   008EH   R   SEG=CODE_SEG
SEC. . . . . . . .  D ADDR   0003H   R   SEG=DATA_SEG
SEC100 . . . . . .  D ADDR   0007H   R   SEG=DATA_SEG
SP . . . . . . . .  D ADDR   0081H   A   
STACK. . . . . . .  I ADDR   0000H   R   SEG=STACK_SEG
STACK_SEG. . . . .  I SEG    0014H       REL=UNIT
TH0. . . . . . . .  D ADDR   008CH   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TIMER0 . . . . . .  C ADDR   00D3H   R   SEG=CODE_SEG
TIMER1 . . . . . .  C ADDR   00FEH   R   SEG=CODE_SEG
TL0. . . . . . . .  D ADDR   008AH   A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   
TR1. . . . . . . .  B ADDR   0088H.6 A   
UPDATE_HOUR. . . .  C ADDR   017FH   R   SEG=CODE_SEG
A51 MACRO ASSEMBLER  WL010                                                                12/02/2005 21:33:07 PAGE     9

UPDATE_HOUR1 . . .  C ADDR   0194H   R   SEG=CODE_SEG
UPDATE_HOUR2 . . .  C ADDR   0197H   R   SEG=CODE_SEG
UPDATE_MIN . . . .  C ADDR   015BH   R   SEG=CODE_SEG
UPDATE_SEC . . . .  C ADDR   0134H   R   SEG=CODE_SEG


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -