找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1905|回复: 1
收起左侧

123.C(42): error C267: 'LCD_disp_ListChar': requires ANSI-style prototype

[复制链接]
ID:197948 发表于 2017-5-7 23:16 | 显示全部楼层 |阅读模式
#include<reg52.h>
#include"DS18B20.h"
#include"LCD1602.h"
#include"key.h"                                                                                                                               
#include"serial.h"
#include"GSM.h"
#include"PID.h"


bit flag_30s;       
unsigned  char         counter_100,counter_6;
sbit SSR =P1^3;                         
sbit  LED_wait=P1^7;
unsigned  char tmp_set;
unsigned char idata tmp_now_ASC[10]={0X20,'1','5','.','5',0X20,0Xdf,'C',0x20,'\0'};
unsigned char idata tmp_set_ASC[10]={0X20,'2','0','.','0',0X20,0Xdf,'C',0x20,'\0'};
bit get_str;
bit disp_sta;
bit system_sta;
bit term_on;
unsigned char tmp_now;  //
//unsigned  char flag;         //
void set_T0()
{
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
}
void T0_init()
{
  IT0=1;
  EX0=1;
  TMOD=0x01;
  set_T0();
  EA=1;
  ET0=1;
  TR0=1;
}
void display(void)
{
   if(disp_sta)
        {
    LCD_disp_ListChar(0,0,"set_T:");
        LCD_disp_ListChar(7,0,tmp_set_ASC);
       
        LCD_disp_ListChar(0,1,"cur_T:");
        LCD_disp_ListChar(7,1,"tmp_now_ASC");
        }
}
void tmp_now2ASC(void)
{
     tmp_now_ASC[0]=tmp_now[0];
         if(tmp_now[1]/10)
            tmp_now_ASC[1]=tmp_now[1]/10+0x30;
         else
             tmp_now_ASC[1]=0x20;
                 tmp_now_ASC[2]=tmp_now[1]%10+0x30;
                 tmp_now_ASC[4]=tmp_now[2]+0x30;
}
//void LCD_disp_ListChar()
main()
{  
          counter_100=0;
          counter_6=0;
          flag_30s=0;
          SSR=0;
          disp_sta=1;
      system_sta=1;
          LED_wait=1;
          term_on=0;
          tmp_set=20;
          get_str=0;
          
          T0_init();
          T1_init();
          LCD_init();
          serial_T2_init();
          GSM_init();
          
          PIDInit(&spid);
          spid.Proportion=10;
          spid.Integral=8;
          spid.Derivative=6;
          spid.SetPoint=100;
          
          while(1)
          {
            LED_wait=system_sta;
                if(get_str)
                {
                   get_str=0;
                      str_dispose();
                }
                          if(systen_sta)
                          {
                                   if(flag_30s)
                                           {
                                            unsigned char TH=110,TL=-20;
                                                flag_30s=0;
                                                  EA=0;
                                                  ReadTemperature(TH,TL,0x3f);
                                                  EA=1;
                                                  tmp_now2ASC();
                                                         display();
                                                   compare_temper();
                                                }
                                }
                                          else
                                          {
                                             SSR=0;
                                                    clean_disp();
                                           }
           }
}
void timer0_int(void) interrupt 1 using 1
{
       set_T0();
           if(count_100++<high_time)
           SSR=1;
           else
           SSR=0;
           if(counter_100>99)
           {
              courter_100=0;
                    counter_6++;
                        if(counter_6>5)
                        {
                          counter_6=0;
                            flag_30s=1;
                        }
                }
}
sbit DQ=p1^2;
unsigned char idata tmp_now[3];
extern unsigned nt rin;
void delay_18B20(unsigned inti)
{
     while(i--);
}
void Init_DS18B20(void)
{
   unsigned char x=0;
   DQ=1;
   delay_18B20(8);
   DQ=0;
   delay_18B20(80);
   DQ=1;
   delay_18B20(14);
   x=DQ;
   delay_18B20(20);
}
unsigned char ReadOneChar(void)
{
    unsigned char i=0;
        unsigned char dat=0;
        for(i=8;i>0;i--)
        {
          DQ=0;
          dat>>=1;
          DQ=1;
          if(DQ)
          dat|=0x80;
          delay_18B20(4);
          }
        return(dat);
}
void WriterOneChar(unsigned char dat)
{
  unsigned char i=0;
  for(i=8;i>0;i--)
  {
       DQ=0;
           DQ=dat&0x01;
           delay_18B20(5);
           DQ=1;
           dat>>=1;
           }
}
void ReadTemperature(char TH,char TL,unsigned char RS)
{
      unsigned char TMPH,TMPL,temp;
          Init_DS18B20();
          WriteOneChar(0xCC);
          WriteOneChar(0x4E);

          WriteOneChar(TH);
          WriteOneChar(TL);
          WriteOneChar(RS);

          delay_18B20(80);
          Init_DS18B20();
          WriteOneChar(0xCC);
          WriteOneChar(0x44);

          delay_18B20(80);
          Init_DS18B20();
          WriteOneChar(0xCC);
          WriteOneChar(0xBE);
          delay_18B20(80);

          TMPL=ReadOneChar();
          TMPH=ReadOneChar();
          if(TMPH>0x0f)
          {
              tmp_now[0]='-';
                  TMPH=~TMPH;
                  TMPL=~TMPL;
                  if(TMPL==255)
                  {
                    TMPL=0;
                        TMPH++;
                        }
                        else TMPL++;
           }
           else tmp_now[0]=0x20;
           temp=(TMPH<<4)|(TMPL>>4);
           tmp_now[1]=temp;
           temp=(TMPL&0x0c)>>2;
           tmp_now[2]=temp*10/4;
           rin=temp*100;
}


