找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7835|回复: 2
打印 上一主题 下一主题
收起左侧

requires ANSI-style prototype c语言程序有个错误找不出来,附加了程序,求大神看看

[复制链接]
跳转到指定楼层
楼主
ID:102197 发表于 2016-1-7 09:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
compiling 11.c...
11.c(4): warning C318: can't open file 'lcd_1602.h'
11.c(5): warning C318: can't open file 'key.h'
11.c(6): warning C318: can't open file 'IIC_24C04.h'
11.C(55): warning C206: 'lcd_init': missing function-prototype
11.C(56): warning C206: 'IIC_24C04_Init': missing function-prototype
11.C(62): warning C206: 'keys_scan': missing function-prototype
11.C(120): warning C206: 'sendstring': missing function-prototype
11.C(120): error C267: 'sendstring': requires ANSI-style prototype
11.c(360): warning C316: unterminated conditionals
11.c - 1 Error(s), 8 Warning(s).
有一个错误怎么都看不出来,求大神帮下忙 啊
#include<reg52.h>
#include<string.h>
#include<intrins.h>
#include<lcd_1602.h>
#include<key.h>
#include<IIC_24C04.h>
#define uchar unsigned char
#define uint unsigned int
uchar pre_keyno=16,keyno=16;
uchar code Title_Text[]="your password...";
uchar DSY_BUFFER[16]="                ";
uchar userpassword[7]="       ";
uchar IIC_Password[7];
uchar lS_Valid_User=0;
uchar i=0;
void display_string(uchar *str,uchar lineno);
void beep();
uchar Clear_Password();
sbit LED_OPEN=P2^0;
sbit BEEP=P3^7;
void delay(uint x)
{
      uchar i;
      while (x--)
      for(i=0;i<120;i++);
}
void beep()
{
uchar i;
for(i=0;i<100;i++)
   {
    BEEP=~BEEP;
   }
   BEEP=0;
}
void clear_password()
{     
      uchar i;
      for(i=0;i<6;i++)
      {
        userpassword[ i]=' ';
                DSY_BUFFER[ i]=' ';
      }
}
void init_main()
{
  P0=0xFF;
  P1=0xFF;
  P2=0xFF;
  TMOD=0x02;
  TH0=175;
  TL0=175;
  TR0=1;
  delay(10);
  lcd_init();
  IIC_24C04_Init();
}
void key_main()
{
P1=0xF0;

if(P1!=0xF0) keyno=keys_scan();
if(pre_keyno!=keyno)
{
  if(i<=6)
  {
     switch(keyno)
     {
        case 0:  case 1: case 2: case 3: case 4:
        case 5:  case 6: case 7: case 8: case 9:
                if(i<=6)
                {
                   if(i==0)display_string("         ",0x40);
           userpassword[ i]=keyno+'0';
                   userpassword[i+1]=' ';
                   DSY_BUFFER[ i]='*';
                   DSY_BUFFER[i+1]=' ';
                   display_string(DSY_BUFFER,0x40);
                   i++;
            }
             break;
         case 10:
                 if(strcmp(userpassword,IIC_Password)==0)
                         {
                            LED_OPEN=0;
                                Clear_Password();
                                display_string("Unlock ok!    ",0x40);
                                lS_Valid_User=1;
                         }
                      else
                         {
                           LED_OPEN=1;
                           Clear_Password();
                           display_string("ERROR!    ",0x40);
                           lS_Valid_User=0;
                         }
                         i=0;
                         break;
        case 11:
                LED_OPEN=1;
                        Clear_Password();
                        display_string(Title_Text,0x00);
                        display_string("    ",0x40);
                        i=0;
                        lS_Valid_User=0;
                        break;
        case 12:
                    if(!lS_Valid_User)display_string("No rights !",0x40);
                        else
                        {
                     i=0;
                         display_string("New Password:  ",0x00);
                     display_string("               ",0x40);
                        }
                        break;
        case 13:
                    if(!lS_Valid_User)display_string("No rights !",0x40);
                        else
{
                          sendstring(0xa0,0,userpassword,6);
                          recstring(0xa0,0,IIC_Password,6);
                          IIC_Password[6]='';
                          i=0;
                          display_string(Title_Text,0x00);
                          display_string("Password Saved! ",0x40);
}
                        break;
        case 14:
                    i=0;
                        Clear_Password();
                           display_string("            ",0x40);
灯    }
  }
     beep();
         pre_keyno=keyno;
}鸣器

   beep();
   delay(100)
   P1=0xF0;
   while(P1==0xF0);
}
void main()
{
   init_main();
   display_string(Title_Text,0x00);
   recstring(0xa0,0,IIC_Password,6)
   IIC_Password[6]='\0';
   while(l)
   {
    key_main();
    P1=0xF0;
    while(P1!=0xF0);
    while(P1==0xF0);
   }
}
#ifndef  _LCD1602_H_
#define  _LCD1602_H_
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P2^1;
sbit rw=P2^2;
sbit eq=P2^3;
void delay_lcd(uchar n)
{
uchar i;
while(n--)
{
   for(i=0;i<250;i++)
   {
     _nop_(); _nop_(); _nop_(); _nop_();
   }
}
}
bit lcd_bz()
{
  bit result;
  rs=0;
  rw=1;
  eq=1;
  _nop_(); _nop_();_nop_(); _nop_();
  result=(bit)(P0&0x80);
  eq=0;
  return result;
}
void lcd_wcmd(uchar cmd)
{
rs=0;
rw=0;
eq=0;
P0=cmd;
eq=1;
delay_lcd(1);
eq=0;
}
void lcd_wdat(uchar dat)
{
while(lcd_bz());
rs=1;
rw=0;
P0=dat;
delay_lcd(1);
eq=1;
eq=0;
}
void lcd_init()
{
lcd_wcmd(0x38);
while(lcd_bz());
lcd_wcmd(0x0c);
lcd_wcmd(0x06);
lcd_wcmd(0x01);
}
void display_string(uchar *str,uchar lineno)
{
uchar i;
lcd_wcmd(0x80+lineno);
for (i=0;i<16;i++)
{
  lcd_wdat(str[ i]);
}
}
  #endif
  #ifndef _key_H_
  #define _key_H_
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay_key(uint x)
{
  uchar i;
  while (x--)
  for(i=0;i<120;i++);
}
uchar keys_scan()
{
uchar temp,k;
P1=0x0F;
delay_key(2);
temp=P1^0x0F;
switch(temp)
{
  case 1: k=0;break;
  case 2: k=1;break;
  case 4: k=2;break;
  case 8: k=3;break;
  default: break;
}
P1=0xF0;
delay_key(2);
temp=(P1>>4)^0x0F;
switch(temp)
{
  case 1: k+=0;break;
  case 2: k+=4;break;
  case 4: k+=8;break;
  case 8: k+=12;break;
  default: break;
}
return k;
}
#ifndef _IIC_24C04_H_
#define _IIC_24C04_H_
#include<reg52.h>
#include<string.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define delay4us();
sbit SCL=P3^2;
sbit SDA=P3^3;
void start()
{
SDA=1;SCL=1;delay4us();
SDA=0;delay4us();SCL=0;
}
void stop()
{
SDA=0;SCL=1;delay4us();
SDA=1;delay4us();SCL=0;
}
void IIC_24C04_Init()
{
SCL=0;stop();
}
void ACK()
{
SDA=0;SCL=1;delay4us();
SDA=1;SCL=0;
}
void no_ACK()
{
SDA=1;SCL=1;delay4us();
SDA=0;SCL=0;
}
uchar recbyte()
{
uchar i;rd;
rd=0x00;
SDA=1;
for(i=0;i<8;i++)
{
SCL=1;rd<<=1;rd|=SDA; delay4us(); SCL=0;delay4us();
}
SCL=0;                                                   
delay4us();
return rd;
}
uchar sendbyte(uchar wd)
{
uchar i;
bit  ACK0;
for(i=0;i<8;i++)
{
  SDA=(bit)(wd&0x80);
  _nop_();_nop_();SCL=1;delay4us();SCL=0;wd<<=1;
}
delay4us();
SDA=1;
SCL=1;
delay4us();
ACK0=!SDA;
SCL=0;
delay4us();
return ACK0;
}
uchar sendstring(uchar slave,uchar subaddr,uchar *buffer,uchar N);
{
uchar i;
start();
if(!sendbyte(slave))
  return 0;
if(!sendbyte(subaddr))
  return 0;
for(i=0;i<N-1;i++)
    {
          if(!sendbyte(buffer[ i])) return 0;
        }
        stop();
        return 1;
}
uchar recstring(uchar slave,uchar subaddr,ucahr *buffer,uchar N);
{
uchar i;
start();
if(!sendbyte(slave))  return 0;
if(!sendbyte(subaddr))        return 0;
start();
if(!sendbyte(slave+1))  return 0;
for(i=0;i<N-1;i++)
  {
    buffer[ i]=recbyte();
        ACK();
  }
  buffer[N-1]=recbyte();
  no_ACK();
  stop();
  return 1;
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2016-1-10 01:36 | 只看该作者
11.C(120): error C267: 'sendstring': requires ANSI-style prototype 是说sendstring可能没有定义,你应该上传完整的压缩包,才能方便查找呢.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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