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

📄 number input.lst

📁 Proteus在MCS-51%26ARM7系统中的应用百例 Proteus在MCS-51%26ARM7系统中的应用百例
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  NUMBER_INPUT                                                         08/05/2006 09:15:51 PAGE     1


MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN Number Input.OBJ
ASSEMBLER INVOKED BY: e:\Program Files\Keil\C51\BIN\A51.EXE Number Input.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;**************************************
                       2     ;以下8个存储单元分别存放8位数码管的段码
  0030                 3     LED_BIT_1       EQU             30H
  0031                 4     LED_BIT_2       EQU             31H
  0032                 5     LED_BIT_3       EQU             32H
  0033                 6     LED_BIT_4       EQU             33H
  0034                 7     LED_BIT_5       EQU             34H
  0035                 8     LED_BIT_6       EQU             35H
  0036                 9     LED_BIT_7       EQU             36H
  0037                10     LED_BIT_8       EQU             37H
  0038                11     T_COUNT         EQU             38H
  0039                12     KEY_CNT         EQU             39H
  003A                13     LINE            EQU             3AH
  003B                14     ROW                     EQU             3BH
  003C                15     VAL                     EQU             3CH
                      16     ;**************************************
0000                  17                     ORG             00H
0000 800C             18                     SJMP    START
000B                  19                     ORG             0BH
000B 020114           20                     LJMP    INT_T0
000E 753800           21     START:  MOV             T_COUNT,#00H    ;初始化
0011 753900           22                     MOV             KEY_CNT,#00H
0014 753A00           23                     MOV             LINE,#00H
0017 753B00           24                     MOV             ROW,#00H
001A 753C00           25                     MOV             VAL,#00H
001D 753000           26                     MOV             LED_BIT_1,#00H
0020 753100           27                     MOV             LED_BIT_2,#00H
0023 753200           28                     MOV             LED_BIT_3,#00H
0026 753300           29                     MOV             LED_BIT_4,#00H
0029 753400           30                     MOV             LED_BIT_5,#00H
002C 753500           31                     MOV             LED_BIT_6,#00H
002F 753600           32                     MOV             LED_BIT_7,#00H
0032 75373F           33                     MOV             LED_BIT_8,#3FH
0035 90018F           34                     MOV             DPTR,#TABLE
0038 120135           35     A0:             LCALL   DISP
                      36     ;**************************************
                      37     ;按键扫描
003B 75B0F0           38     LSCAN:  MOV             P3,#0F0H                ;行码扫描
003E 30B00C           39             L1:     JNB             P3.0,L2
0041 120186           40                     LCALL   DELAY
0044 30B006           41                     JNB             P3.0,L2
0047 753A00           42                     MOV             LINE,#00H
004A 020077           43                     LJMP    RSCAN
004D 30B10C           44             L2:     JNB             P3.1,L3
0050 120186           45                     LCALL   DELAY
0053 30B106           46                     JNB             P3.1,L3
0056 753A01           47                     MOV             LINE,#01H
0059 020077           48                     LJMP    RSCAN
005C 30B20C           49             L3:     JNB             P3.2,L4
005F 120186           50                     LCALL   DELAY
0062 30B206           51                     JNB             P3.2,L4
0065 753A02           52                     MOV             LINE,#02H
0068 020077           53                     LJMP    RSCAN
006B 30B3CA           54             L4:     JNB             P3.3,A0
006E 120186           55                     LCALL   DELAY
0071 30B3C4           56                     JNB             P3.3,A0
0074 753A03           57                     MOV             LINE,#03H
                      58     
A51 MACRO ASSEMBLER  NUMBER_INPUT                                                         08/05/2006 09:15:51 PAGE     2