#define uchar unsigned char
#define uint unsigned int
#define LCD_DB P0

sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1;
sbit LCD_E=P2^2;

void delay_n40us(uint n)
{
      uint i;
          uchar j;
          for(i=n;i>0;i--)
            for(j=0;j<2;j++)
}
void LCD_write_command(uchar dat)
{
       LCD_DB=dat;
           LCD_RS=0;
           LCD_RW=0;
           LCD_E=1;
           LCD_E=0;
           delay_n40us(1);
}

void LCD_write_data(uchar dat)
{
      LCD_DB=dat;
          LCD_RS=1;
          LCD_RW=0;
          LCD_E=1;         
          LCD_E=0;
          delay_n40us(1);
}
void LCD_disp_char(uchar x,uchar y,uchar dat)
{
      if(y==0) x|=0x80;
          else x|=0xC0;
          LCD_write_command(x);
          LCD_write_data(dat);
}
void LCD_disp_ListChar(uchar x,uchar y,uchar *p)
{
       while(*p!='\0')
           {
              if(0==y) x|=0x80;
                  else x|=0xC0;
                  LCD_write_command(x);
                  LCD_write_data(*p);
                  x++;
                  p++;
                 }
}
void LCD_init(void)       
{
        LCD_write_command(0x38);
                LCD_write_command(0x0c);
                LCD_write_command(0x06);
                LCD_write_command(0x01);
                delay_n40us(100);
}
void clean_disp()
{
        LCD_write_command(0x01);
                delay_n40us(100);
}

sbit key_sta=P2^4;
sbit key_up=P2^5;
shit key_down=P2^6;
extern bit disp_sta;
extern bit system_sta;
extern unsigned char tmp_set;
extern unsigned char idata tmp_set_ASC[10];

void delay_ms(unsigned char ms)
{
   unsigned char t;
   while(--ms)
   for(t=0;t<114;t++)
}
void tmp_set2ASC()
{
    if(tmp_set/10)
          tmp_setASC[1]=tmp_set/10+0x30;
          else
           tmp_set_ASC[1]=0x20;
           tmp_set_ASC[2]tmp_set%10+0x30;
}
void key_int(void) interrupt 0 using 2
{
     EA=0;
         delay_ms(15);
         if(key_sta&key_up&key_down) return;
         
         if(!key_sta)
         {
            clean_disp();
                  if(system_sta&(!disp_sta))
                  disp_sta=!disp_sta;
                  else
                    system_sta=!system_sta;
          }
            else if(!key_up)
                {
                  if(tmp_set<22)
                    tmp_set++;
                   tmp_set2ASC();
                 }
                 else
                 {
                   if(tmp_set>16)
                   tmp_set--;
                   tmp_set2ASC();
                  }
                  EA=1;
}

extern unsigned char idata str[]        ;
extern bit get_str;
unsigned char str_count=0;

void serial_T2_init()
{
     T2CON=0x30;
         SCON=0x40;
         RCAP2H=0xff;RCAP2L=0xdc;
         TH2=0xff;TL2=0xdc;
         ES=1;
         EA=1;
         REN=1;
         TR2=1;
}
void set_T1()
{
     TH1=0x00;
         TL1=0x00;
}
void T1_init()
{
     TMOD=0x11;
         set_T1();
         ET1=1;
         TR1=0;
}
void send_str(unsigned char *p)
{
     ES=0;
         while(*p!='\0')
         {
           SBUF=*p++;
            while(!TI);
                TI=0;
          }
          ES=1;
}
void serial_int(void) interrupt 4 using 2
{
      RI=0;
           str[str_count++]=SBUF;
           set_T1();
           TR1=1;
}
void T1_int(void) interrupt 3 using 3
{
      TR1=0;
          str[str_count]='\0';
          str_count=0;
          get_str=1;
}

#include<string.h>

#define AT      0
#define ATE      1
#define CMGF      2
#define CPMS       3
#define CNMI       4

sbit term_on=P1^4;
extern bit system_sta;
extern bit disp_sta;
extern unsigned char tmp_set;
extern unsigned char idata tmp_set_ASC[10];
unsigned char idata sta[70];
unsigned char idata phone_number[12];

void send_AT_command(unsigned char AT_command)
{
    ES=0;
        switch(AT_command)
        {
           case AT:  send_sta("AT\r");
                      delay_ms(100);
                            break;
                case ATE:  send_str("ATE1\r");
                            delay_ms(100);
                                             break;
                case CMGF:   send_str("AT+CMGF=1\r");
                              delay_ms(100);
                                             break;
                case CPMS:    send_str("AT+CPMS=\"SM\",\"SM\",\"SM\"\r");
                               delay_ms(100);
                                                break;
                case CNMI:     send_str(AT+CNMI="1,2,0,0,0\r");
                                delay_ms(100);
                                                     break;
                default:   break;
                }
                ES=1;
}
void send_SM(unsigned char *numb,unsigned char *SM_str)
{
        send_str("AT+CMGS=\"");
                seng_str(numb);
                send_str("\"r");
                delay_ms(100);
               
                send_str(SM_str);
                SBUF=0x1A;
                delay_ms(100);
}

void str_dispose(void)
{
       unsigned char *p_str;
           unsigned char i;
          
           p_str=strstr(str,"+CMT:");
           if(p_str)
           {
             disp_sta=0;
                 clean_disp();
                 LCD_disp_ListChar(0,0,"SMS:");
                 p_str+=10;
                 for(i=0;i<11;i++)
                 {
                      phone_number[i]=*p_str++;
                          LCD_disp_char(i+5,0,phone_number[i]);
                  }
                  phone_number[i]='\0';
                  p_str+=27;
                  i=0;
                  while(*p_str!='\r')}LCD_disp_char(i++,1,*p_str++);
                  p_str=strstr(str,"on");
                  if(p_str)
                  {
                     system_sta=1;
                         p_str+=2;
                         tmp_set_ASC[1]=*p_str;tmp_set_ASC[1]=*p_str++;
                         tmp_set_ASC[2]=*p_str;tmp_set_ASC[2]=*p_str++;
                         tmp_set=(tmp_set_ASC[1]-0x30)*10+(tmp_set_ASC[2]-0x30);
                //         send_SM_(phone_number,"zdf");
                         }
                         if(strstr(str,"off")) system_sta=0;
                }
  void GSM_init(void)
  {
        term_on=1;
                delay_ms(100);
                term_on=0;
                send_AT_command(AT);
                seng_AT_command(ATE);
                send_AT_command(CMGF);
                send_AT_command(CPMS);
                send_AT_command(CNMI);
}

#include<string.h>
struct PID {
unsigned int SetPoint;
unsigned int Proportion;
unsigned int Integral;
unsigned int Derivative;
unsigned int LastError;
unsigned int PrevError;
unsigned int SumErrors
};
struct PID spid;
unsigned ine rout;
unsigned int rin;
unsigned char high_time,low_time,count=0;
extern unsigned char tmp_set;
Initialize PID structure
void PIDInit(struct PID *pp)
{
   memset(pp,0,sizeof(struct PID));
}
unsigned int PIDCalc(struct PID *pp,unsigned int NexPoint)
{
     unsigned int dError,Error;
         Error=pp->SetPoint-NexPoint;
         pp->SumError+=Error;
         dError=pp->LastError-pp->PrevError;
         pp->PrevError=pp->LastError;
         pp->LastError=Error;
         return(pp->Proportion*Error
         +pp->Integral*pp->SumError
         +pp->Derivative*dError);
}
compare_temper()
{
      unsigned char i;
          if(tmp_now[0]=='-') high_time=100;
          else
           {
             if(tmp_now[1]<tmp_set)
                   {
                     if(tmp_set-tmp_now[1]>1)
                         {
                            high_time=100;
                                low_time=0;
                                }
                                else
                                {
                                   for(i=0;i<10;i++)
                                   {
                                      ReadTemperature(110,-20,0x3f);
                                          rout=PIDCalc(&spid,rin);
                                          }
                                          if(high_time<=100)
                                          high_time=(unsigned char)(rout/800);
                                          else
                                          high_time=100;
                                          low_time=(100-high_time);
                                          }
                                   }
                                 else
                                 {
                                   high_time=0;
                                   low_time=100;
                                   }
                                 }
        }
                  
compiling 123.c...
123.c(2): warning C318: can't open file 'DS18B20.h'
123.c(3): warning C318: can't open file 'LCD1602.h'
123.c(4): warning C318: can't open file 'key.h'
123.c(5): warning C318: can't open file 'serial.h'
123.c(6): warning C318: can't open file 'GSM.h'
123.c(7): warning C318: can't open file 'PID.h'
123.C(42): warning C206: 'LCD_disp_ListChar': missing function-prototype
123.C(42): error C267: 'LCD_disp_ListChar': requires ANSI-style prototype
123.c - 1 Error(s), 7 Warning(s).

求各位大神帮忙看一下,急用,在这我先谢谢了?




回复

使用道具 举报

ID:197948 发表于 2017-5-7 23:19 | 显示全部楼层
拜托了各位
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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