📄 keypaddrive.ls1
字号:
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 + -