找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 21754|回复: 9
收起左侧

为什么编译后显示123.C(34): warning C206: 'delay': missing function-prototype

[复制链接]
ID:121974 发表于 2016-5-19 15:51 | 显示全部楼层 |阅读模式
#include<reg51.h>
#include<intrins.h>
#include<absacc.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
sbit ADCS=P3^5;
sbit ADDI=P3^7;
sbit ADDO=P3^7;
sbit ADCLK=P3^6;
uint x1,y1,z1=0,w1;
uchar ad_data,k,n,m,e,num,s;
uint temp1;
sbit beep=P3^0;
char press_data;
float press;
uchar ad_alarm,temp;
uchar abc[5]={48,46,48,48,48};
uchar price_all[6]={48,48,46,48,48,48};
float price_unit[19]={5,5,2,8,3,6,4,5,5,8,6,8,7,9,8,0,9,5,0};
uchar price_danjia[5]={48,46,48,48,48};
float price;
uint price_temp1,price_temp2;
uchar Adc0832(uchar channel);
void alarm(void);
void data_pro(void);
void dalay(uint k);
void keyscan();
void disp_init();
void price_jisuan();

void main(void)
{
     delay(500);
     //ad_data=0;
     lcd_init();
     disp_init();
     delay(1000);
     clear_lcd(0,4,40);
     clear_lcd(16,0,100);
     clear_lcd(28,0,40);
     clear_lcd(44,0,100);
     clear_lcd(56,0,40);
     clear_lcd(72,0,100);
     clear_lcd(84,0,40);
     clear_lcd(100,0,100);
     clear_lcd(112,0,40);
     write_lcd(0,8,"实用电子秤");
     while(1)
     {
         ad_data=Adc0832(0);
         alarm();
         data_pro();
         keyscan();
         wrire_lcd(40,0,"------------------------------");
         wrire_lcd(56,0,"单 价:");
         wrire_lcd(56,11,price_danjia);
         wrire_lcd(56,20,"元/千克");
         wrire_lcd(72,20,"总重量:");
         wrire_lcd(72,11,abc);
         wrire_lcd(72,20,"千克");
         wrire_lcd(88,0,"总 价");
         price_jisuan();
         wrire_lcd(88,10,price_all);
         wrire_lcd(88,20,"元");
            }
}
//读ADC0832函数
uchar Adc0832(uchar channel)
{
      uchar i=0;
      uchar j
      uint dat=0;
      uchar udat=0;
      if(channel==0)channel=2;
      if(channel==1)channel=3;
      ADDI=1;
      _nop_();
      _nop_();
      ADCS=0;//拉低CS端
      _nop_();
      _nop_();
      ADCLK=1;  
      _nop_();
      _nop_();
      ADCLK=0;
      _nop_();
      _nop_();
      ADCLK=1;
      ADDI=channel&0x1;      
      _nop_();
      _nop_();
      ADCLK=0;
      _nop_();
      _nop_();
      ADCLK=1;
      ADDI=(channel>>1)&0x1;
      _nop_();
      _nop_();
      ADCLK=0;
      ADDI=1;
      _nop_();
      _nop_();
      dat=0;
      for(i=0;i<8;i++)
      {
         dat=ADD0;
         ADCLK=1;
      _nop_();
      _nop_();
      ADCLK=0;
      _nop_();
      _nop_();
      dat<<=1;
      if(i==7)dat|=ADD0;
      }
      for(i=0;i<8;i++)
      {
          j=0;
          j=j|ADD0;//
          ADCLK=1;  
          _nop_();
          _nop_();
          ADCLK=0;
          _nop_();
          _nop_();
          i=j<<7;
          nadt=nadt|j;
          if(i<7)ndat>>=1;
       }
       ADCS=1;//拉高CS端
       ADCLK=0;
       ADD0=1;
       dat<<=8;
       dat|=dat;
       return(dat);
    }
    void data_pro(void)
    }
       uint;
       if(0<ad_data<256)
       {
           int vary=ad_data;
           press=(0.019531*vary);
           temp1=(int)(press*1000);      
           abc[0]=temp1/1000+48;
           abc[1]=46;
           abc[2]=(temp1%1000)/100+48;
           abc[3]=((temp1%1000)%100)/10+48;
           abc[4]=((temp1%1000)%100)%10+48;
                }
}
//报警子函数
void alarm(void)
{
    if(ad_data>=253)
            beep=0;
        else
                beep=1;
}
void delay(uint k)
{
    uint i,j;
        for(i=0;i<k;i++)
            for(j=0;j<100;j++);
}
//开机欢迎界面
void disp_init()
{
    write_lcd(56,8,"欢迎使用电子秤");
lcd(112,0,"设计日期:2016年5月");
}
//键盘服务程序
void keyscan()
{
   P1=0xfe;
   temp=P1;
   temp=temp&0xf0;
   while(temp!=0xf0)
   {
         delay=(5);
         temp=P1;
         temp=temp&0xf0;
         while(temp!=0xf0)
         {
                     temp=P1;
                         switch(temp)
                         {
                             case  0xee:num=1,price=price_unit[0],write_lcd(24,0,"名称:杏仁");
                                     break;
                             case  0xde:num=2,price=price_unit[1],write_lcd(24,0,"名称:李子");
                                     break;
                                 case  0xbe:num=3,price=price_unit[2],write_lcd(24,0,"名称:草莓");
                                     break;
                                 case  0x7e:num=4,price=price_unit[3],write_lcd(24,0,"名称:葡萄");
                                     break;
                          }
                          while(temp!=0xf0)
                          {
                               temp=P1;
                                   temp=temp&0xf0;
                          }
                 }
         }
     P1=0xfd;
   temp=P1;
   temp=temp&0xf0;
   while(temp!=0xf0)
   {
         delay=(5);
         temp=P1;
         temp=temp&0xf0;
         while(temp!=0xf0)
         {
                     temp=P1;
                         switch(temp)
                         {
                             case  0xee:num=5,price=price_unit[4],write_lcd(24,0,"名称:西瓜");
                                     break;
                             case  0xde:num=6,price=price_unit[5],write_lcd(24,0,"名称:苹果");
                                     break;
                                 case  0xbe:num=7,price=price_unit[6],write_lcd(24,0,"名称:雪梨");
                                     break;
                                 case  0x7e:num=8,price=price_unit[7],write_lcd(24,0,"名称:核桃");
                                     break;
                          }
                          while(temp!=0xf0)
                          {
                               temp=P1;
                                   temp=temp&0xf0;
                          }
                 }
         }
     P1=0xfb;
   temp=P1;
   temp=temp&0xf0;
   while(temp!=0xf0)
   {
         delay=(5);
         temp=P1;
         temp=temp&0xf0;
         while(temp!=0xf0)
         {
                     temp=P1;
                         switch(temp)
                         {
                             case  0xee:num=9,price=price_unit[8],write_lcd(24,0,"名称:香蕉");
                                     break;
                             case  0xde:num=10,price=price_unit[9],write_lcd(24,0,"名称:商品代码");
                                     break;
                                 case  0xbe:num=11,price=price_unit[1],write_lcd(24,0,"名称:大米");
                                     break;
                                 case  0x7e:num=12,price=price_unit[2],write_lcd(24,0,"名称:星星");
                                     break;
                          }
                          while(temp!=0xf0)
                          {
                               temp=P1;
                                   temp=temp&0xf0;
                          }
                 }
         }
     P1=0xf7;
   temp=P1;
   temp=temp&0xf0;
   while(temp!=0xf0)
   {
         delay=(5);
         temp=P1;
         temp=temp&0xf0;
         while(temp!=0xf0)
         {
                     temp=P1;
                         switch(temp)
                         {
                             case 0xe7;num=13,price_nuit[3];
                                  break;
                                 case 0xd7;num=14,price_nuit[4];
                                  break;
                             case 0xb7;num=15,price_nuit[5];
                                  break;
                             case 0x77;num=16,price_nuit[6];
                                  break;
             }
         while(temp!=0xf0)
             {
                  temp=P1;
              temp=temp&0xf0;
                 }
              }
     }
         price_temp1=(int)(price*1000;
         price_danjia[0]=price_temp1/1000+48;
         price_danjia[1]=46;
         price_danjia[2]=(price_temp1%1000)/100+48;
         price_danjia[3]=((price_temp1%1000)%100)/10+48;
         price_danjia[4]=((price_temp1%1000)%100)%10+48;
     }
         void price_jisuan()
         {
         price_temp2=(int)(price*1000;
         price_danjia[0]=price_temp2/10000+48;
         price_danjia[1]=(price_temp2%1000)/10+48;
         price_danjia[2]=46;
         price_danjia[3]=(price_temp2%1000)/100+48;
         price_danjia[4]=((price_temp2%1000)%100)/10+48;
         price_danjia[5]=((price_temp2%1000)%100)%10+48;
     }


回复

使用道具 举报

ID:121974 发表于 2016-5-19 16:15 | 显示全部楼层
有没有大神会啊
回复

使用道具 举报

ID:66032 发表于 2016-5-19 18:37 | 显示全部楼层
  delay=(5);这个语法是错误的, 只能是delay(5);
回复

使用道具 举报

ID:121974 发表于 2016-5-19 18:59 | 显示全部楼层
mqwu 发表于 2016-5-19 18:37
delay=(5);这个语法是错误的, 只能是delay(5);

哦 可是还是会出现123.C(34): warning C206: 'delay': missing function-prototype和123.C(34): error C267: 'delay': requires ANSI-style prototype
回复

使用道具 举报

ID:82134 发表于 2016-5-19 22:11 | 显示全部楼层
本帖最后由 ankun11 于 2016-5-19 22:12 编辑

在申明中
void dalay(uint k);
改成
void delay(uint k);
回复

使用道具 举报

ID:118641 发表于 2016-5-19 23:24 | 显示全部楼层
delay(5);
回复

使用道具 举报

ID:97438 发表于 2016-5-20 08:40 | 显示全部楼层
1函数声明和函数实现不一样,目测你打错了,声明的时候应该是void delay(uint k);而不是void dalay(uint k);
2delay=(5);---------delay(5);
回复

使用道具 举报

ID:92781 发表于 2016-5-20 13:41 | 显示全部楼层
函数定义  void dalay(uint k);   你定义的是  dalay  不是delay  ,错别字了a和e的区别  
回复

使用道具 举报

ID:110895 发表于 2016-6-25 18:12 | 显示全部楼层
delay()没有定义,前面定义的是:dalay().
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表