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

📄 键盘.lst

📁 本科优秀毕业设计,倒车雷达,用单片机和c51实现的!
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  键臺                                                                 05/16/2008 16:41:39 PAGE     1


MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN 键盘.OBJ
ASSEMBLER INVOKED BY: E:\Program Files\KeiL\C51\BIN\A51.EXE 键盘.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

0000                   1           ORG 0000H
0000 8000              2               JMP MAIN
                       3     
                       4     
0002 75814F            5     MAIN:   MOV SP,#4FH
0005 7580FF            6                     MOV P0,#0FFH
0008 7590FF            7                     MOV P1,#0FFH
000B 75A0FF            8                     MOV P2,#0FFH
000E 754000            9                     MOV 40H,#00H
0011 754100           10                     MOV 41H,#00H
0014 754200           11                     MOV 42H,#00H
0017 754300           12                     MOV 43H,#00H
001A 754400           13                     MOV 44H,#00H
001D 754500           14                     MOV 45H,#00H
0020 754600           15                     MOV 46H,#00H
0023 754700           16                     MOV 47H,#00H
                      17     
0026                  18     KEY_SCAN1:                          ;识别键盘有无键按下子程序
                      19                
0026 75A0F0           20                        MOV  P2,#0F0H           ;置列线为0,行线为1
                      21                
0029 E5A0             22                        MOV  A,P2               ;读P2口
002B 54F0             23                ANL  A,#0F0H            ;取出高四位
002D F5F0             24                MOV  B,A                ;暂存到B
002F 75A00F           25                MOV  P2,#0FH            ;置列线为1,行线为0
                      26                
0032 E5A0             27                        MOV  A,P2               ;读P2口
0034 540F             28                ANL  A,#0FH             ;取出低四位
0036 45F0             29                ORL  A,B                ;高四位与低四位逻辑或运算重新组合
0038 B4FF02           30                CJNE A,#0FFH,KEY_IN1_1    ;0FFH为无按键按下
003B 80E9             31                JMP KEY_SCAN1
                      32     
003D                  33     KEY_IN1_1:                           ;识别具体按键值子程序
003D F5F0             34                MOV  B,A                ;将按键的特征编码暂存于B
003F 90017A           35                MOV  DPTR,#KEY_TABLE
0042 7BFF             36                MOV  R3,#0FFH           
0044                  37     KEY_IN1_2:  
0044 0B               38                INC  R3                 ;顺序码加1
0045 EB               39                MOV  A,R3
0046 93               40                MOVC  A,@A+DPTR         ;查表
0047 B5F010           41                CJNE  A,B,KEY_IN1_3       ;比较,若相同则找到按键的特征编码。
004A EB               42                MOV  A,R3               ;找到特征编码后,取顺序码
                      43                
004B F543             44                    MOV  43H,A              ;存入43H单元
004D 11EA             45                CALL DISPLAYKEY_1
004F 854342           46                        MOV  42H,43H
0052 75430A           47                        MOV  43H,#0AH
                      48                        
0055 BB0A07           49                        CJNE R3,#10,KEY_SCAN2           ;输入是否结束
0058 01E4             50                        JMP EXIT
005A                  51     KEY_IN1_3: 
005A B400E7           52                CJNE  A,#00H,KEY_IN1_2     ;末完,继续查
                      53                ;CALL KEY_PLAER1
005D 80C7             54                        JMP KEY_SCAN1                 ;00H为结束码
                      55     
005F                  56     KEY_SCAN2:                          ;识别键盘有无键按下子程序
                      57                
                      58                       
A51 MACRO ASSEMBLER  键臺                                                                 05/16/2008 16:41:39 PAGE     2

005F 75A0F0           59                        MOV  P2,#0F0H           ;置列线为0,行线为1
                      60                
0062 E5A0             61                        MOV  A,P2               ;读P2口
0064 54F0             62                ANL  A,#0F0H            ;取出高四位
0066 F5F0             63                MOV  B,A                ;暂存到B
0068 75A00F           64                MOV  P2,#0FH            ;置列线为1,行线为0
                      65               
006B E5A0             66                        MOV  A,P2               ;读P2口
006D 540F             67                ANL  A,#0FH             ;取出低四位
006F 45F0             68                ORL  A,B                ;高四位与低四位逻辑或运算重新组合
0071 B4FF02           69                CJNE A,#0FFH,KEY_IN2_1    ;0FFH为无按键按下
0074 80E9             70                JMP KEY_SCAN2
                      71     
0076                  72     KEY_IN2_1:                           ;识别具体按键值子程序
0076 F5F0             73                MOV  B,A                ;将按键的特征编码暂存于B
0078 90017A           74                MOV  DPTR,#KEY_TABLE
007B 7BFF             75                MOV  R3,#0FFH           
007D                  76     KEY_IN2_2:  
007D 0B               77                INC  R3                 ;顺序码加1
007E EB               78                MOV  A,R3
007F 93               79                MOVC  A,@A+DPTR         ;查表
0080 B5F01E           80                CJNE  A,B,KEY_IN2_3       ;比较,若相同则找到按键的特征编码。
0083 EB               81                MOV  A,R3               ;找到特征编码后,取顺序码
                      82                
0084 F543             83                    MOV  43H,A              ;存入43H单元
                      84               
                      85                        
0086 BB0A0B           86                        CJNE R3,#10,OUT2        ;输入是否结束
0089 854243           87                        MOV  43H,42H
008C 75420A           88                        MOV  42H,#0AH
008F 75410A           89                        MOV  41H,#0AH
0092 8050             90                        JMP EXIT
                      91                        
0094                  92     OUT2:      
0094 11EA             93                        CALL DISPLAYKEY_1
0096 854241           94                        MOV  41H,42H
0099 854342           95                        MOV  42H,43H
009C 75430A           96                        MOV  43H,#0AH
                      97                
009F 8005             98                        JMP  KEY_SCAN3
                      99                        
                     100                       
                     101                        
00A1                 102     KEY_IN2_3: 
00A1 B400D9          103                CJNE  A,#00H,KEY_IN2_2     ;末完,继续查
                     104                ;CALL KEY_PLAER1
00A4 80B9            105                        JMP KEY_SCAN2                      ;00H为结束码
                     106         
00A6                 107     KEY_SCAN3:                          ;识别键盘有无键按下子程序
                     108                        
                     109                        
00A6 75A0F0          110                        MOV  P2,#0F0H           ;置列线为0,行线为1
                     111                
00A9 E5A0            112                        MOV  A,P2               ;读P2口
00AB 54F0            113                ANL  A,#0F0H            ;取出高四位
00AD F5F0            114                MOV  B,A                ;暂存到B
00AF 75A00F          115                MOV  P2,#0FH            ;置列线为1,行线为0
                     116                
00B2 E5A0            117                        MOV  A,P2               ;读P2口
00B4 540F            118                ANL  A,#0FH             ;取出低四位
00B6 45F0            119                ORL  A,B                ;高四位与低四位逻辑或运算重新组合
00B8 B4FF02          120                CJNE A,#0FFH,KEY_IN3_1    ;0FFH为无按键按下
00BB 80E9            121                JMP KEY_SCAN3
                     122     
00BD                 123     KEY_IN3_1:                           ;识别具体按键值子程序
00BD F5F0            124                MOV  B,A                ;将按键的特征编码暂存于B
A51 MACRO ASSEMBLER  键臺                                                                 05/16/2008 16:41:39 PAGE     3

00BF 90017A          125                MOV  DPTR,#KEY_TABLE
00C2 7BFF            126                MOV  R3,#0FFH           
00C4                 127     KEY_IN3_2:  
00C4 0B              128                INC  R3                 ;顺序码加1
00C5 EB              129                MOV  A,R3
00C6 93              130                MOVC  A,@A+DPTR         ;查表
00C7 B5F015          131                CJNE  A,B,KEY_IN3_3       ;比较,若相同则找到按键的特征编码。
00CA EB              132                MOV  A,R3               ;找到特征编码后,取顺序码
                     133                
00CB F543            134                    MOV  43H,A              ;存入43H单元
                     135                
                     136     
00CD BB0A0B          137                        CJNE R3,#10,OUT3        ;输入是否结束
                     138                        
00D0 854243          139                        MOV 43H,42H
00D3 854142          140                        MOV 42H,41H
00D6 75410A          141                        MOV 41H,#0AH
00D9 8009            142                        JMP EXIT
                     143                        
00DB 11EA            144     OUT3:      CALL DISPLAYKEY_1
                     145                       
00DD 8005            146                        JMP EXIT     
                     147     
00DF                 148     KEY_IN3_3: 
00DF B400E2          149                CJNE  A,#00H,KEY_IN3_2     ;末完,继续查
                     150                ;CALL KEY_PLAER1
00E2 80C2            151                        JMP KEY_SCAN3                      ;00H为结束码
                     152     
00E4                 153     EXIT: 
00E4 00              154               NOP
00E5 00              155           NOP
00E6 310D            156     LOOP: CALL DISPLAYKEY_2
00E8 80FC            157               JMP LOOP
                     158     
                     159     
                     160     

⌨️ 快捷键说明

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