找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5335|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

warning C206: 'ScanKeyboard': missing function-prototype,這個到底要怎么改呀

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:453409 發(fā)表于 2018-12-24 14:20 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
  1. #include<reg52.h>
  2. #define LCD1602_DB P0
  3. sbit LCD1602_RS=P1^0;
  4. sbit LCD1602_RW=P1^1;
  5. sbit LCD1602_E=P1^5;
  6. void InitLcd1602();
  7. void delay_ms(unsigned int d);
  8. void ScanKeyboard();
  9. void LcdShowStr(unsigned char x,unsigned char y,unsigned char*str);
  10. void LcdShowDat(unsigned char x,unsigned char y,unsigned char dat);
  11. unsigned char cnt=0;
  12. unsigned char w=0,key=0;
  13. unsigned char code KeyCode[]=
  14. {0xe7,0xd7,0xb7,0x77,0xeb,0xdb,0xbb,0x7b,0xed,0xdd,0xdb,0xbd,0x7d,0xee,0xde,0xbe,0x7e};
  15. void main()
  16. {        
  17.         unsigned char temp;
  18.         unsigned char str[]="hello";
  19.         TMOD=0X01;
  20.         TH0=0X4C;
  21.         TL0=0X00;
  22.         IE=0X82;
  23.         TR0=1;
  24.         InitLcd1602();
  25.         LcdShowStr(2,0,str);
  26.         while(1);
  27.         {
  28.         ScanKeyboard();
  29.         temp=w;
  30.         LcdShowDat(4,1,temp);
  31.         }
  32. }
  33. void LcdWaitReady()
  34. {
  35.         unsigned char sta;
  36.         LCD1602_DB=0XFF;
  37.         LCD1602_RS=0;
  38.         LCD1602_RW=1;
  39.         do{
  40.                 LCD1602_E=1;
  41.                 sta=LCD1602_DB;
  42.                 LCD1602_E=0;
  43.         }
  44.         while(sta&0x80);
  45. }
  46. void LcdWriteCmd(unsigned char cmd)
  47. {
  48.         LcdWaitReady();
  49.         LCD1602_RS=0;
  50.         LCD1602_RW=0;
  51.         LCD1602_DB=cmd;
  52.         LCD1602_E=1;
  53.         LCD1602_E=0;
  54. }
  55. void LcdWriteDat(unsigned char dat)
  56. {
  57.         LcdWaitReady();
  58.         LCD1602_RS=1;
  59.         LCD1602_RW=0;
  60.         LCD1602_DB=dat;
  61.         LCD1602_E=1;
  62.         LCD1602_E=0;
  63. }
  64. void LcdSetCursor(unsigned char x,unsigned char y)
  65. {
  66.         unsigned char addr;
  67.         if(y==0)
  68.         addr=0x00+x;
  69.         else
  70.         addr=0x40+x;
  71.         LcdWriteCmd(addr|0x80);
  72. }
  73. void LcdShowStr(unsigned char x,unsigned char y,unsigned char*str)
  74. {
  75.         LcdSetCursor(x,y);
  76.         while(*str!='\0')
  77.         {
  78.                 LcdWriteDat(*str++);
  79.         }
  80. }
  81. void InitLcd1602()
  82. {
  83.         LcdWriteCmd(0x38);
  84.         LcdWriteCmd(0x0c);
  85.         LcdWriteCmd(0x06);
  86.         LcdWriteCmd(0x01);
  87. }
  88. void ScanKeyboard()
  89. {
  90.         unsigned char scan1,scan2,keyboard;
  91.         unsigned char i;
  92.         P2=0xf0;
  93.         scan1=P2;
  94.         if((scan1&0xf0)!=0xf0)
  95.         {
  96.                 delay_ms(10);
  97.                 scan1=P2;
  98.                 if((scan1&0xf0)!=0xf0)
  99.                 {
  100.                         P2=0xf0;
  101.                         scan2=P2;
  102.                         keyboard=scan1|scan2;
  103.                         while((P2&0x0f)!=0x0f)
  104.                         for(i=0;i<=15;i++)
  105.                         {
  106.                                 if(keyboard==KeyCode[i])
  107.                                 key=i;
  108.                         }
  109.                 }
  110.         }
  111. }
  112. void clock()interrupt 1
  113. {
  114.         unsigned char i,r;
  115.         cnt++;
  116.         TH0=0X4C;
  117.         TL0=0X00;
  118.         if(i==1)
  119.         {
  120.                 w=0x20;
  121.         }
  122.         if(i==2)
  123.         {
  124.                 for(r=0;cnt<=20;r++)
  125.                 {
  126.                  w=0x61+0x01;
  127.                  if(r==3)
  128.                  {
  129.                          r=0;
  130.                          w=0x61;
  131.                  }
  132.                 }
  133.         }
  134. }
  135. void delay_ms(unsigned int d)
  136. {
  137.         unsigned char i;
  138.         while(d--)
  139.         {                                                                                                                                       
  140.                 for(i=0;i<=110;i++);
  141.         }
  142. }
復(fù)制代碼

ABC.C(90): warning C206: 'ScanKeyboard': missing function-prototype

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:451718 發(fā)表于 2018-12-24 15:23 | 只看該作者
預(yù)定義ScanKeyboard();的時候分號是個全角的!  分號,分號,分號錯了。!
回復(fù)

使用道具 舉報

板凳
ID:449525 發(fā)表于 2018-12-24 22:34 來自觸屏版 | 只看該作者
robinsonlin 發(fā)表于 2018-12-24 15:23
預(yù)定義ScanKeyboard();的時候分號是個全角的!  分號,分號,分號錯了。!

好眼力!我會把keil設(shè)置下,中英文顯示不一樣,一眼就看出來了
回復(fù)

使用道具 舉報

地板
ID:448597 發(fā)表于 2018-12-25 10:52 | 只看該作者
呵呵,確實(shí)好眼力,建議復(fù)制別人程序時可以復(fù)制后在WORD中進(jìn)行選擇性粘貼,選無格式粘貼,在復(fù)制到KEIL中。
回復(fù)

使用道具 舉報

5#
ID:174087 發(fā)表于 2018-12-25 19:23 | 只看該作者
robinsonlin 發(fā)表于 2018-12-24 15:23
預(yù)定義ScanKeyboard();的時候分號是個全角的!  分號,分號,分號錯了。!

哈哈哈哈哈哈那是真的牛逼!
回復(fù)

使用道具 舉報

6#
ID:357520 發(fā)表于 2018-12-26 12:27 | 只看該作者
robinsonlin 發(fā)表于 2018-12-24 15:23
預(yù)定義ScanKeyboard();的時候分號是個全角的!  分號,分號,分號錯了!。

忍不住想叫你一聲大神
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表