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

📄 k1-k4-keyconut.lst

📁 单片机中LED显示/数码管显示/键盘控制/蜂鸣器输出/中断应用/定时器和计数器/串口通信/键控看门狗/数据交换
💻 LST
字号:
A51 MACRO ASSEMBLER  K1_K4_KEYCONUT                                                       12/20/2006 16:56:08 PAGE     1


MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN k1-k4-keyconut.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE k1-k4-keyconut.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;*******************************************************************
                       2     ;*                                                                 *
                       3     ;* ME500单片机开发系统演示程序 - 独立键控制LED灯                   *
                       4     ;*                                                                 *
                       5     ;* LED显示                                                         *
                       6     ;*                                                                 *
                       7     ;* 版本: V1.0 (2006/11/20)                                        *
                       8     ;* 作者: gguoqing (Email: gguoqing@willar.com)                    *
                       9     ;* 网站: www.willar.com(伟纳电子)   www.mcusj.com(伟纳单片机世界) *
                      10     ;* 时间: 2006/07/18                                               *
                      11     ;*                                                                 *
                      12     ;*【版权】Copyright(C)伟纳电子 www.willar.com  All Rights Reserved *
                      13     ;*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!       *
                      14     ;*                                                                 *
                      15     ;*******************************************************************
                      16     
                      17     ;对K1进行按键次数计数,逐个点亮LED0-LED7。
                      18     ;K2按下后,点亮LED0-LED3。
                      19     ;K3按下后,点亮LED4-LED7。
                      20     ;K4按下后,关闭所有LED。
                      21     
                      22     ;---------------------------------------------------------
  0094                23             K1      BIT  P1.4
  0095                24             K2      BIT  P1.5
  0096                25             K3      BIT  P1.6
  0097                26             K4      BIT  P1.7
                      27            
  0030                28             K_OLD     EQU  30H
  0031                29             K_NEW     EQU  31H
  0032                30             K1_COUNT  EQU  32H
                      31            
                      32     ;---------------------------------------------------------
0000                  33              ORG  0000H
0000 802E             34              JMP  MAIN
0030                  35              ORG  0030H
                      36     ;---------------------------------------------------------
0030                  37     MAIN:
0030 758160           38              MOV  SP,#60H
0033 7590FF           39              MOV  P1,#0FFH
0036 7580FF           40              MOV  P0,#0FFH
0039 753000           41              MOV  K_OLD,#00H
003C 753200           42              MOV  K1_COUNT,#00H
003F 7520FF           43              MOV  20H,#0FFH
0042                  44     MAIN1:
0042 11BD             45              CALL  K_SCAN          ;键扫描
0044 E531             46              MOV  A,K_NEW
0046 B53002           47              CJNE  A,K_OLD,MAIN2
0049 80F7             48              JMP  MAIN1
004B                  49     MAIN2:
004B 11CC             50              CALL  DELAY           ;延时示去抖动
004D 11BD             51              CALL  K_SCAN          ;再判断键是否按下
004F E531             52              MOV  A,K_NEW
0051 B53002           53              CJNE  A,K_OLD,MAIN3
0054 80EC             54              JMP  MAIN1
0056                  55     MAIN3:
0056 20E00B           56              JB ACC.0,LOOP1         ;K1按下
0059 20E10C           57              JB ACC.1,LOOP2         ;K2按下
005C 20E20E           58              JB ACC.2,LOOP3         ;K3按下
A51 MACRO ASSEMBLER  K1_K4_KEYCONUT                                                       12/20/2006 16:56:08 PAGE     2

005F 20E310           59              JB ACC.3,LOOP4         ;K4按下
0062 80DE             60              JMP  MAIN1
0064                  61     LOOP1:   
0064 117A             62              CALL  K1_PROG
0066 80DA             63              JMP  MAIN1
0068                  64     LOOP2:
0068 7580F0           65              MOV  P0,#0F0H
006B 80D5             66              JMP  MAIN1
006D                  67     LOOP3:
006D 75800F           68              MOV  P0,#0FH
0070 80D0             69              JMP  MAIN1
0072                  70     LOOP4:
0072 7580FF           71              MOV  P0,#0FFH
0075 753200           72              MOV  K1_COUNT,#00H
0078 80C8             73              JMP  MAIN1
                      74     
                      75     ;---------------------------------------------------------
                      76     ; k1键功能子程序
                      77     ;---------------------------------------------------------
007A                  78     K1_PROG:
007A 0532             79              INC  K1_COUNT
007C E532             80              MOV  A,K1_COUNT
                      81              
007E B40104           82              CJNE  A,#1,K1_P1
0081 C280             83              CLR  P0.0
0083 8037             84              JMP  K1_P9 
0085                  85     K1_P1:
0085 B40204           86              CJNE  A,#2,K1_P2
0088 C281             87              CLR  P0.1
008A 8030             88              JMP  K1_P9         
008C                  89     K1_P2:
008C B40304           90              CJNE  A,#3,K1_P3
008F C282             91              CLR  P0.2
0091 8029             92              JMP  K1_P9 
0093                  93     K1_P3:
0093 B40404           94              CJNE  A,#4,K1_P4
0096 C283             95              CLR  P0.3
0098 8022             96              JMP  K1_P9 
009A                  97     K1_P4:
009A B40504           98              CJNE  A,#5,K1_P5
009D C284             99              CLR  P0.4
009F 801B            100              JMP  K1_P9 
00A1                 101     K1_P5:
00A1 B40604          102              CJNE  A,#6,K1_P6
00A4 C285            103              CLR  P0.5
00A6 8014            104              JMP  K1_P9                  
00A8                 105     K1_P6:
00A8 B40704          106              CJNE  A,#7,K1_P7
00AB C286            107              CLR  P0.6
00AD 800D            108              JMP  K1_P9        
00AF                 109     K1_P7:
00AF B40804          110              CJNE  A,#8,K1_P8
00B2 C287            111              CLR  P0.7
00B4 8006            112              JMP  K1_P9                 
00B6                 113     K1_P8: 
00B6 753200          114              MOV  K1_COUNT,#00H
00B9 7580FF          115              MOV  P0,#0FFH
00BC                 116     K1_P9:         
00BC 22              117              RET
                     118     
                     119     ;---------------------------------------------------------
                     120     ; 键扫描子程序
                     121     ;---------------------------------------------------------
00BD                 122     K_SCAN:
00BD 7590FF          123             MOV  P1,#0FFH
00C0 753100          124             MOV  K_NEW,#00H
A51 MACRO ASSEMBLER  K1_K4_KEYCONUT                                                       12/20/2006 16:56:08 PAGE     3

00C3 E590            125             MOV  A,P1
00C5 F4              126             CPL  A
00C6 54F0            127             ANL  A,#0F0H
00C8 C4              128             SWAP  A
00C9 F531            129             MOV  K_NEW,A
00CB 22              130             RET
                     131     ;---------------------------------------------------------
                     132     ;延时子程序
                     133     ;---------------------------------------------------------
00CC                 134     DELAY:
00CC 7EC8            135             MOV  R6,#200
00CE                 136     DEL:
00CE 7FFF            137             MOV  R7,#0FFH
00D0 DFFE            138             DJNZ  R7,$
00D2 DEFA            139             DJNZ  R6,DEL
00D4 22              140             RET
                     141     
                     142     ;---------------------------------------------------------
                     143             END
                             
A51 MACRO ASSEMBLER  K1_K4_KEYCONUT                                                       12/20/2006 16:56:08 PAGE     4

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
DEL. . . . . . . .  C ADDR   00CEH   A   
DELAY. . . . . . .  C ADDR   00CCH   A   
K1 . . . . . . . .  B ADDR   0090H.4 A   
K1_COUNT . . . . .  N NUMB   0032H   A   
K1_P1. . . . . . .  C ADDR   0085H   A   
K1_P2. . . . . . .  C ADDR   008CH   A   
K1_P3. . . . . . .  C ADDR   0093H   A   
K1_P4. . . . . . .  C ADDR   009AH   A   
K1_P5. . . . . . .  C ADDR   00A1H   A   
K1_P6. . . . . . .  C ADDR   00A8H   A   
K1_P7. . . . . . .  C ADDR   00AFH   A   
K1_P8. . . . . . .  C ADDR   00B6H   A   
K1_P9. . . . . . .  C ADDR   00BCH   A   
K1_PROG. . . . . .  C ADDR   007AH   A   
K2 . . . . . . . .  B ADDR   0090H.5 A   
K3 . . . . . . . .  B ADDR   0090H.6 A   
K4 . . . . . . . .  B ADDR   0090H.7 A   
K_NEW. . . . . . .  N NUMB   0031H   A   
K_OLD. . . . . . .  N NUMB   0030H   A   
K_SCAN . . . . . .  C ADDR   00BDH   A   
LOOP1. . . . . . .  C ADDR   0064H   A   
LOOP2. . . . . . .  C ADDR   0068H   A   
LOOP3. . . . . . .  C ADDR   006DH   A   
LOOP4. . . . . . .  C ADDR   0072H   A   
MAIN . . . . . . .  C ADDR   0030H   A   
MAIN1. . . . . . .  C ADDR   0042H   A   
MAIN2. . . . . . .  C ADDR   004BH   A   
MAIN3. . . . . . .  C ADDR   0056H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
SP . . . . . . . .  D ADDR   0081H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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