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

📄 jzjpds.lst

📁 单片机源程序,用于需要4*4矩阵键盘场合,汇汇编程序KEIL开发环境.
💻 LST
字号:
A51 MACRO ASSEMBLER  JZJPDS                                                               07/31/2008 00:33:29 PAGE     1


MACRO ASSEMBLER A51 V8.00d
OBJECT MODULE PLACED IN JZJPds.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE JZJPds.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1      
  0093                 2     RELAY  EQU  P1.3
  00B7                 3     BEEP   EQU  P3.7
                       4     
                       5               
                       6     ;------------------------------------------------------       
                       7      
                       8     ;------------------------------------------------------
0000 758160            9     MAINa:     MOV   SP,#60H
0003 753000           10                MOV   30H,#00h                 ;放键值
0006 753100           11                        MOV   31H,#00H         ;放第一次扫描键值
0009 753200           12                        MOV   32H,#00H         ;放第一次扫描键值
000C                  13     LOOP1:
000C 1112             14                CALL  KEY_IN         
000E 118E             15                        CALL  KEY_PLAER                       
0010 80FA             16                JMP   LOOP1
                      17     ;-----------------------------------------------------
0012 7590F0           18     KEY_IN:    MOV  P1,#0F0H          ;置列线为0,行线为1
0015 E590             19                MOV  A,P1
0017 54F0             20                ANL  A,#0F0H
0019 F5F0             21                MOV  B,A
001B 75900F           22                MOV  P1,#0FH           ;置列线为1,行线为0
001E E590             23                MOV  A,P1
0020 540F             24                ANL  A,#0FH                                                                     
                                           
0022 45F0             25                ORL  A,B               ;高四位与低四位重新组合
0024 F531             26                        MOV  31H,A
0026 B4FF01           27                        CJNE  A,#0FFH,KEY_IN1  ;0FFH为末按键
0029 22               28                RET
                      29     
002A                  30     KEY_IN1:   
002A 1174             31                CALL DELAYSM                    ;键盘扫描延时去抖,重新扫描一次键盘.
002C 7590F0           32                MOV  P1,#0F0H          ;置列线为0,行线为1
002F E590             33                MOV  A,P1
0031 54F0             34                ANL  A,#0F0H
0033 F532             35                MOV  32H,A
0035 75900F           36                MOV  P1,#0FH           ;置列线为1,行线为0     
0038 E590             37                MOV  A,P1
003A 540F             38                ANL  A,#0FH
003C 4532             39                ORL  A,32H             ;高四位与低四位重新组合
                      40     
003E B531D1           41                CJNE  A,31H,KEY_IN     ;0FFH为末按键
                      42                        
                      43                
0041 F5F0             44                        MOV  B,A
0043 90007D           45                MOV  DPTR,#KEYTABLE
0046 7BFF             46                MOV  R3,#0FFH           ;
0048 0B               47     KEY_IN2:   INC  R3
0049 EB               48                MOV  A,R3
004A 93               49                MOVC  A,@A+DPTR
004B B5F004           50                CJNE  A,B,KEY_IN3
004E EB               51                MOV  A,R3              ;找到,取顺序码,(A)里面放的是******(键值) ********      
004F F530             52                MOV  30H,A
                      53                        
                      54     
                      55     
                      56     
                      57                        
A51 MACRO ASSEMBLER  JZJPDS                                                               07/31/2008 00:33:29 PAGE     2

0051 22               58                        RET
0052 B4FFF3           59     KEY_IN3:   CJNE  A,#0FFH,KEY_IN2  ;末完,继续查
0055 22               60                RET                    ;0FFH为结束码
                      61     ;----------------------------------------------
                      62     ;蜂鸣器响一声子程序
                      63     ;----------------------------------------------EEP_BL:
0056 7E64             64     BEEP_BL:   MOV  R6,#100
0058 1163             65       BL1:     CALL  DEX1
005A B2B7             66                CPL  BEEP
005C DEFA             67                DJNZ  R6,BL1
005E 7D19             68                MOV  R5,#25
0060 1169             69                CALL  DELAY
0062 22               70                RET
                      71     
0063 7FB4             72      DEX1:     MOV  R7,#180
0065 00               73      DEX2:     NOP
0066 DFFD             74                DJNZ  R7,DEX2
0068 22               75                RET
                      76     
0069                  77     DELAY:                      ;延时R5×10MS
0069 7E32             78                MOV  R6,#50
006B 7F64             79     DELAY1:    MOV  R7,#100
006D DFFE             80                DJNZ  R7,$
006F DEFA             81                DJNZ  R6,DELAY1
0071 DDF6             82                DJNZ  R5,DELAY
0073 22               83                RET
                      84     ;----------------------------------------------------
0074                  85     DELAYSM:                    ;延时R5×10MS,键盘扫描延时
0074 7E14             86                MOV  R6,#20
0076 7FF8             87     DELAY2:    MOV  R7,#248
0078 DFFE             88                DJNZ  R7,$
007A DEFA             89                DJNZ  R6,DELAY2               
007C 22               90                RET
                      91     
                      92     
                      93     
                      94     ;-----------------------------------------------------
007D                  95     KEYTABLE:
007D EEEDEBE7         96         DB  0EEH,0EDH,0EBH,0E7H,0DEH  ;0,1,2,3,4,  顺序码
0081 DE                      
0082 DDDBD7BE         97         DB  0DDH,0DBH,0D7H,0BEH,0BDH  ;5,6,7,8,9,
0086 BD                      
0087 BBB77E7D         98         DB  0BBH,0B7H,07EH,07DH,07BH  ;A,B,C,D,E,
008B 7B                      
008C 77FF             99         DB  077H,0FFH                 ;F      0FF为结束码
                     100     ;-----------------------------------------------------
                     101     ;键值显示子程序
                     102     ;使用一个事牍芟允

⌨️ 快捷键说明

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