0077 75B00F           59     RSCAN:  MOV             P3,#0FH                 ;列码扫描
007A 30B406           60             C1:     JNB             P3.4,C2
007D 753B00           61                     MOV             ROW,#00H
0080 02009B           62                     LJMP    CALCU
0083 30B506           63             C2:     JNB             P3.5,C3
0086 753B01           64                     MOV             ROW,#01H
0089 02009B           65                     LJMP    CALCU
008C 30B606           66             C3:     JNB             P3.6,C4
008F 753B02           67                     MOV             ROW,#02H
0092 02009B           68                     LJMP    CALCU
0095 30B7E2           69             C4:     JNB             P3.7,C1
0098 753B03           70                     MOV             ROW,#03H                
                      71     ;***********************************************
009B 0539             72     CALCU:  INC             KEY_CNT                 ;统计按键次数
009D E539             73                     MOV             A,KEY_CNT
                      74     
                      75     
009F B4092A           76                     CJNE    A,#9,K1                 ;如果按键9次,发声提示
00A2 758901           77                     MOV             TMOD,#01H
00A5 758CFD           78                     MOV             TH0,#(65536-700)/256
00A8 758A44           79                     MOV             TL0,#(65536-700)MOD     256
00AB 75A882           80                     MOV             IE,#82H
00AE D28C             81                     SETB    TR0
                      82     
00B0 E5B0             83             W10:MOV         A,P3            ;等待按键抬起
00B2 B40F08           84                     CJNE    A,#0FH,W11
00B5 758000           85                     MOV             P0,#00H
00B8 C28C             86                     CLR             TR0
00BA 02000E           87                     LJMP    START
00BD E5B0             88             W11:MOV         A,P3
00BF B4F008           89                     CJNE    A,#0F0H,W12
00C2 758000           90                     MOV             P0,#00H
00C5 C28C             91                     CLR             TR0
00C7 02000E           92                     LJMP    START
00CA 80E4             93             W12:SJMP        W10
                      94     
                      95     ;**************************************************
                      96     ;第1次按键,清除已显示的0,显示按下的数字
00CC B40122           97             K1:     CJNE    A,#1,K2                 
00CF E53A             98                     MOV             A,LINE
00D1 75F004           99                     MOV             B,#04H
00D4 A4              100                     MUL             AB
00D5 253B            101                     ADD             A,ROW
00D7 F53C            102                     MOV             VAL,A
00D9 93              103                     MOVC    A,@A+DPTR
00DA F537            104                     MOV             LED_BIT_8,A
00DC 120135          105     DISP1:  LCALL   DISP
                     106     
00DF E5B0            107             W20:MOV         A,P3            ;等待按键抬起
00E1 B40F03          108                     CJNE    A,#0FH,W21
00E4 020038          109                     LJMP    A0
00E7 E5B0            110             W21:MOV         A,P3
00E9 B4F003          111                     CJNE    A,#0F0H,W22
00EC 020038          112                     LJMP    A0
00EF 80EB            113             W22:SJMP        DISP1                   
                     114     ;***************************************************
                     115     ;第2到8次按键,移位显示按下的数字
00F1 E53A            116             K2:     MOV             A,LINE
00F3 75F004          117                     MOV             B,#04H
00F6 A4              118                     MUL             AB
00F7 253B            119                     ADD             A,ROW
00F9 F53C            120                     MOV             VAL,A
00FB 93              121                     MOVC    A,@A+DPTR
00FC 12011D          122                     LCALL   SHIFT           ;调用段码移位
00FF 120135          123     DISP2:  LCALL   DISP
                     124     
A51 MACRO ASSEMBLER  NUMBER_INPUT                                                         08/05/2006 09:15:51 PAGE     3

0102 E5B0            125             W30:MOV         A,P3            ;等待按键抬起
0104 B40F03          126                     CJNE    A,#0FH,W31
0107 020038          127                     LJMP    A0
010A E5B0            128             W31:MOV         A,P3
010C B4F003          129                     CJNE    A,#0F0H,W32

⌨️ 快捷键说明

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