?? 計價器存儲.lst
字號:
197 2 }
198 1 return q;
199 1 }
200
201 erjian() //二鍵是否按下子程序
202 {
203 1 char q=0;
204 1 if(k1==0)
205 1 {
206 2 delay(2);
207 2 if(k1==0)
208 2 {
209 3 q=1;
210 3 while(1) if(k1==1) break;
211 3 }
212 2 }
213 1 return q;
214 1 }
215
216 shangjian() //三鍵是否按下子程序
217 {
218 1 char q=0;
219 1 if(k2==0)
220 1 {
221 2 delay(2);
222 2 if(k2==0)
223 2 {
224 3 q=1;
225 3 while(1) if(k2==1) break;
226 3 }
227 2 }
228 1 return q;
229 1 }
230
231 kaiguan() //白天晚上轉換開關
232 {
233 1 char q=0;
234 1 if(k3==0)
235 1 {
236 2 delay(2);
237 2 if(k3==0)
238 2 {
239 3 q=1;
240 3 }
241 2 }
C51 COMPILER V8.02 計價芲存儲 04/22/2007 20:47:35 PAGE 5
242 1 return q;
243 1 }
244
245 mi() //輸入密碼子程序
246 {
247 1 char h; //定義局部變量
248 1 if(w==1) //檢測是否已經輸錯三次
249 1 {goto loop;} //錯三次跳到程序最后
250 1 a=5; //顯示模塊開關
251 1 for(i=7;i>=0;i--) //循環八次
252 1 {
253 2 while(1)
254 2 {
255 3 if(shangjian()==1) //三鍵按下,數據減1
256 3 {
257 4 mima[i]--;
258 4 if(mima[i]<0|mima[i]>9) mima[i]=9;
259 4 }
260 3 if(erjian()==1) //二鍵按下,數據加1
261 3 {
262 4 mima[i]++;
263 4 if(mima[i]>9) mima[i]=0;
264 4 }
265 3 if(yijian()==1) //一鍵按下,移到下一位
266 3 break;
267 3 }
268 2 }
269 1 for(i=0;i<=7;i++) //循環核對密碼
270 1 if(mima[i]!=mima1[i]) break;
271 1 if(i<=7) //檢查是否對8次
272 1 {
273 2 cuo++; //錯誤次數加1
274 2 if(cuo>=3) //錯誤次數到3清0并不允許再輸入
275 2 {
276 3 cuo=0;
277 3 w=1;
278 3 }
279 2 h=0;
280 2 }
281 1 else h=1;
282 1 for(i=7;i>=0;i--) //輸完后數據清除
283 1 {
284 2 mima[i]=16;
285 2 }
286 1 loop:if(w==1) return 0; //錯三次,返回0
287 1 return h;
288 1 }
289
290 gaimi() //改密碼子程序
291 {
292 1 if(w==1) //判斷是否已錯三次
293 1 {goto loop;}
294 1 if(mi()==1) //進入輸密碼子程序
295 1 {
296 2 a=6; //改密碼顯示開關
297 2 for(i=7;i>=0;i--) //循環8次改變密碼數據
298 2 {
299 3 while(1)
300 3 {
301 4 if(shangjian()==1) //三鍵按下,數據減1
302 4 {
303 5 mima1[i]--;
C51 COMPILER V8.02 計價芲存儲 04/22/2007 20:47:35 PAGE 6
304 5 if(mima1[i]<0|mima1[i]>9) mima1[i]=9;
305 5 }
306 4 if(erjian()==1)
307 4 {
308 5 mima1[i]++;
309 5 if(mima1[i]>9) mima1[i]=0;
310 5 }
311 4 if(yijian()==1)
312 4 break;
313 4 }
314 3 }
315 2 }
316 1 loop:if(w==1) return 0; //錯三次,返回0
317 1 }
318
319 tiaoshi() //調時間子程序
320 {
321 1 if(w==1)
322 1 goto loop;
323 1 k=1; //停止計時
324 1 for(i=7;i>0;i=i-3) //對時、分、秒進行循環
325 1 {
326 2 while(1)
327 2 {
328 3 if(erjian()==1) //二鍵按下,加1
329 3 {
330 4 if(i==7) //調整時間部分
331 4 {
332 5 hour++; //小時加1
333 5 if(hour==24)
334 5 hour=0;
335 5 }
336 4 if(i==4) //調整分鐘部分
337 4 {
338 5 minite++; //分鐘加1
339 5 if(minite==60)
340 5 minite=0;
341 5 }
342 4 if(i==1) //調整秒鐘部分
343 4 {
344 5 second++; //秒加1
345 5 if(second==60)
346 5 second=0;
347 5 }
348 4 }
349 3 if(shangjian()==1) //三鍵按下,減1
350 3 {
351 4 if(i==7)
352 4 {
353 5 hour--;
354 5 if(hour<0)
355 5 hour=23;
356 5 }
357 4 if(i==4)
358 4 {
359 5 minite--;
360 5 if(minite<0)
361 5 minite=59;
362 5 }
363 4 if(i==1)
364 4 {
365 5 second--;
C51 COMPILER V8.02 計價芲存儲 04/22/2007 20:47:35 PAGE 7
366 5 if(second<0)
367 5 second=59;
368 5 }
369 4 }
370 3 if(yijian()==1) break; //一鍵按下,移到下一位
371 3 }
372 2 if(yijian()==1) break; //跳出循環,顯示時間
373 2 }
374 1 k=0; //開始計時
375 1 loop:;
376 1 }
377
378 jijia()
379 {
380 1 EX1=1; //開計數器1
381 1 a=1; //計價單元顯示
382 1 while(1)
383 1 {
384 2 if(yijian()==1) //按下一鍵,每過10秒循環顯示路程和總價
385 2 {
386 3 a=3;
387 3 }
388 2 if(erjian()==1) //按下二鍵,暫停/開始
389 2 {
390 3 EX1=~EX1;
391 3 }
392 2 if(shangjian()==1) //按下三鍵,停止
393 2 {
394 3 k=~k;
395 3 if(k==1) //第一次按下,停止計價
396 3 {
397 4 EX1=0;
398 4 tcnt2=0;
399 4 a=4;
400 4 }
401 3 if(k==0) //第二次按下,顯示時間,數據清0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -