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

📄 keypaddrive.ls1

📁 这是用proteus做的基于51核的一个菜单仿真的程序开发环境keil 没有使用os在裸机上跑
💻 LS1
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER  KEYPADDRIVE                                                          06/29/2005 15:41:36 PAGE     1


MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN keypaddrive.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE keypaddrive.src PR(.\keypaddrive.ls1) EP DEBUG

LOC  OBJ            LINE     SOURCE

                       1     ; .\keypaddrive.SRC generated from: keypaddrive.c
                       2     ; COMPILER INVOKED BY:
                       3     ;        C:\Keil\C51\BIN\C51.EXE keypaddrive.c LARGE BROWSE DEBUG OBJECTEXTEND SRC(.\keypad
                             drive.SRC)
                       4     
                       5     
                       6     NAME    KEYPADDRIVE
                       7     
                       8     ?PR?_PutInBuf?KEYPADDRIVE                SEGMENT CODE 
                       9     ?PR?GetKey?KEYPADDRIVE                   SEGMENT CODE 
                      10     ?PR?KeyScan?KEYPADDRIVE                  SEGMENT CODE 
                      11     ?C_INITSEG           SEGMENT CODE 
                      12     ?CO?KEYPADDRIVE      SEGMENT CODE 
                      13     ?ID?KEYPADDRIVE      SEGMENT IDATA 
                      14     ?XD?KEYPADDRIVE      SEGMENT XDATA 
                      15     ?BA?KEYPADDRIVE      SEGMENT DATA BITADDRESSABLE 
                      16             PUBLIC  Vertical3
                      17             PUBLIC  Vertical2
                      18             PUBLIC  Vertical1
                      19             PUBLIC  Vertical0
                      20             PUBLIC  KeyPadStatus
                      21             PUBLIC  KeyBuf
                      22             PUBLIC  Temp1
                      23             PUBLIC  Delay10ms
                      24             PUBLIC  KeyElement3
                      25             PUBLIC  KeyElement2
                      26             PUBLIC  KeyElement1
                      27             PUBLIC  KeyElement0
                      28             PUBLIC  Key
                      29             PUBLIC  BufFlag
                      30             PUBLIC  Temp
                      31             PUBLIC  Front
                      32             PUBLIC  Real
                      33             PUBLIC  Row
                      34             PUBLIC  KeyScan
                      35             PUBLIC  GetKey
                      36             PUBLIC  _PutInBuf
                      37     
----                  38             RSEG  ?ID?KEYPADDRIVE
0000                  39                Real:   DS   1
0001                  40               Front:   DS   1
0002                  41        KeyPadStatus:   DS   1
                      42     
----                  43             RSEG  ?XD?KEYPADDRIVE
0000                  44                Temp:   DS   1
0001                  45             BufFlag:   DS   1
0002                  46         KeyElement0:   DS   4
0006                  47         KeyElement1:   DS   4
000A                  48         KeyElement2:   DS   4
000E                  49         KeyElement3:   DS   4
0012                  50           Delay10ms:   DS   1
0013                  51               Temp1:   DS   1
0014                  52              KeyBuf:   DS   16
                      53     
----                  54             RSEG  ?BA?KEYPADDRIVE
0000                  55                 Key:   DS   1
  0000                56     Vertical0       EQU     (Key+0).0
  0001                57     Vertical1       EQU     (Key+0).1
A51 MACRO ASSEMBLER  KEYPADDRIVE                                                          06/29/2005 15:41:36 PAGE     2

  0002                58     Vertical2       EQU     (Key+0).2
  0003                59     Vertical3       EQU     (Key+0).3
                      60     
----                  61             RSEG  ?CO?KEYPADDRIVE
0000                  62     Row:
0000 01               63             DB      001H
0001 02               64             DB      002H
0002 04               65             DB      004H
0003 08               66             DB      008H
                      67     
                      68     
----                  69             RSEG ?XD?KEYPADDRIVE
                      70     
----                  71             RSEG  ?C_INITSEG
0000 01               72             DB      001H
0001 00       F       73             DB      KeyPadStatus
0002 00               74             DB      000H
                      75     
0003 01               76             DB      001H
0004 00       F       77             DB      Front
0005 00               78             DB      000H
                      79     
0006 01               80             DB      001H
0007 00       F       81             DB      Real
0008 00               82             DB      000H
                      83     
0009 41               84             DB      041H
000A 0000     F       85             DW      BufFlag
000C 00               86             DB      000H
                      87     
000D 44               88             DB      044H
000E 0000     F       89             DW      KeyElement0
0010 31               90             DB      031H
0011 32               91             DB      032H
0012 33               92             DB      033H
0013 34               93             DB      034H
                      94     
0014 44               95             DB      044H
0015 0000     F       96             DW      KeyElement1
0017 35               97             DB      035H
0018 36               98             DB      036H
0019 37               99             DB      037H
001A 38              100             DB      038H
                     101     
001B 44              102             DB      044H
001C 0000     F      103             DW      KeyElement2
001E 39              104             DB      039H
001F 30              105             DB      030H
0020 20              106             DB      020H
0021 20              107             DB      020H
                     108     
0022 44              109             DB      044H
0023 0000     F      110             DW      KeyElement3
0025 20              111             DB      020H
0026 20              112             DB      020H
0027 20              113             DB      020H
0028 20              114             DB      020H
                     115     
                     116     ; //---------------------------------------------
                     117     ; // the 4*4 keypad driver 
                     118     ; // write by liujianwei 2005-6-25
                     119     ; // e-mail:liujianwei@ruyi.com
                     120     ; // qq:361299856
                     121     ; //---------------------------------------------
                     122     ; 
                     123     ; 
A51 MACRO ASSEMBLER  KEYPADDRIVE                                                          06/29/2005 15:41:36 PAGE     3

                     124     ; #include <absacc.h>
                     125     ; #define KEY_ROW_PORT          0x2000
                     126     ; #define KEY_VERTICAL_PORT   0xA000
                     127     ; #define unchar unsigned char 
                     128     ; #define KEY_ROW               XBYTE[KEY_ROW_PORT]
                     129     ; #define KEY_VERTICAL  XBYTE[KEY_VERTICAL_PORT]
                     130     ; #define EMPTY                                 0
                     131     ; #define NOTEMPTY                      2
                     132     ; #define FULL                          1
                     133     ; #define NOTFULL                               3
                     134     ; //-------------------------------------------
                     135     ; // the globle varible declar   here 
                     136     ; //---------------------------------------------
                     137     ;  unchar  KeyBuf[16];
                     138     ;  unchar  idata  KeyPadStatus=0;
                     139     ;  unchar  idata Front=0;
                     140     ;  unchar  idata Real=0;
                     141     ;  unchar  BufFlag=EMPTY;  //0= empty
                     142     ;   const unchar code  Row[4]={ 0x01,0x02,0x04,0x08}; 
                     143     ;   const unchar KeyElement0[4]={'1','2','3','4'};
                     144     ;   const unchar KeyElement1[4]={'5','6','7','8'};
                     145     ;   const unchar KeyElement2[4]={'9','0',' ',' '};
                     146     ;   const unchar KeyElement3[4]={' ',' ',' ',' '};
                     147     ;  unchar bdata  Key;
                     148     ;    sbit   Vertical0= Key^0;
                     149     ;    sbit   Vertical1= Key^1;
                     150     ;    sbit   Vertical2= Key^2;
                     151     ;    sbit   Vertical3= Key^3;
                     152     ; 
                     153     ;  unchar Temp,Temp1;
                     154     ;  unchar Delay10ms;
                     155     ; //--------------------------------------
                     156     ; // put the  char into  the  key buffer
                     157     ; //--------------------------------------
                     158     ;       PutInBuf(unchar x)
                     159     
----                 160             RSEG  ?PR?_PutInBuf?KEYPADDRIVE
0000                 161     _PutInBuf:
                     162             USING   0
                     163                             ; SOURCE LINE # 43
                     164     ;---- Variable 'x?040' assigned to Register 'R7' ----
                     165     ;               {
                     166                             ; SOURCE LINE # 44
                     167     ;                 if (BufFlag!=FULL)
                     168                             ; SOURCE LINE # 45
0000 900000   F      169             MOV     DPTR,#BufFlag
0003 E0              170             MOVX    A,@DPTR
0004 6401            171             XRL     A,#01H
0006 6022            172             JZ      ?C0003
                     173     ;                       {
                     174                             ; SOURCE LINE # 46
                     175     ;                                KeyBuf[Real]=x;
                     176                             ; SOURCE LINE # 47
0008 7800     F      177             MOV     R0,#LOW (Real)
000A E6              178             MOV     A,@R0
000B 2400     F      179             ADD     A,#LOW (KeyBuf)
000D F582            180             MOV     DPL,A
000F E4              181             CLR     A
0010 3400     F      182             ADDC    A,#HIGH (KeyBuf)
0012 F583            183             MOV     DPH,A
0014 EF              184             MOV     A,R7
0015 F0              185             MOVX    @DPTR,A
                     186     ;                                
                     187     ;                                Real++;
                     188                             ; SOURCE LINE # 49
0016 06              189             INC     @R0
A51 MACRO ASSEMBLER  KEYPADDRIVE                                                          06/29/2005 15:41:36 PAGE     4

                     190     ;                                Real&=0x0f;

⌨️ 快捷键说明

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