📄 ceshi.lst
字号:
243 1 wela=0;
244 1 delay(5);
245 1
246 1 P0=table[g_c]; //显示个位
247 1 dula=1;
248 1 dula=0;
249 1
250 1 P0=0x7b;
251 1 wela=1;
252 1 wela=0;
253 1 delay(5);
254 1 }
255 da();//DA
256 void main()
257 { uchar liushui;
258 1 k=0xfe;
259 1 for(liushui=0;liushui<8;liushui++)
260 1 {
261 2 delay10ms();
262 2 beep=0;
263 2 delay10ms();
264 2 beep=1;
265 2 j=_crol_(k,1);
266 2 k=j;
267 2 P1=j;
268 2 }
269 1 dazhuanhuan();
270 1 wendu();
271 1 adzhuanhuan();
272 1 jianpan();
273 1 }
274 void dazhuanhuan()
275 {unsigned char a,k;
276 1 wela=0;
277 1 dula=0;
278 1 csda=0;
279 1 a=0;
280 1 dawr=0;
281 1 for(k=0;k<255;k++)
282 1 {
283 2 P0=a;
284 2 delay(50);
285 2 a++;
286 2 }
287 1 }
288
289
290 void adzhuanhuan()
291 {uchar a,b,A1,A2,A2t,A3,adval;
292 1 b=0xf0;
293 1 while(b==0xf0)
294 1 {
295 2 wela=1;
296 2 P0=0; //选通ADCS
297 2 adwr=0; //AD写入(随便写个什么都行,主要是为了启动AD转换)
298 2 _nop_();
299 2 adwr=1;
300 2 P0=0xff; //关闭ADCS
301 2 delay(10);
302 2 wela=0; //关闭有AD片选信号锁存器的锁存端以防止在操作数码管时使AD的片选发生变化
303 2 for(a=20;a>0;a--) //需要注意的是ADC0804在写和读之间的时间间隔要足够长否则无法读出数据
C51 COMPILER V7.50 CESHI 08/08/2008 15:17:00 PAGE 6
304 2 { //这里把显示部分放这里的原因也是为了增加写读之间的时间间隔
-
-
305 3 display(A1,A2,A3);
306 3 } //送去显示各位。
307 2 wela=1; //重新打开有AD片选信号锁存器的锁存端
308 2 P1=0xff; //读取P1口之前先给其写全1
309 2 P0=0; //选通ADCS
310 2 adrd=0; //AD读使能
311 2 adval=P1; //AD数据读取赋给P1口
312 2 adrd=1;
313 2 P0=0xff; //关闭ADCS
314 2 adwr=0;
315 2 P1=adval; //同时把AD的值送八个发光二极显示
316 2 A1=adval/100; //分出百,十,和个位
317 2 A2t=adval%100;
318 2 A2=A2t/10;
319 2 A3=A2t%10;
320 2
321 2 P3=0xf0;//扫描键盘 看是否有见键按下
322 2 b=P3&0xf0;
323 2 }
324 1 }
325 //4*4键盘检测程序,按下键后相应的代码显示在数码管上
326 void display1(unsigned char num)
327 {
328 1 P0=table[num];
329 1 // P0=0xff;
330 1 dula=1;
331 1 dula=0;
332 1 P0=0xc7;
333 1 wela=1;
334 1 wela=0;
335 1 }
336 void jianpan()
337 {unsigned char temp,key;
338 1 dula=0;
339 1 wela=0;
340 1 while(1)
341 1 {
342 2 P3=0xfe;
343 2 temp=P3;
344 2 temp=temp&0xf0;
345 2 if(temp!=0xf0)
346 2 {
347 3 delay(10);
348 3 if(temp!=0xf0)
349 3 {
350 4 temp=P3;
351 4 switch(temp)
352 4 {
353 5 case 0xee:key=0;
354 5 break;
355 5 case 0xde: key=1;
356 5 break;
357 5 case 0xbe:key=2;
358 5 break;
359 5 case 0x7e:key=3;
360 5 break;
361 5 }
362 4 while(temp!=0xf0)
363 4 {
C51 COMPILER V7.50 CESHI 08/08/2008 15:17:00 PAGE 7
364 5 temp=P3;
365 5 temp=temp&0xf0;
366 5 beep=0;
367 5 }
368 4 beep=1;
369 4 display1(key);
370 4
371 4 P1=0xfe;
372 4 }
373 3 }
374 2 P3=0xfd;
375 2 temp=P3;
376 2 temp=temp&0xf0;
377 2 if(temp!=0xf0)
378 2 {
379 3 delay(10);
380 3 if(temp!=0xf0)
381 3 {
382 4 temp=P3;
383 4 switch(temp)
384 4 {
385 5 case 0xed: key=4;
386 5 break;
387 5 case 0xdd:key=5;
388 5 break;
389 5 case 0xbd: key=6;
390 5 break;
391 5 case 0x7d: key=7;
392 5 break;
393 5 }
394 4 while(temp!=0xf0)
395 4 {
396 5 temp=P3;
397 5 temp=temp&0xf0;
398 5 beep=0;
399 5 }
400 4 beep=1;
401 4 display1(key);
402 4 P1=0xfc;
403 4 }
404 3 }
405 2 P3=0xfb;
406 2 temp=P3;
407 2 temp=temp&0xf0;
408 2 if(temp!=0xf0)
409 2 {
410 3 delay(10);
411 3 if(temp!=0xf0)
412 3 {
413 4 temp=P3;
414 4 switch(temp)
415 4 {
416 5 case 0xeb:key=8;
417 5 break;
418 5 case 0xdb:key=9;
419 5 break;
420 5 case 0xbb:key=10;
421 5 break;
422 5 case 0x7b:key=11;
423 5 break;
424 5 }
425 4 while(temp!=0xf0)
C51 COMPILER V7.50 CESHI 08/08/2008 15:17:00 PAGE 8
426 4 {
427 5 temp=P3;
428 5 temp=temp&0xf0;
429 5 beep=0;
430 5 }
431 4 beep=1;
432 4 display1(key);
433 4 P1=0xf8;
434 4 }
435 3 }
436 2 P3=0xf7;
437 2 temp=P3;
438 2 temp=temp&0xf0;
439 2 if(temp!=0xf0)
440 2 {
441 3 delay(10);
442 3 if(temp!=0xf0)
443 3 {
444 4 temp=P3;
445 4 switch(temp)
446 4 {
447 5 case 0xe7: key=12;
448 5 break;
449 5 case 0xd7: key=13;
450 5 break;
451 5 case 0xb7:key=14;
452 5 break;
453 5 case 0x77:key=15;
454 5 break;
455 5 }
456 4 while(temp!=0xf0)
457 4 {
458 5 temp=P3;
459 5 temp=temp&0xf0;
460 5 beep=0;
461 5 }
462 4 beep=1;
463 4 display1(key);
464 4 P1=0xf0;
465 4 }
466 3 }
467 2 if(ss1==0)
468 2 {
469 3 delay(5);
470 3 if(ss1==0);
471 3 delay(5);
472 3 tmpchange();
473 3 }
474 2 }
475 1 }
476
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1132 ----
CONSTANT SIZE = 26 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 14
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILER V7.50 CESHI 08/08/2008 15:17:00 PAGE 9
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -