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

📄 定时器6.lst

📁 这个是大学的计算机接口实验课上经常用到的原程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
0274 753D33          390              SETM30:    MOV   ADDRES,  #MH   ;移入分位的地址
0277 21E1            391                         AJMP  WAITFK           ;转向等待键释放
0279 753D35          392                     SETHH:          MOV   ADDRES,  #HH   ;移入时位的地址
027C 21E1            393                                     AJMP  WAITFK          ;转向等待键释放
                     394                         ;
027E C23A            395                     ENDMEN:         CLR   HPLMOD         ;恢复不闪烁显示方式
0280 22              396                                     RET
0281 00              397                         NOP
0282 00              398                         NOP
0283 02040D          399                         LJMP ERR              ;软件陷阱
                     400                 ;
                     401                 ;****************
                     402                 ;  到点工作程序 ;
                     403                 ;****************
0286 8C36            404             ACTION: MOV   L0,  R4           ;移入工作模式选择数
0288 0536            405                     INC   L0                  ;送显示数"F-0X"
028A 753700          406                     MOV   L1,  #00H
028D 75380B          407                     MOV   L2,  #0BH
0290 753900          408                     MOV   L3,  #00H
0293 D297            409                     SETB  LED4
0295 753A36          410                     MOV   DSPLYP, #L0         ;指针指向显存
0298 D239            411                     SETB  LPLMOD             ;设定显示方式不闪烁
029A D23A            412                     SETB  HPLMOD
029C EC              413                     MOV   A,  R4            ;移入工作模式选择数
029D 23              414                     RL    A                  ;
029E 9002A2          415                     MOV   DPTR,  #A_TAB
02A1 73              416                     JMP   @A+DPTR          ;根据工作模式选择数跳转
02A2 41AF            417                     A_TAB: AJMP  ACTF1              ;工作模式一
02A4 41AF            418                     AJMP  ACTF1             ;工作模式二
02A6 41CA            419                     AJMP  ACTF3             ;工作模式三
02A8 41CA            420                     AJMP  ACTF3              ;工作模式四
02AA 00              421                     NOP
02AB 00              422                     NOP
02AC 02040D          423                     LJMP  ERR                ;软件陷阱
02AF D2B7            424             ACTF1: SETB  SWITCH             ;工作模式一(或二): 关继电器
02B1 753F82          425                    MOV   R_MOD,  #82H      ;响铃模式参数#82H
02B4 7A96            426                    MOV   R2, #96H            ;响铃次数参数#96H
02B6 7102            427               ACTF11:  ACALL RING                     ;调用响铃子程序
02B8 30B135          428                     JNB   MKEY,  ENDACT    ;等待键按下
02BB 30B032          429                     JNB   FKEY,  ENDACT    ; 有键按下则结束响铃
02BE DAF6            430                         DJNZ  R2, ACTF11       ;次数未满继续响铃
02C0 753FFF          431                         MOV   R_MOD, #0FFH    ;参数#0FF使响铃无效
02C3 41B6            432                         AJMP  ACTF11           ;无键按下返回
02C5 00              433                         NOP
02C6 00              434                         NOP
02C7 02040D          435                         LJMP        ERR              ;软件陷阱
02CA C2B7            436                 ACTF3:  CLR   SWITCH            ;工作模式三(或四): 开继电器
02CC C2A7            437                         CLR   BELL               ;蜂鸣器短鸣一声
02CE 9103            438                         ACALL DL1S
02D0 D2A7            439                         SETB  BELL
02D2 753FFF          440                         MOV   R_MOD, #0FFH    ;响铃模式参数#0FFH
02D5 7A96            441                         MOV   R2, #96H          ;响铃时间参数#96H
02D7 7102            442                     ACTF31:         ACALL  RING                 ;调用响铃子程序
02D9 30B114          443                         JNB   MKEY,  ENDACT  ;等待键按下
02DC 30B011          444                         JNB   FKEY,  ENDACT   ;  有键按下则结束
02DF DAF6            445                         DJNZ  R2,   ACTF31    ;次数未满继续
02E1 7A96            446                         MOV   R2, #96H         ;重新赋值
02E3 C2A7            447                         CLR   BELL             ;短鸣一声(说明: 响铃模式参数#0FFH使
02E5 71E9            448                         ACALL DL100            ; 响铃程序无效,仅起延时作用,
02E7 D2A7            449                         SETB  BELL             ; 每延时一段时间短鸣一声,以
02E9 41D7            450                         AJMP  ACTF31          ; 提醒使用者继电器仍在工作)
02EB 00              451                         NOP
02EC 00              452                         NOP
02ED 02040D          453                         LJMP        ERR             ;软件陷阱
02F0 D2B7            454                ENDACT: SETB         SWITCH         ;关继电器
A51 MACRO ASSEMBLER  定时器6                                                              04/14/2005 16:26:25 PAGE     8

