📄 复件 7.lst
字号:
209 5 }
210 4 if(i==4)
211 4 {
212 5 minite--;
213 5 if(minite<0)
214 5 minite=59;
215 5 }
216 4 if(i==1)
217 4 {
218 5 second--;
219 5 if(second<0)
220 5 second=59;
221 5 }
222 4 }
223 3 if(yijian()==1) break; //一键按下,移到下一位
224 3 }
225 2 if(yijian()==1) break; //跳出循环,显示时间
226 2 }
227 1 k=0; //开始计时
228 1 loop:1;
*** WARNING C275 IN LINE 228 OF 复件 7.C: expression with possibly no effect
229 1 }
230
231 jijia()
232 {
233 1 TR1=1; //开计数器1
234 1 a=1; //计价单元显示
235 1 while(1)
236 1 {
237 2 if(yijian()==1) //按下一键,每过10秒循环显示路程和总价
238 2 {
239 3 a=3;
240 3 }
C51 COMPILER V8.02 复件_7 03/12/2007 13:13:46 PAGE 5
241 2 if(erjian()==1) //按下二键,暂停/开始
242 2 {
243 3 TR1=~TR1;
244 3 }
245 2 if(shangjian()==1) //按下三键,停止
246 2 {
247 3 k=~k;
248 3 if(k==1) //第一次按下,停止计价
249 3 {
250 4 TR1=0;
251 4 a=4;
252 4 }
253 3 if(k==0) //第二次按下,显示时间,数据清0
254 3 {
255 4 a=0;
256 4 lucheng[5]=0;
257 4 lucheng[6]=18;
258 4 lucheng[7]=0;
259 4 lucheng[0]=0;
260 4 lucheng[1]=0;
261 4 lucheng[2]=18;
262 4 lucheng[3]=0;
263 4 zongjia[0]=18;
264 4 zongjia[1]=0;
265 4 zongjia[5]=0;
266 4 zongjia[6]=18;
267 4 zongjia[7]=0;
268 4 break;
269 4 }
270 3 }
271 2 }
272 1 }
273
274 gaijia() //改价子程序
275 {
276 1 a=2; //改价显示
277 1 i=8;
278 1 while(1)
279 1 {
280 2 if(shangjian()==1) //三键按下,退出程序
281 2 goto loop;
282 2 if(erjian()==1) //二键按下,进入输密码程序
283 2 {
284 3 if(mi()==1) //密码正确,跳出循环
285 3 {
286 4 a=2;
287 4 break;
288 4 }
289 3 else
290 3 {
291 4 a=0;goto loop; //密码错误,退出
292 4 }
293 3 }
294 2 if(yijian()==1) //按下一键,进入改密码单元
295 2 {
296 3 gaimi();
297 3 goto loop;
298 3 }
299 2 }
300 1 for(i=7;i>=0;i--) //循环8次
301 1 {
302 2 if(i==5|i==2) continue; //如果是第二位或第五位,不改
C51 COMPILER V8.02 复件_7 03/12/2007 13:13:46 PAGE 6
303 2 if((i==7|i==4|i==1)&jiage[i]<18) jiage[i]=18; //一、四、七位显示小数点
304 2 while(1)
305 2 {
306 3 if(shangjian()==1) //按下三键,价格减1
307 3 {
308 4 jiage[i]--;
309 4 if(jiage[i]<0|jiage[i]==17)
310 4 jiage[i]=jiage[i]+10;
311 4 }
312 3 if(erjian()==1) //按下二键,价格加1
313 3 {
314 4 jiage[i]++;
315 4 if(jiage[i]==10|jiage[i]==28)
316 4 jiage[i]=jiage[i]-10;
317 4 }
318 3 if(yijian()==1) break; //按下一键,移到下一位
319 3 }
320 2 }
321 1 loop:1;
*** WARNING C275 IN LINE 321 OF 复件 7.C: expression with possibly no effect
322 1 a=0; //退出后显示时间
323 1 i=0;
324 1 }
325
326
327
328
329 void main() //主程序
330 {
331 1 TMOD=0x42; //初始化
332 1 TH0=0x06;
333 1 TL0=0x06;
334 1 TH1=7192;
335 1 TL1=7192;
336 1 TR0=1;
337 1 ET0=1;
338 1 ET1=1;
339 1 EA=1;
340 1 P0=duanma[shijian[dis]] ; //P0口输出段码
341 1 P2=weima[dis] ; //P2口输出位码
342 1 while(1)
343 1 {
344 2 if(yijian()==1) //一键按下,进入改时间程序
345 2 {
346 3 tiaoshi();
347 3 }
348 2 if(erjian()==1) //二键按下,进入计价程序
349 2 {
350 3 jijia();
351 3 }
352 2 if(shangjian()==1) //三键按下,进入改价格程序
353 2 {
354 3 gaijia();
355 3 }
356 2 if(kaiguan()==1) //白天,晚上转换开关
357 2 {
358 3 m=1;
359 3 }
360 2 else m=0;
361 2 }
362 1 }
363
C51 COMPILER V8.02 复件_7 03/12/2007 13:13:46 PAGE 7
364 void t0(void) interrupt 1 using 1 //定时器0中断
365 {
366 1 tcnt++;
367 1 ms++;
368 1 if(ms==8)
369 1 {
370 2 ms=0;
371 2 switch(a) //显示模块开关
372 2 {
373 3 case 0: if((i==dis|(i-1)==dis)&i>0) //0:显示时间
374 3 {
375 4 if(tcnt<1500) //闪动程序
376 4 {
377 5 P0=duanma[17];
378 5 }
379 4 else P0=duanma[shijian[dis]];
380 4 break;
381 4 }
382 3 else P0=duanma[shijian[dis]]; break;
383 3 case 1: P0=duanma[lucheng[dis]]; break; //1:显示路程
384 3 case 2: if(i==dis&i>=0) //2:显示价格
385 3 {
386 4 if(tcnt<1500)
387 4 {
388 5 P0=duanma[17];
389 5 }
390 4 else P0=duanma[jiage[dis]] ; break;
391 4 }
392 3 else P0=duanma[jiage[dis]] ; break;
393 3 case 3: if(shijian[1]%2==1) //3:路程,总价循环显示
394 3 {
395 4 P0=duanma[lucheng[dis]] ; break;
396 4 }
397 3 else P0=duanma[zongjia[dis]]; break;
398 3 case 4: P0=duanma[zongjia[dis]]; break; //4:总价显示
399 3 case 5: if(i==dis&i>=0) //5:输密码显示
400 3 {
401 4 if(tcnt<1500)
402 4 {
403 5 P0=duanma[17];
404 5 }
405 4 else P0=duanma[mima[dis]];
406 4 break;
407 4 }
408 3 else P0=duanma[mima[dis]]; break;
409 3 case 6: if(i==dis&i>=0) //6:改密码显示
410 3 {
411 4 if(tcnt<1500)
412 4 {
413 5 P0=duanma[17];
414 5 }
415 4 else P0=duanma[mima1[dis]];
416 4 break;
417 4 }
418 3 else P0=duanma[mima1[dis]]; break;
419 3 }
420 2 P2=weima[dis]; //位码扫描
421 2 dis++;
422 2 if(dis==8)
423 2 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -