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

📄 sz617.lst

📁 一个本人编写的时钟程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
0226 417B            230              AJMP KEYRET
                     231     
0228                 232     HOURADD1: ; 小时加1
0228 B4090E          233              CJNE A,#9,MINADD1
022B AD33            234                      MOV  R5,HOURBUF
022D BD1705          235                      CJNE R5,#23,HOURADD
0230 753300          236                      MOV  HOURBUF,#0
0233 417B            237                      AJMP KEYRET
0235                 238     HOURADD:
0235 0533            239              INC  HOURBUF
0237 417B            240              AJMP KEYRET
                     241     
0239                 242     MINADD1:  ; 分钟加1
0239 B40C0E          243              CJNE A,#0CH,HOUR1ADD1
023C AD32            244                      MOV  R5,MINUTEBUF
023E BD3B05          245                      CJNE R5,#59,MINADD
0241 753200          246                      MOV  MINUTEBUF,#0
0244 417B            247                      AJMP KEYRET
0246                 248     MINADD:
0246 0532            249              INC  MINUTEBUF
0248 417B            250              AJMP KEYRET
                     251     
024A                 252     HOUR1ADD1: ; 定时小时加1
024A B40F0F          253              CJNE A,#0FH,MIN1ADD1
024D AD37            254                      MOV  R5,HOURBUF1
024F BD1705          255                      CJNE R5,#23,HOUR1ADD
0252 753700          256                      MOV  HOURBUF1,#0
A51 MACRO ASSEMBLER  SZ617                                                                06/18/2008 13:18:12 PAGE     5

0255 417B            257                      AJMP KEYRET
0257                 258     HOUR1ADD:
0257 0537            259              INC  HOURBUF1
0259 02027B          260              LJMP KEYRET
                     261     
025C                 262     MIN1ADD1:  ; 定时分钟加1
025C B4121C          263              CJNE A,#12H,KEYRET
025F AD36            264                      MOV  R5,MINUTEBUF1
0261 BD3B05          265                      CJNE R5,#59,MIN1ADD
0264 753600          266                      MOV  MINUTEBUF1,#0
0267 417B            267                      AJMP KEYRET
0269                 268     MIN1ADD:
0269 0536            269              INC  MINUTEBUF1
026B 417B            270                      AJMP KEYRET
026D                 271     IFKEY2UP:       ; KEY2 是否松开
026D 30B70B          272              JNB  KEY2,KEYRET
0270 120475          273                      LCALL DELAY10US
0273 30B705          274                  JNB  KEY2,KEYRET
0276 120475          275                      LCALL DELAY10US
0279 C2B3            276                      CLR  KEY2FLAG
027B                 277     KEYRET:
027B 22              278     RET
                     279     
                     280     ; **********************************************************************
                     281     ; ; 74LS164芯片工作原理子程序
                     282     ; **********************************************************************
027C                 283     Send74LS164:
027C 7908            284                     MOV     R1,#8
027E                 285     Send2LS164_Loop:
027E 33              286                     RLC  A
027F 92B0            287                     MOV  LS164_AB,C
0281 D2B1            288                     SETB LS164_CLK
0283 C2B1            289                     CLR  LS164_CLK
0285 D9F7            290                     DJNZ r1,Send2LS164_Loop
0287 22              291                 RET
                     292     
                     293     ; **********************************************************************
                     294     ; 显示缓冲更新子程序
                     295     ; **********************************************************************
0288                 296     UPDATEDISPBUF:    
0288 E531            297                      MOV     A,              SECONDBUF
028A 75F00A          298                      MOV     B,              #10
028D 84              299                      DIV     AB
028E 85F029          300                      MOV     DISPBUF+9,        B
0291 F52A            301                      MOV     DISPBUF+0AH,      A
                     302     
0293 E532            303                      MOV     A,              MINUTEBUF
0295 75F00A          304                      MOV     B,              #10
0298 84              305                      DIV     AB
0299 85F021          306                      MOV     DISPBUF+1,        B
029C F522            307                      MOV     DISPBUF+2,        A
                     308     
