单片机/MCUwilliam hill官网
直播中

勿忘本

6年用户 27经验值
私信 关注
[问答]

有!!!的那行出现这种错误→456.c(66): error C267: 'in1602': requires ANSI-style prototype

#include                              //包含访问SFR的库函数
***it RST=P1^0;                                     //定义RST为P1.0(DSl302复位/片选端)
***it SCLK=P1^1;                                    //定义SCLK为P1.1(DS1302时钟端)
***it IO=P1^2;                                      //定义IO为P1.2(DS1302数据端)
***it E=P1^3;                                       //定义E为P1.3(LCD1602使能片选端)
***it RW=P1^4;                                      //定义RW为P1.4(LCD1602读/写控制端)
***it RS=P1^5;                                      //定义RS为P1.5(LCD1602寄存器选择端)
***it ACC7 = ACC^7;                                 //定义ACC7为累加器A第7位ACC.7
void Wr8b (unsigned char d)                        //DS1302写8位数据子函数
{
  unsigned char i;                     
  SCLK=0;
  for (i=0; i<8; i++ )
  {
    IO=d&0x01;
    SCLK=1;
    d>>=1;
    SCLK=0;
  }
}
unsigned char Rd8b ()                              //DS1302读8位数据子函数
{
  unsigned char i;
  IO=1;
  for(i=0;i<8;i++)
  {
    ACC>>=1;
    ACC7=IO;
    SCLK=1;
    SCLK=0;
  }
   return ACC;
}
void Bst_Rd (unsigned char t[])                    //DS1302突发读时钟子函数。形参t[]
{
  unsigned char i;                                 //定义循环序数i
  RST=1;                                           //片选有效
  Wr8b(0xbf);                                      //写入突发写时钟控制字0xbf
  for(i=0;i<7;i++)                                 //循环,依次连续写入7字节时钟数据
    t[i]=Rd8b();                            //读出时钟数据,并存t[i]
  RST=0;                                           //7字节时钟数据读完,RST复位
}
void inl602 (unsigned char x)                      //LCD1602并行数据输出子函数
{
  unsigned char t;
  RW=0;
  P0=x;
  for(t=0;t<10;t++);
  E=1;
  for (t=0;t<10;t++);
  E=0;
}
void initl602 ()                                   //LCD1602初始化设置子函数
{
  RS=0;
  inl602 (0x38);
  inl602 (0x06);
  inl602 (0x0c);
  inl602 (0x03);
}
void wrl602(unsigned char d[],a)                   //写LCD1602子函数
{
  unsigned char i;
  unsigned int t;
  RS=0;
  in1602 (a);              !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  for (t=0;t<300;t++);
  RS=1;
  for (i=0;i<16;i++)
   {
     inl602 (d[i]);
     for (t=0;t<300;t++);
   }
}

回帖(2)

勿忘本

2018-1-12 22:04:48
in1602(a)出错
举报

人中狼

2018-1-13 08:19:51
你的笔误太多,最好能利用下划线把字母和数字分开,或者用大写字母。
void inl602 (unsigned char x)
in1602 (a);   
一个是L,一个是1
举报

更多回帖

发帖
×
20
完善资料,
赚取积分