📄 lock.lst
字号:
C51 COMPILER V8.02 LOCK 08/23/2007 14:41:14 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 code ps[]={1,2,3,4,5};
4 unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
5 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
6 unsigned char pslen=9;
7 unsigned char templen;
8 unsigned char digit;
9 unsigned char funcount;
10 unsigned char digitcount;
11 unsigned char psbuf[9];
12 bit cmpflag;
13 bit hibitflag;
14 bit errorflag;
15 bit rightflag;
16 unsigned int second3;
17 unsigned int aa;
18 unsigned int bb;
19 bit alarmflag;
20 bit exchangeflag;
21 unsigned int cc;
22 unsigned int dd;
23 bit okflag;
24 unsigned char oka;
25 unsigned char okb;
26
27 void main(void)
28 {
29 1 unsigned char i,j;
30 1
31 1 P2=dispcode[digitcount];
32 1 TMOD=0x01;
33 1 TH0=(65536-500)/256;
34 1 TL0=(65536-500)%256;
35 1 TR0=1;
36 1 ET0=1;
37 1 EA=1;
38 1
39 1 while(1)
40 1 {
41 2 if(cmpflag==0)
42 2 {
43 3 if(P3_6==0) //function key
44 3 {
45 4 for(i=10;i>0;i--)
46 4 for(j=248;j>0;j--);
47 4 if(P3_6==0)
48 4 {
49 5 if(hibitflag==0)
50 5 {
51 6 funcount++;
52 6 if(funcount==pslen+2)
53 6 {
54 7 funcount=0;
55 7 cmpflag=1;
C51 COMPILER V8.02 LOCK 08/23/2007 14:41:14 PAGE 2
56 7 }
57 6 P1=dispcode[funcount];
58 6 }
59 5 else
60 5 {
61 6 second3=0;
62 6 }
63 5 while(P3_6==0);
64 5 }
65 4 }
66 3
67 3 if(P3_7==0) //digit key
68 3 {
69 4 for(i=10;i>0;i--)
70 4 for(j=248;j>0;j--);
71 4 if(P3_7==0)
72 4 {
73 5 if(hibitflag==0)
74 5 {
75 6 digitcount++;
76 6 if(digitcount==10)
77 6 {
78 7 digitcount=0;
79 7 }
80 6 P2=dispcode[digitcount];
81 6 if(funcount==1)
82 6 {
83 7 pslen=digitcount;
84 7 templen=pslen;
85 7 }
86 6 else if(funcount>1)
87 6 {
88 7 psbuf[funcount-2]=digitcount;
89 7 }
90 6 }
91 5 else
92 5 {
93 6 second3=0;
94 6 }
95 5 while(P3_7==0);
96 5 }
97 4 }
98 3 }
99 2 else
100 2 {
101 3 cmpflag=0;
102 3 for(i=0;i<pslen;i++)
103 3 {
104 4 if(ps[i]!=psbuf[i])
105 4 {
106 5 hibitflag=1;
107 5 i=pslen;
108 5 errorflag=1;
109 5 rightflag=0;
110 5 cmpflag=0;
111 5 second3=0;
112 5 goto a;
113 5 }
114 4 }
115 3 cc=0;
116 3 errorflag=0;
117 3 rightflag=1;
C51 COMPILER V8.02 LOCK 08/23/2007 14:41:14 PAGE 3
118 3 hibitflag=0;
119 3 a: cmpflag=0;
120 3 }
121 2
122 2 }
123 1 }
124
125 void t0(void) interrupt 1 using 0
126 {
127 1 TH0=(65536-500)/256;
128 1 TL0=(65536-500)%256;
129 1
130 1 if((errorflag==1) && (rightflag==0))
131 1 {
132 2 bb++;
133 2 if(bb==800)
134 2 {
135 3 bb=0;
136 3 alarmflag=~alarmflag;
137 3 }
138 2 if(alarmflag==1)
139 2 {
140 3 P0_0=~P0_0;
141 3 }
142 2
143 2 aa++;
144 2 if(aa==800)
145 2 {
146 3 aa=0;
147 3 P0_1=~P0_1;
148 3 }
149 2 second3++;
150 2 if(second3==6400)
151 2 {
152 3 second3=0;
153 3 hibitflag=0;
154 3 errorflag=0;
155 3 rightflag=0;
156 3 cmpflag=0;
157 3 P0_1=1;
158 3 alarmflag=0;
159 3 bb=0;
160 3 aa=0;
161 3 }
162 2 }
163 1
164 1 if((errorflag==0) && (rightflag==1))
165 1 {
166 2 P0_1=0;
167 2 cc++;
168 2 if(cc<1000)
169 2 {
170 3 okflag=1;
171 3 }
172 2 else if(cc<2000)
173 2 {
174 3 okflag=0;
175 3 }
176 2 else
177 2 {
178 3 errorflag=0;
179 3 rightflag=0;
C51 COMPILER V8.02 LOCK 08/23/2007 14:41:14 PAGE 4
180 3 hibitflag=0;
181 3 cmpflag=0;
182 3 P0_1=1;
183 3 cc=0;
184 3 oka=0;
185 3 okb=0;
186 3 okflag=0;
187 3 P0_0=1;
188 3 }
189 2 if(okflag==1)
190 2 {
191 3 oka++;
192 3 if(oka==2)
193 3 {
194 4 oka=0;
195 4 P0_0=~P0_0;
196 4 }
197 3 }
198 2 else
199 2 {
200 3 okb++;
201 3 if(okb==3)
202 3 {
203 4 okb=0;
204 4 P0_0=~P0_0;
205 4 }
206 3 }
207 2 }
208 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 443 ----
CONSTANT SIZE = 17 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 26 ----
IDATA SIZE = ---- ----
BIT SIZE = 7 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -