微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > PCB设计问答 > PCB设计学习讨论 > 程序编译发生错误

程序编译发生错误

时间:10-02 整理:3721RD 点击:
#include  <reg51.h>
#include  <absacc.h>
#include  <intrins.h>
#define  uchar  unsigned char
#define  uint         unsingned int
sbit   T_CLK=P1^3;
sbit   T_IO=P1^2;
sbit   T_RST=P1^4;
sbit   RS=P1^7;
sbit   RW=P1^6;
sbit   EN=P1^5;
sbit   ACC7= ACC^7;
sbit   ACC0=ACC^0;
uchar  datechar[] = {"DATE: "};
uchar  timechar[] = {"TIME:"};
uchar  datebuffer[10]={0x32,0x30,0,0,0x2d,0,0,0x2d,0,0}; //定义日历显示缓冲区
uchar  timebuffer[8]={0,0,0x3a,0,0,0x3a,0,0,};           //定义时间缓冲区
uchar  weekbuffer={0x30};
//往DS1302写入一个字节
void writeB(uchar ucDa)
{
  uchar i;
  ACC=ucDa;
  for(i=8;i>0;i--)
  {
          T_IO=ACC0;
    T_CLK=1;
        T_CLK=0;
        ACC=ACC>>1;
  }
}
//从DS1302读取一个字节
uchar ReadB(void)
{
  uchar i;
  for(i=8;i>0;i--)
  {
    ACC=ACC>>1;
        ACC7= T_IO;
        T_CLK=1;
        T_CLK=0;
  }
  return(ACC);
}
//向DS1302某地址写入命令,数据
void v_W1302(uchar ucAddr,uchar ucDa)
{
   T_RST=0;
   T_CLK=0;
   _nop_();
   _nop_();
   T_RST=1;
   _nop_();
   _nop_();
   writeB(ucAddr);
   writeB(ucDa);
   T_CLK=1;
   T_RST=0;
}
//读取DS1302某地址的数
uchar uc_R1302(uchar ucAddr)
{
   uchar ucDa=0;
   T_RST=0;
   T_CLK=0;
   T_RST=1;
   writeB(ucAddr);
   ucDa=ReadB();
   T_CLK=1;
   T_RST=0;
   return(ucDa);
}
//检查忙函数
void fbusy()
{
  P2=0xff;
  RS=0;
  RW=1;
  EN=1;
  EN=0;
  while(( P2&0x80))
  {
            EN=0;
          EN=1;
  }
}
//写命令函数
void wc51r(uchar j)
{
     fbusy();
         EN=0;
         RS=0;
         RW=0;
         EN=1;
         P2=j;
         EN=0;
}
//写数据函数
void wc51ddr(uchar j)
{
     fbusy();
         EN=0;
         RS=1;
         RW=0;
         EN=1;
         P2=j;
         EN=0;
}
//LCD1602初始化
void init()
{
     wc51r(0x01);
         wc51r(0x38);
         wc51r(0x0c);
         wc51r(0x06);
}
//延时函数
void  delay(uint i)
{
        uint y,j;
        for (j=0;j<i;j++){
        for (y=0;y<0xff;y++){;}
        }
}
void main (void)
{
        uchar i;
        uchar data temp;
        SP=0x50;
        delay(10);
        init();
        wc51r(0x80);
        for(i=0;i<5;i++)
        wc51ddr(datechar);
        wc51r(0xc0);
        for(i=0;i<5;i++)
        wc51ddr(timechar);
        v_W1302(0x8e,0);
        v_W1302(0x8c,0x11);
        v_W1302(0x8A,0x03);
        v_W1302(0x88,0x06);
        v_W1302(0x86,0x29);
        v_W1302(0x84,0x16);
        v_W1302(0x82,0x25);
        v_W1302(0x80,0x30);
        v_W1302(0x8e,0x80);
}
     while(1)
     {
                  temp=uc_R1302(0x8d);  、、//   读年
                 datebuffer[2]=0x30+temp/16;
                 datebuffer[3]=0x30+temp%16;
                  temp=uc_R1302(0x8B);           //   读星期
                 weekbuffer[2]=0x30+temp
                 temp=uc_R1302(0x89);           //   读月
                 datebuffer[5]=0x30+temp/16;
                 datebuffer[6]=0x30+temp%16;
                 temp=uc_R1302(0x87);           //   读日
                 datebuffer[8]=0x30+temp/16;
                 datebuffer[9]=0x30+temp%16;
                 temp=uc_R1302(0x85);           //   读小时
                 temp=temp & 0x7f;
                 timebuffer[0]=0x30+temp/16;
                 timebuffer[1]=0x30+temp%16;
                 temp=uc_R1302(0x83);           //   读分
                 timebuffer[3]=0x30+temp/16;
                 timebuffer[4]=0x30+temp%16;
                 temp=uc_R1302(0x81);           //        读秒
                 temp=temp & 0x7f;
                 timebuffer[6]=0x30+temp/16;
                 timebuffer[7]=0x30+temp%16;
                 wc51r(0x86);                           //        第一行后面显示日历
                 for (i=0;i< 10;i++)      wc51ddr(datebuffer);
                  wc51r(0xc6);                           //        第二行后面显示时间
                 for (i=0;i< 8;i++)       wc51ddr(timebuffer);
                 wc51ddr(0x20);
                 wc51ddr(weekbuffer);                 //         显示星期
     }

编译就会出现TEST1.C(175): error C141: syntax error near 'for'
TEST1.C(175): error C141: syntax error near '=', expected ')'
TEST1.C(175): error C129: missing ';' before '<'
Target not created

符号错~
在175行附近,我不造那里是第175行哇,这里太多了,你双击这个错误就会跳转过去~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top