029E E533            309                      MOV     A,              HOURBUF
02A0 75F00A          310                      MOV     B,              #10
02A3 84              311                      DIV     AB
02A4 85F023          312                      MOV     DISPBUF+3,         B
02A7 F524            313                      MOV     DISPBUF+4,         A
                     314     
02A9 E534            315                      MOV     A,              MONTHBUF
02AB 75F00A          316                      MOV     B,              #10
02AE 84              317                      DIV     AB
02AF 85F027          318                      MOV     DISPBUF+7,         B
02B2 F528            319                      MOV     DISPBUF+8,         A
                     320     
02B4 E535            321                                  MOV     A,              DAYBUF
02B6 75F00A          322                      MOV     B,              #10
A51 MACRO ASSEMBLER  SZ617                                                                06/18/2008 13:18:12 PAGE     6

02B9 84              323                      DIV     AB
02BA 85F025          324                      MOV     DISPBUF+5,         B
02BD F526            325                      MOV     DISPBUF+6,         A
                     326     
                     327                            ; 更新定时缓冲
02BF E537            328                       MOV     A,              HOURBUF1
02C1 75F00A          329                       MOV     B,              #10
02C4 84              330                       DIV     AB
02C5 85F051          331                       MOV     DISPBUF1+1,         B
02C8 F552            332                       MOV     DISPBUF1+2,         A
                     333     
02CA E536            334                       MOV     A,              MINUTEBUF1
02CC 75F00A          335                       MOV     B,              #10
02CF 84              336                       DIV     AB
02D0 85F053          337                       MOV     DISPBUF1+3,         B
02D3 F554            338                       MOV     DISPBUF1+4,         A
                     339     
02D5 22              340                       RET
                     341     
02D6                 342     SELECT_LED1:;选通数码管1
02D6 C293            343                     CLR   LED1
02D8 D294            344                     SETB  LED2
02DA D296            345                     SETB  LED3
02DC D297            346                     SETB  LED4
02DE 22              347                     RET
                     348     
02DF                 349     SELECT_LED2:;选通数码管2
02DF C294            350                     CLR   LED2
02E1 D293            351                     SETB  LED1
02E3 D296            352                     SETB  LED3
02E5 D297            353                     SETB  LED4
02E7 22              354                     RET
                     355     
02E8                 356     SELECT_LED3:;选通数码管3
02E8 C296            357                     CLR   LED3
02EA D293            358                     SETB  LED1
02EC D294            359                     SETB  LED2
02EE D297            360                     SETB  LED4
02F0 22              361                     RET
                     362     
02F1                 363     SELECT_LED4:;选通数码管4
02F1 C297            364                     CLR   LED4
02F3 D293            365                     SETB  LED1
02F5 D294            366                     SETB  LED2
02F7 D296            367                     SETB  LED3
02F9 22              368                     RET
                     369     
02FA                 370     GET_LED234:     ;查表数码管234
02FA 900485          371                     MOV    DPTR,#SAG_LED234
02FD E6              372                     MOV    A,@R0
02FE 93              373                     MOVC   A,@A+DPTR
02FF 22              374             RET
0300                 375     GET_LED1: ;查表数码管1
0300 90047A          376                     MOV    DPTR,#SAG_LED1
0303 E6              377                     MOV    A,@R0
0304 93              378                     MOVC   A,@A+DPTR
0305 22              379             RET
                     380     
                     381     ; **********************************************************************
                     382     ; 四位数码管显示子程序
                     383     ; DISPFLAG -- 显示选择标识
                     384     ; **********************************************************************
0306                 385     DISP:
0306 7940            386                     MOV    R1,#DISPFLAG
0308 120288          387                     LCALL  UPDATEDISPBUF
                     388     ;显示 "时间"
A51 MACRO ASSEMBLER  SZ617                                                                06/18/2008 13:18:12 PAGE     7

030B B7003A          389     KF0:            CJNE   @R1,#0,KF1
                     390     
030E 7821            391                             MOV    R0,#DISPBUF+1
0310 1202FA          392                             LCALL GET_LED234
0313 12027C          393                     LCALL Send74LS164
0316 1202F1          394                     LCALL SELECT_LED4
0319 120467          395                     LCALL DELAY10MS
                     396     
031C 7822            397                     MOV    R0,#DISPBUF+2
031E 1202FA          398                     LCALL GET_LED234
0321 12027C          399                     LCALL Send74LS164
0324 1202E8          400                     LCALL SELECT_LED3
0327 120467          401                     LCALL DELAY10MS
                     402     
032A 7823            403                     MOV    R0,#DISPBUF+3
032C 1202FA          404                     LCALL GET_LED234
032F 12027C          405                     LCALL Send74LS164
0332 1202DF          406                     LCALL SELECT_LED2
0335 120467          407                     LCALL DELAY10MS
                     408     
0338 7824            409                     MOV    R0,#DISPBUF+4
033A 120300          410                     LCALL GET_LED1
033D 12027C          411                     LCALL Send74LS164
0340 1202D6          412                     LCALL SELECT_LED1
0343 120467          413                     LCALL DELAY10MS
0346 8166            414                     AJMP  KFRET
                     415     ;显示 "日期"
0348 B7013A          416     KF1:            CJNE  @R1,#1,KF2
                     417     
034B 7825            418                     MOV    R0,#DISPBUF+5
034D 1202FA          419                             LCALL GET_LED234
0350 12027C          420                     LCALL Send74LS164
0353 1202F1          421                     LCALL SELECT_LED4
0356 120467          422                     LCALL DELAY10MS
                     423     
0359 7826            424                     MOV    R0,#DISPBUF+6
035B 1202FA          425                             LCALL GET_LED234
035E 12027C          426                     LCALL Send74LS164
0361 1202E8          427                     LCALL SELECT_LED3
0364 120467          428                     LCALL DELAY10MS
                     429     
0367 7827            430                     MOV    R0,#DISPBUF+7
0369 1202FA          431                             LCALL GET_LED234
036C 12027C          432                     LCALL Send74LS164
036F 1202DF          433                     LCALL SELECT_LED2
0372 120467          434                     LCALL DELAY10MS
                     435     
0375 7828            436                     MOV    R0,#DISPBUF+8
0377 120300          437                     LCALL GET_LED1
037A 12027C          438                     LCALL Send74LS164
037D 1202D6          439                     LCALL SELECT_LED1
0380 120467          440                     LCALL DELAY10MS
0383 8166            441                     AJMP  KFRET
                     442     ;显示 "秒"
0385 B7021E          443     KF2:            CJNE  @R1,#2,KF3
                     444     
0388 7829            445                     MOV    R0,#DISPBUF+9
038A 1202FA          446                     LCALL GET_LED234
038D 12027C          447                     LCALL Send74LS164
0390 1202F1          448                     LCALL SELECT_LED4
0393 120467          449                     LCALL DELAY10MS
                     450     
0396 782A            451                     MOV    R0,#DISPBUF+0AH
0398 1202FA          452                     LCALL GET_LED234
039B 12027C          453                     LCALL Send74LS164
039E 1202E8          454                     LCALL SELECT_LED3
A51 MACRO ASSEMBLER  SZ617                                                                06/18/2008 13:18:12 PAGE     8

03A1 120467          455                     LCALL DELAY10MS
03A4 8166            456                     AJMP  KFRET
                     457     ;显示 "月"
03A6 B7031E          458     KF3:            CJNE  @R1,#3,KF6
                     459     
03A9 7827            460                     MOV    R0,#DISPBUF+7
03AB 1202FA          461                     LCALL GET_LED234
03AE 12027C          462                     LCALL Send74LS164
03B1 1202DF          463                     LCALL SELECT_LED2
03B4 120467          464                     LCALL DELAY10MS
                     465     

⌨️ 快捷键说明

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