📄 lock.lst
字号:
C51 COMPILER V8.02 LOCK 08/22/2007 22:27:56 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LOCK
OBJECT MODULE PLACED IN lock.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lock.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <AT89X52.H>
2
3 unsigned char ps[]={1,2,3,4,5};
4
5 unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,
6 0xef,0xdf,0xbf,0x7f};
7 unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
8 0x6d,0x7d,0x07,0x7f,0x6f,
9 0x77,0x7c,0x39,0x5e,0x79,0x71,
10 0x00,0x40,0x73,0xff};
11 unsigned char dispbuf[8]={18,16,16,16,16,16,16,16};
12 unsigned char dispcount;
13 unsigned char flashcount;
14 unsigned char temp;
15 unsigned char key;
16 unsigned char keycount;
17 unsigned char pslen=5;
18 unsigned char getps[6];
19 bit keyoverflag;
20 bit errorflag;
21 bit rightflag;
22 unsigned int second3;
23 unsigned int aa,bb;
24 unsigned int cc;
25 bit okflag;
26 bit alarmflag;
27 bit hibitflag;
28 unsigned char oka,okb;
29
30
31 void main(void)
32 {
33 1 unsigned char i,j;
34 1
35 1 TMOD=0x01;
36 1 TH0=(65536-500)/256;
37 1 TL0=(65536-500)%256;
38 1 TR0=1;
39 1 ET0=1;
40 1 EA=1;
41 1
42 1 while(1)
43 1 {
44 2 P3=0xff;
45 2 P3_4=0;
46 2 temp=P3;
47 2 temp=temp & 0x0f;
48 2 if (temp!=0x0f)
49 2 {
50 3 for(i=10;i>0;i--)
51 3 for(j=248;j>0;j--);
52 3 temp=P3;
53 3 temp=temp & 0x0f;
54 3 if (temp!=0x0f)
55 3 {
C51 COMPILER V8.02 LOCK 08/22/2007 22:27:56 PAGE 2
56 4 temp=P3;
57 4 temp=temp & 0x0f;
58 4 switch(temp)
59 4 {
60 5 case 0x0e:
61 5 key=7;
62 5 break;
63 5 case 0x0d:
64 5 key=8;
65 5 break;
66 5 case 0x0b:
67 5 key=9;
68 5 break;
69 5 case 0x07:
70 5 key=10;
71 5 break;
72 5 }
73 4 temp=P3;
74 4 P1_1=~P1_1;
75 4 if((key>=0) && (key<10))
76 4 {
77 5 if(keycount<6)
78 5 {
79 6 getps[keycount]=key;
80 6 dispbuf[keycount+2]=19;
81 6 }
82 5 keycount++;
83 5 if(keycount==6)
84 5 {
85 6 keycount=6;
86 6
87 6 }
88 5 else if(keycount>6)
89 5 {
90 6 keycount=6;
91 6 keyoverflag=1;//key overflow
92 6 }
93 5 }
94 4 else if(key==12)//delete key
95 4 {
96 5 if(keycount>0)
97 5 {
98 6 keycount--;
99 6 getps[keycount]=0;
100 6 dispbuf[keycount+2]=16;
101 6 }
102 5 else
103 5 {
104 6 keyoverflag=1;
105 6 }
106 5 }
107 4 else if(key==15)//enter key
108 4 {
109 5 if(keycount!=pslen)
110 5 {
111 6 errorflag=1;
112 6 rightflag=0;
113 6 second3=0;
114 6 }
115 5 else
116 5 {
117 6 for(i=0;i<keycount;i++)
C51 COMPILER V8.02 LOCK 08/22/2007 22:27:56 PAGE 3
118 6 {
119 7 if(getps[i]!=ps[i])
120 7 {
121 8 i=keycount;
122 8 errorflag=1;
123 8 rightflag=0;
124 8 second3=0;
125 8 goto a;
126 8 }
127 7 }
128 6 errorflag=0;
129 6 rightflag=1;
130 6 a: i=keycount;
131 6 }
132 5 }
133 4 temp=temp & 0x0f;
134 4 while(temp!=0x0f)
135 4 {
136 5 temp=P3;
137 5 temp=temp & 0x0f;
138 5 }
139 4 keyoverflag=0;
140 4 }
141 3 }
142 2
143 2 P3=0xff;
144 2 P3_5=0;
145 2 temp=P3;
146 2 temp=temp & 0x0f;
147 2 if (temp!=0x0f)
148 2 {
149 3 for(i=10;i>0;i--)
150 3 for(j=248;j>0;j--);
151 3 temp=P3;
152 3 temp=temp & 0x0f;
153 3 if (temp!=0x0f)
154 3 {
155 4 temp=P3;
156 4 temp=temp & 0x0f;
157 4 switch(temp)
158 4 {
159 5 case 0x0e:
160 5 key=4;
161 5 break;
162 5 case 0x0d:
163 5 key=5;
164 5 break;
165 5 case 0x0b:
166 5 key=6;
167 5 break;
168 5 case 0x07:
169 5 key=11;
170 5 break;
171 5 }
172 4 temp=P3;
173 4 P1_1=~P1_1;
174 4 if((key>=0) && (key<10))
175 4 {
176 5 if(keycount<6)
177 5 {
178 6 getps[keycount]=key;
179 6 dispbuf[keycount+2]=19;
C51 COMPILER V8.02 LOCK 08/22/2007 22:27:56 PAGE 4
180 6 }
181 5 keycount++;
182 5 if(keycount==6)
183 5 {
184 6 keycount=6;
185 6 }
186 5 else if(keycount>6)
187 5 {
188 6 keycount=6;
189 6 keyoverflag=1;//key overflow
190 6 }
191 5 }
192 4 else if(key==12)//delete key
193 4 {
194 5 if(keycount>0)
195 5 {
196 6 keycount--;
197 6 getps[keycount]=0;
198 6 dispbuf[keycount+2]=16;
199 6 }
200 5 else
201 5 {
202 6 keyoverflag=1;
203 6 }
204 5 }
205 4 else if(key==15)//enter key
206 4 {
207 5 if(keycount!=pslen)
208 5 {
209 6 errorflag=1;
210 6 rightflag=0;
211 6 second3=0;
212 6 }
213 5 else
214 5 {
215 6 for(i=0;i<keycount;i++)
216 6 {
217 7 if(getps[i]!=ps[i])
218 7 {
219 8 i=keycount;
220 8 errorflag=1;
221 8 rightflag=0;
222 8 second3=0;
223 8 goto a4;
224 8 }
225 7 }
226 6 errorflag=0;
227 6 rightflag=1;
228 6 a4: i=keycount;
229 6 }
230 5 }
231 4 temp=temp & 0x0f;
232 4 while(temp!=0x0f)
233 4 {
234 5 temp=P3;
235 5 temp=temp & 0x0f;
236 5 }
237 4 keyoverflag=0;
238 4 }
239 3 }
240 2
241 2 P3=0xff;
C51 COMPILER V8.02 LOCK 08/22/2007 22:27:56 PAGE 5
242 2 P3_6=0;
243 2 temp=P3;
244 2 temp=temp & 0x0f;
245 2 if (temp!=0x0f)
246 2 {
247 3 for(i=10;i>0;i--)
248 3 for(j=248;j>0;j--);
249 3 temp=P3;
250 3 temp=temp & 0x0f;
251 3 if (temp!=0x0f)
252 3 {
253 4 temp=P3;
254 4 temp=temp & 0x0f;
255 4 switch(temp)
256 4 {
257 5 case 0x0e:
258 5 key=1;
259 5 break;
260 5 case 0x0d:
261 5 key=2;
262 5 break;
263 5 case 0x0b:
264 5 key=3;
265 5 break;
266 5 case 0x07:
267 5 key=12;
268 5 break;
269 5 }
270 4 temp=P3;
271 4 P1_1=~P1_1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -