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

📄 wl010.lst

📁 周立功的51单片机试验例程,我当年就是靠这个学会单片机的
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     248             
00FD 32              249             RETI    
                     250     
                     251     ;===============================================================================
                     252             USING   0
00FE                 253     TIMER1:
                     254     ; 定时器1中断服务程序, 产生时基信号10ms
                     255     ; 
                     256     ;
A51 MACRO ASSEMBLER  WL010                                                                02/10/2004 20:14:08 PAGE     5

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

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

                     389     
01A6 EF              390             MOV     A,R7
01A7 6009            391             JZ      END_DLYMS       
01A9                 392     DLY_LP1:
01A9 7EB9            393             MOV     R6,#185
01AB                 394     DLY_LP2:
01AB 00              395             NOP
01AC 00              396             NOP
01AD 00              397             NOP
01AE DEFB            398             DJNZ    R6,DLY_LP2
01B0 DFF7            399             DJNZ    R7,DLY_LP1
                     400     
01B2                 401     END_DLYMS:
01B2 22              402             RET 
                     403             
                     404     ; END OF DELAYMS        
                     405     
                     406     ;===============================================================================
                     407     
01B3                 408     DIS_CODE:
01B3 C0              409             DB      0C0H
01B4 F9              410             DB      0F9H
01B5 A4              411             DB      0A4H
01B6 B0              412             DB      0B0H
01B7 99              413             DB      099H
01B8 92              414             DB      092H
01B9 82              415             DB      082H
01BA F8              416             DB      0F8H
01BB 80              417             DB      080H
01BC 90              418             DB      090H
01BD FF              419             DB      0FFH
                     420     
                     421             END
A51 MACRO ASSEMBLER  WL010                                                                02/10/2004 20:14:08 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.3 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                                                                02/10/2004 20:14:08 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 + -