找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3300|回復: 1
打印 上一主題 下一主題
收起左側(cè)

Keil報錯error C267 請大神告知解決方法,謝謝!

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:868056 發(fā)表于 2020-12-26 00:00 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

  1. #include<reg51.h>
  2. #include<E:/lmj/LCD1602.H>
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. sbit K1=P1^0;
  6. sbit K2=P1^1;
  7. sbit K3=P1^2;
  8. sbit K4=P1^3;

  9. uchar int_time;
  10. uchar minute;
  11. uchar hour;
  12. uchar code date[]="LuoMengJie";
  13. uchar code time[]="23:59:55";
  14. uchar second=55,minute=59,hour=23;

  15. void delay10ms()
  16. {
  17.     uchar x,y;
  18.     for(x=0;x<100;x++)
  19.         for(y=0;y<100;y++);
  20. }

  21. void clock_init()
  22. {
  23.     uchar i,j;
  24.         for(i=0;i<10;i++)
  25.         {
  26.             write_data(date[i]);
  27.         }
  28.         write_com(0xC0);
  29.         for(j=0;j<8;j++)
  30.         {
  31.             write_data(time[j]);
  32.         }

  33.         P1=0xff;
  34. }

  35. void clock_write(uint s,uint m,uint h)
  36. {
  37.     write_sfm(0x40,h);
  38.         write_sfm(0x43,m);
  39.         write_sfm(0x46,s);
  40. }

  41. void main()
  42. {
  43.     init1602();//1602初始化
  44.         clock_init();//時鐘初始化
  45. //時鐘設(shè)置
  46.         TMOD=0x01;//設(shè)置定時計數(shù)器控制寄存器
  47.         EA=1;//中斷允許總開關(guān)
  48.         ET0=1;//定時計數(shù)器0允許開關(guān)
  49.         TH0=(65536-46483)/256;
  50.         TL0=(65536-46483)%256;
  51.         TR0=1;//開始計時
  52.         int_time=0;
  53.         second=55;
  54.         minute=59;
  55.         hour=23;
  56. //按鍵設(shè)置
  57.     EX0=1;//外部中斷0允許開關(guān)
  58.         
  59.         while(1)
  60.         {
  61.             clock_write(second ,minute ,hour);
  62.                 if(K1==0)
  63.                 {
  64.                     delay10ms();
  65.                         if(K1==0)//按鍵1按下,進入編輯模式
  66.                         {
  67.                             while(1)                           
  68.                             {
  69.                                 if(K2==0)
  70.                                     {
  71.                                             delay10ms();
  72.                                         if(K2==0)//按鍵2按下
  73.                                             {
  74.                                                 hour++;
  75.                                 if(hour==24)
  76.                                 {
  77.                                     hour=0;
  78.                                 }   
  79.                                             }
  80.                                                 delay(300);
  81.                                     }
  82.                                     if(K3==0)
  83.                                     {
  84.                                             delay10ms();
  85.                                         if(K3==0)//按鍵3按下
  86.                                             {
  87.                                                 minute++;
  88.                                                         if(minute==60)
  89.                                 {
  90.                                     minute=0;
  91.                                         hour++;
  92.                             }
  93.                                 if(hour==24)
  94.                                 {
  95.                                     hour=0;
  96.                                 }
  97.                                             }
  98.                                                 delay(300);
  99.                                     }
  100.                                     if(K4==0)
  101.                                     {
  102.                                             delay10ms();
  103.                                         if(K4==0)//按鍵4按下
  104.                                                 {
  105.                                                     break;
  106.                                                 }
  107.                                                 delay(300);
  108.                                     }
  109.                             }
  110.                         }
  111.                 }
  112.         }
  113. }

  114. void TO_interserve(void) interrupt 1 using 1
  115. {
  116.     int_time++;
  117.         if(int_time==20)
  118.         {
  119.             int_time=0;
  120.                 second++;
  121.         }
  122.         if(second==60)
  123.         {
  124.             second=0;
  125.                 minute++;
  126.         }
  127.         if(minute==60)
  128.         {
  129.             minute=0;
  130.                 hour++;
  131.         }
  132.         if(hour==24)
  133.         {
  134.             hour=0;
  135.         }
  136.         TH0=(65536-46083)/256;
  137.         TL0=(65536-46083)%256;
  138. }
復制代碼


頭文件:
  1. #ifndef LCD_CHAR_1602_2005_4_9
  2. #define LCD_CHAR_1602_2005_4_9
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. sbit lcdrs=P2^0;
  6. sbit lcdrw=P2^1;
  7. sbit lcden=P2^2;

  8. void delay(uint z)
  9. {
  10.     uint x,y;
  11.         for(x=z;x>0;x--)
  12.         for(y=110;y>0;y--);
  13. }

  14. void write_com(uchar com)
  15. {
  16.     lcdrw=0;
  17.         lcdrs=0;
  18.         P0=com;
  19.         delay(5);
  20.         lcden=1;
  21.         delay(5);
  22.         lcden=0;
  23. }                        

  24. void write_data(uchar date)
  25. {
  26.     lcdrw=0;
  27.         lcdrs=1;
  28.         P0=date;
  29.         delay(5);
  30.         lcden=1;
  31.         delay(5);
  32.         lcden=0;
  33. }

  34. void init1602()
  35. {
  36.     lcdrw=0;
  37.         lcden=0;
  38.         write_com(0x3c);
  39.         write_com(0x0c);
  40.         write_com(0x06);
  41.         write_com(0x01);
  42.         write_com(0x80);
  43. }

  44. void write_string(uchar *pp,uint n)
  45. {
  46.     int i;
  47.         for(i=0;i<n;i++)
  48.         write_data(pp[i]);
  49. }

  50. void write_sfm(uchar add,uchar date)
  51. {
  52.     uchar shi,ge;
  53.         shi=date/10;
  54.         ge=date%10;
  55.         write_com(0x80+add);
  56.         write_data(0x30+shi);
  57.         write_data(0x30+ge);
  58. }
  59. #endif
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:466730 發(fā)表于 2020-12-27 01:43 | 只看該作者
頭文件沒有加進去,<>換成"",一般用相對路徑就可以了吧

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表