?? 電子密碼鎖.lst
字號:
C51 COMPILER V7.50 電子密碼薩 08/10/2007 20:12:27 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 電子密碼薩
OBJECT MODULE PLACED IN 電子密碼鎖.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 電子密碼鎖.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 #define KEY P1
5 #define DISP P0
6 //**********************************
7 sbit LED=P2^0;
8 sbit LED1=P2^1;
9 sbit P14=P1^4;
10 sbit P15=P1^5;
11 sbit P16=P1^6;
12 sbit P17=P1^7;
13 uchar key[10];
14 uchar mima[4]={0x00,0x66,0x00,0x4F};
15 uchar cnt_key;
16 uchar cnt_mi;
17 uint i,m;
18 uchar wrong;
19 uchar f_5ms;
20 uchar cnt_5ms;
21 uchar cnt_1s;
22 uchar cnt_led;
23 uchar kk;
24 uchar tab[11]={0x00,0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
25 //***********************************
26 void delay(uint i);
27 void delay_led(void);
28 void delay_wrong(void);
29 void disp_mi(void);
30 void init_main(void);
31 void main(void);
32 void disp_led(void);
33 void get_key(void);
34 //***********************************
35 void delay(uint i)
36 {
37 1 while(--i);
38 1 }
39 //***********************************
40 //void disp_mi(void)
41 //{
42 //
43 //}
44 //***********************************
45 void init_main(void)
46 {
47 1 DISP=0;
48 1 LED=0;
49 1 LED1=0;
50 1 // TMOD=0x01;
51 1 // TR0=1;
52 1 // ET0=1;
53 1 // TH0=0xec;
54 1 // TL0=0x78;
55 1 // EA=1;
C51 COMPILER V7.50 電子密碼薩 08/10/2007 20:12:27 PAGE 2
56 1 cnt_5ms=0;
57 1 cnt_1s=0;
58 1 cnt_key=0;
59 1 cnt_mi=0;
60 1 }
61 //***********************************
62 void main(void)
63 {
64 1 init_main();
65 1 while(1)
66 1 {
67 2 get_key();
68 2 // disp_mi();
69 2 while(kk==1){
70 3 kk=0;
71 3 DISP=key[cnt_key];
72 3 if(key[cnt_key]==mima[cnt_mi])
73 3 {
74 4 cnt_mi++;
75 4 if(cnt_mi==4)
76 4 {
77 5 cnt_mi=0;
78 5 delay_led();
79 5 }
80 4 }
81 3 else if(key[cnt_key]!=mima[cnt_mi])
82 3 {
83 4 delay_wrong();
84 4 }}
85 2 }
86 1 }
87 //***********************************
88 void delay_led(void)
89 {
90 1 // cnt_led=20;
91 1 // while(cnt_led--)
92 1 // {
93 1 // if(f_5ms)
94 1 // {
95 1 // f_5ms=0;
96 1 // if(cnt_5ms++==200)
97 1 // {
98 1 // if(cnt_1s++==10)
99 1 // {LED=!LED;}
100 1 // }
101 1 // }
102 1 // }
103 1 for(m=20;m>0;m--)
104 1 {
105 2 LED=1;
106 2 delay(2000);
107 2 delay(2000);
108 2 delay(2000);
109 2 delay(2000);
110 2 delay(2000);
111 2 delay(2000);
112 2 delay(2000);
113 2 delay(2000);
114 2 delay(2000);
115 2 LED=0;
116 2 delay(2000);
117 2 delay(2000);
C51 COMPILER V7.50 電子密碼薩 08/10/2007 20:12:27 PAGE 3
118 2 delay(2000);
119 2 delay(2000);
120 2 delay(2000);
121 2 delay(2000);
122 2 delay(2000);
123 2 delay(2000);
124 2 delay(2000);
125 2 }
126 1 }
127 //***********************************
128 void delay_wrong(void)
129 {
130 1 for(m=20;m>0;m--)
131 1 {
132 2 LED1=1;
133 2 delay(2000);
134 2 delay(2000);
135 2 delay(2000);
136 2 LED1=0;
137 2 delay(2000);
138 2 delay(2000);
139 2 delay(2000);
140 2 }
141 1 }
142 //***********************************
143 void get_key(void)
144 {
145 1 KEY=0xfe;
146 1 if(!P14)
147 1 {
148 2 delay(200);
149 2 if(!P14)
150 2 {
151 3 while(!P14);
152 3 key[cnt_key]=tab[8];
153 3 kk=1;
154 3 }
155 2 }
156 1
157 1 if(!P15)
158 1 {
159 2 delay(200);
160 2 if(!P15)
161 2 {
162 3 while(!P15);
163 3 key[cnt_key]=tab[9];
164 3 cnt_mi++;
165 3 kk=1;
166 3 }
167 2 }
168 1 if(!P16)
169 1 {
170 2 delay(200);
171 2 if(!P16)
172 2 {
173 3 while(!P16);
174 3 key[cnt_key]=tab[10];
175 3 cnt_mi++;
176 3 kk=1;
177 3 }
178 2 }
179 1 KEY=0xfd;
C51 COMPILER V7.50 電子密碼薩 08/10/2007 20:12:27 PAGE 4
180 1 if(!P14)
181 1 {
182 2 delay(200);
183 2 if(!P14)
184 2 {
185 3 while(!P14);
186 3 key[cnt_key]=tab[5];
187 3 cnt_mi++;
188 3 kk=1;
189 3 }
190 2 }
191 1
192 1 if(!P15)
193 1 {
194 2 delay(200);
195 2 if(!P15)
196 2 {
197 3 while(!P15);
198 3 key[cnt_key]=tab[6];
199 3 cnt_mi++;
200 3 kk=1;
201 3 }
202 2 }
203 1 if(!P16)
204 1 {
205 2 delay(200);
206 2 if(!P16)
207 2 {
208 3 while(!P16);
209 3 key[cnt_key]=tab[7];
210 3 cnt_mi++;
211 3 kk=1;
212 3 }
213 2 }
214 1
215 1 KEY=0xfb;
216 1 if(!P14)
217 1 {
218 2 delay(200);
219 2 if(!P14)
220 2 {
221 3 while(!P14);
222 3 key[cnt_key]=tab[2];
223 3 cnt_mi++;
224 3 kk=1;
225 3 }
226 2 }
227 1
228 1 if(!P15)
229 1 {
230 2 delay(200);
231 2 if(!P15)
232 2 {
233 3 while(!P15);
234 3 key[cnt_key]=tab[3];
235 3 cnt_mi++;
236 3 kk=1;
237 3 }
238 2 }
239 1 if(!P16)
240 1 {
241 2 delay(200);
C51 COMPILER V7.50 電子密碼薩 08/10/2007 20:12:27 PAGE 5
242 2 if(!P16)
243 2 {
244 3 while(!P16);
245 3 key[cnt_key]=tab[4];
246 3 cnt_mi++;
247 3 kk=1;
248 3 }
249 2 }
250 1 if(!P17)
251 1 {
252 2 delay(200);
253 2 if(!P17)
254 2 {
255 3 while(!P17);
256 3 init_main();
257 3 }
258 2 }
259 1 }
260 //***********************************
261 //void int0_main(void) interrupt 1
262 //{
263 // TH0=0xec;
264 // TL0=0x78;
265 // f_5ms=1;
266 //}
267 //***********************************
268 //***********************************
269 //***********************************
270 //***********************************
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 507 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 37 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -