📄 text1.lst
字号:
318 1 }
319
320
321
322
323 /************向液晶片写数据***************/
324 void lcd_wrdata( uchar lcddata)
325 {
326 1
327 1 while(lcd_busy());
328 1 lcd_bus=lcddata;
329 1 rs=1;
330 1 rw=0;
331 1 _nop_();
332 1 e=1;
333 1 _nop_();
334 1 _nop_();
335 1 e=0;
336 1 }
337
338
339 void lcd_ini(void)
340 {
341 1
342 1 lcd_wrcmd(0x38);
343 1 delay(100);
344 1 lcd_wrcmd(0x0c);
345 1 delay(100);
346 1 lcd_wrcmd(0x06);
347 1 delay(100);
348 1 lcd_wrcmd(0x01);
349 1 delay(100);
350 1 }
351
352 uchar key()
353 {
354 1 uchar keycode=0xff,temp,i;
355 1 key_bus=0x0f;
356 1 temp=key_bus&0x0f;
357 1 if(temp!=0x0f) //有键按下
358 1 {
359 2 key_bus=0x7f;
360 2 for(i=0;i<4;i++)
361 2 {
362 3 temp=key_bus&0x0f;
363 3 if(temp==0x07)
364 3 {
365 4 keycode=i*4;
C51 COMPILER V7.20 TEXT1 07/31/2007 15:31:44 PAGE 7
366 4 break;
367 4 }
368 3 else if(temp==0x0b)
369 3 {
370 4 keycode=i*4+1;
371 4 break;
372 4 }
373 3 else if(temp==0x0d)
374 3 {
375 4 keycode=i*4+2;
376 4 break;
377 4 }
378 3 else if(temp==0x0e)
379 3 {
380 4 keycode=i*4+3;
381 4 break;
382 4 }
383 3 key_bus=(key_bus>>1)|0x80;
384 3 }
385 2
386 2 while((key_bus&0x0f)!=0x0f) //等待释放
387 2 {
388 3 key_bus=0x0f;
389 3 }
390 2
391 2
392 2 }
393 1 return keycode;
394 1 }
395
396
397 void display(uchar cmd,uchar code *str)
398 {
399 1 uchar i=0;
400 1 lcd_wrcmd(cmd);
401 1 while(str[i]!='\0')
402 1 {
403 2 lcd_wrdata(str[i]);
404 2 i++;
405 2 }
406 1 }
407 main()
408 {
409 1 uint i;
410 1 uchar tt;
411 1 uchar code str[]="IDT7132 CE=1";
412 1 en=0;ce=0;
413 1 for(i=0;i<2048;i++) sin1[i]=Rom[i];
414 1 ce=1;
415 1 lcd_ini();
416 1 temp = sin1[1];
417 1 lcd_wrcmd(0xc0);
418 1 lcd_wrdata(0x30+temp/100);
419 1 lcd_wrdata(0x30+temp/10%10);
420 1 lcd_wrdata(0x30+temp%10);
421 1
422 1 temp=sin1[44];
423 1 lcd_wrcmd(0xc4);
424 1 lcd_wrdata(0x30+temp/100);
425 1 lcd_wrdata(0x30+temp/10%10);
426 1 lcd_wrdata(0x30+temp%10);
427 1
C51 COMPILER V7.20 TEXT1 07/31/2007 15:31:44 PAGE 8
428 1 display(0x80,str);
429 1 en=1;
430 1 while(1)
431 1 {
432 2 tt=key();
433 2 if(tt==0)
434 2 {
435 3
436 3 en=0;ce=0;
437 3 for(i=0;i<2048;i++) sin1[i]=Rom1[i];
438 3 ce=1;en=1;
439 3 }
440 2 else if(tt==1)
441 2 {
442 3 en=0;ce=0;
443 3 for(i=0;i<2048;i++) sin1[i]=Rom[i];
444 3 ce=1; en=1;
445 3 }
446 2 else if(tt==2)
447 2 {
448 3 en=0;ce=0;
449 3 for(i=0;i<2048;i++) sin1[i]=(Rom[i]/2+Rom1[i]/2);
450 3 ce=1; en=1;
451 3 }
452 2 else if(tt==3)
453 2 {
454 3 en=0;ce=0;
455 3 for(i=0;i<2048;i++) sin1[i]=Rom[i]*Rom1[i];
456 3 ce=1; en=1;
457 3 }
458 2 else if(tt==4)
459 2 {
460 3 en=0;ce=0;
461 3 for(i=0;i<2048;i++) sin1[i]=Rom[i]-Rom1[i];
462 3 ce=1; en=1;
463 3 }
464 2
465 2 }
466 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 723 ----
CONSTANT SIZE = 4109 ----
XDATA SIZE = 2048 ----
PDATA SIZE = ---- ----
DATA SIZE = 1 2
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 + -