02F2 711F            455                AWAITF: ACALL         DISPLY         ;调用显示
02F4 30B0FB          456                        JNB   FKEY,  AWAITF     ;等待键释放
02F7 711F            457                AWAITM: ACALL DISPLY           ;调用显示
02F9 30B1FB          458                         JNB   MKEY,  AWAITM   ;等待键释放
02FC 22              459                         RET
02FD 00              460                         NOP
02FE 00              461                         NOP
02FF 02040D          462                         LJMP        ERR             ;软件陷阱
                     463                 ;
                     464             ;**************
                     465                 ;   响铃程序  ;
                     466             ;**************
0302 7D18            467                 RING:   MOV   R5, #18H           ;R5为循环控制变量
0304 30B110          468                 RING1:  JNB   MKEY  , R_EXIT    ;键扫描
0307 30B00D          469                         JNB   FKEY  , R_EXIT     ;有键按下则退出
030A E53F            470                         MOV   A, R_MOD          ;移入响铃模式参数
030C A2E7            471                         MOV   C, ACC.7           ;根据响铃模式参数改变响铃
030E 92A7            472                         MOV   BELL, C
0310 23              473                         RL    A
0311 F53F            474                         MOV   R_MOD, A
0313 71E9            475                         ACALL DL100             ;延时
0315 DDED            476                         DJNZ  R5, RING1          ;循环次数控制
0317 D2A7            477                 R_EXIT: SETB  BELL              ;关闭响铃
0319 22              478                         RET
031A 00              479                         NOP
031B 00              480                         NOP
031C 02040D          481                         LJMP ERR                 ;软件陷阱
                     482                 ;
                     483             ;**************
                     484                 ;   显示程序  ;
                     485             ;**************
031F C0E0            486                     DISPLY: PUSH  ACC                   ;数据压栈保护
0321 C0D0            487                             PUSH  PSW
0323 75D010          488                             MOV   PSW,    #10H         ;选用寄存器组2
0326 A83A            489                             MOV   R0,  DSPLYP          ;移入显示指针
0328 7AFD            490                             MOV   R2,  #0FDH           ;R2寄存的是数码管选通数
032A E53B            491                             MOV   A,  PLYTS            ;移入显示循环控制量
032C 7005            492                             JNZ   PLAY                  ;不为0则转PLAY
032E 753B64          493                             MOV   PLYTS,  #64H         ;否则从新赋值
0331 B23B            494                             CPL   BRIGHT                ;亮灭指示位取反
0333 153B            495                PLAY:   DEC   PLYTS                  ;显示循环控制量减1
0335 30390C          496                             JNB   LPLMOD, PLAYL        ;低两位数码管不闪则"PLAYL"
0338 203B09          497                             JB    BRIGHT, PLAYL         ;亮灭指示为1也"PLAYL"
033B 71B4            498                             ACALL NOPLAY               ;否则灭灯延时
033D 615C            499                             AJMP  PLAY1                ;转显示高位数码管
033F 00              500                             NOP
0340 00              501                             NOP
0341 02040D          502                             LJMP ERR                    ;软件陷阱
                     503                 ;用来显示低位
0344 43907F          504                      PLAYL:  ORL   P1,  #7FH            ;清原显示数据
0347 43B03C          505                             ORL   P3,  #3CH            ;清原选通数据
034A EA              506                             MOV   A,   R2            ;移入数码管位选数
034B 23              507                             RL    A                   ;换一位
034C 52B0            508                             ANL   P3,  A              ;选通低位的个位数码管
034E FA              509                             MOV   R2,  A             ;暂存位选数
034F E6              510                             MOV   A,  @R0           ;移入显示数值
0350 90039D          511                             MOV   DPTR,  #TABLE1   ;移入表首地址
0353 93              512                             MOVC  A,  @A+DPTR     ;查表
0354 5290            513                             ANL   P1,  A              ;送显示数据
0356 71C4            514                             ACALL DL1MS             ;延时
0358 08              515                             INC   R0                  ;指向低位的十位数
0359 20B3E8          516                             JB    P3.3,  PLAYL         ;显示低位的十位数
                     517                 ;
035C 303A0C          518                     PLAY1:  JNB   HPLMOD, PLAYH      ;高两位数码管不闪则"PLAYH"
035F 203B09          519                             JB    BRIGHT, PLAYH        ;亮灭指示为1也"PLAYH"
0362 71B4            520                             ACALL NOPLAY              ;  否则灭灯延时
A51 MACRO ASSEMBLER  定时器6                                                              04/14/2005 16:26:25 PAGE     9

0364 6193            521                             AJMP  OUTPLY              ;转结束
0366 00              522                             NOP
0367 00              523                             NOP
0368 02040D          524                             LJMP ERR                    ;软件陷阱
                     525     ;
                     526                 ;用来显示高位
036B 43907F          527                     PLAYH:  ORL   P1,  #7FH           ;清原显示数据
036E 43B03C          528                             ORL   P3,  #3CH            ;清原选通数据
0371 53B0EF          529                             ANL   P3,  #0EFH           ;选通高位的个位数数码管
0374 E6              530                             MOV   A,  @R0             ;移入显示数值
0375 90039D          531                             MOV   DPTR,  #TABLE1     ;移入表首地址
0378 93              532                             MOVC  A,  @A+DPTR       ;查表
0379 5290            533                             ANL   P1,  A                   ;送显示数据
037B 71C4            534                             ACALL DL1MS                  ;延时
037D 08              535                             INC   R0                       ;指向高位的十位数
                     536                 ;                               ;显示高位的十位数
037E 43907F          537                         ORL   P1,  #7FH               ;清原显示数据
0381 43B03C          538                         ORL   P3,  #3CH               ;清原选通数据
0384 53B0DF          539                         ANL   P3,  #0DFH             ;选通高位的十位数
0387 E6              540                         MOV   A,  @R0               ;移入显示数值
0388 A297            541                         MOV C,  LED4                   ;指针放大+小灯状态
038A 33              542                         RLC   A                       ;
038B 9003AA          543                         MOV   DPTR,  #TABLE2       ;移入表首地址
038E 93              544                         MOVC  A,  @A+DPTR         ;查表
038F 5290            545                         ANL   P1,  A                 ;送显示数据
0391 71C4            546                         ACALL DL1MS                ;延时
                     547                 ;
0393 D0D0            548        OUTPLY: POP   PSW                   ;恢复数据
0395 D0E0            549                 POP   ACC
0397 22              550                 RET
0398 00              551                 NOP
0399 00              552                 NOP
039A 02040D          553                 LJMP ERR                    ;软件陷阱
                     554     ;
039D C0F9A4B0        555     TABLE1: DB  0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F8H, 80H, 90H,0BFH, 8EH,0FFH
03A1 999282F8
03A5 8090BF8E
03A9 FF
                     556     ;         "0", "1",     ...     ...                      "9",   "-", "F", " "
                     557     ;
03AA FF7FF979        558     TABLE2: DB  0FFH, 07FH, 0F9H, 079H, 0A4H,  84H, 0B0H,  10H, 0BFH, 03FH
03AE A484B010
03B2 BF3F
                     559     ;           "  ", " :", "1 ", "1:", "2 ", "2:", "3 ",  "3:","- ",  "-:"
                     560             ;
                     561         ;
                     562                     ;
                     563             ;**********************
                     564             ;    无显示(灭灯)程序   ;
                     565             ;**********************
03B4 43907F          566                 NOPLAY:   ORL   P1,  #7FH            ;清显示数据
03B7 43B03C          567                         ORL   P3,  #3CH           ;清选通数据
03BA 08              568                         INC   R0                   ;指针自增2
03BB 08              569                         INC   R0
03BC 71C4            570                         ACALL DL1MS              ;延时
03BE 22              571                         RET
03BF 00              572                         NOP
03C0 00              573                         NOP
03C1 02040D          574                         LJMP ERR                    ;软件陷阱
                     575                 ;
                     576             ;******************
                     577             ;     延时程序    ;
                     578             ;******************
03C4 7BF9            579                 DL1MS:  MOV   R3, #0F9H       ;延时 1250US  只为DISPLY所调用
03C6 00              580                 DL1MS1: NOP
03C7 00              581                         NOP
A51 MACRO ASSEMBLER  定时器6                                                              04/14/2005 16:26:25 PAGE    10

03C8 00              582                         NOP
03C9 DBFB            583                         DJNZ  R3, DL1MS1

⌨️ 快捷键说明

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