找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5243|回复: 6
收起左侧

error C141: syntax error near '=', expected ')'

[复制链接]
ID:984784 发表于 2021-12-3 17:27 | 显示全部楼层 |阅读模式
是一个基于热敏电阻PT100的51单片机温度采集系统程序,拜托各位大神看看,要怎么改啊

#include <reg51.h> //头文件
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
sbit STAR=P2^4;
sbit EOC=P2^6;
sbit CLOCK=P2^5;
sbit OE=P2^7;
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
uchar getdata;
double change;
long int temp;
uchar code table1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40};//0-9,-,无小数点
uchar code table2[]={0xbF,0x86,0xdB,0xcF,0xe6,0xeD,0xfD,0x87,0x7fF,0xeF};//0-9,小数点
uchar dispbuf[6];

/******************************/
//延时函数,带有入口参数m,代表ms毫秒
//

    void delay_ma(uchar m);
           unsigned int i, j;
        #define for unsigned int
        for(i=0;i<m;i++)
        {
        for(j=0;j<125;j++)
        {;}
        }

/*********************************/

/*********************************/
void display[]
{
         PO=table1[dispbuf[6]];//显示百位
         P20=0;
         P21=1;
         P22=1;
         P23=1;        
     delay_ma[3];
         PO=0800;
         PO=table1[dispbuf[0]];//显示十位
         P20=1;
         P21=0;
     P22=1;
         P23=1;
         delay_ma[3];
         PO=0800;
         PO=table2[dispbuf[1]];//显示个位
     P20=1;
         P21=0;
         P22=1;
         P23=1;
     delay_ma[2];
         PO=0800;
}
/***********************************/

/***********************************/
void PT100()
{
   double PR,aveT,aT,deal,U,aR;//
   U=5.0/255.0*getdata;
   aR=(5.0/255.0*getdata)/(5.0/142.29);
   PR=142.29-aR;
   aveT=42.29/110.0;
   aT=PR/aveT;
   deal=10*(110.0-aT);
   temp=(long int)deal;
   if(U<3.52&&U>2.82)
{
   aveT=(100.0-80.31)/50.0;
   PR=100.0-aR;
   aT=10*(PR/aveT);
   temp=(long int)aT;
}

}

void Delay(unsigned int i)


   dea
   temp=(long int)

         {
                        dispbuf[0]=temp%25;
                        dispbuf[3]=temp/15%10;
                        dispbuf[3]=temp/256%10;
                        dispbuf[3]=temp/2000;
                }
                else
                {
                        dispbuf[0]=0;
                        dispbuf[3]=0;
                        dispbuf[3]=0;
                        dispbuf[3]=0;
                }

display();

/*******************************/
//
//
/*******************************/
main()
{
  TMOD=0x10;                           //定时器0,工作在定时器方式
  TH1=(65536-200)/256;                //0x3c
  TL1=(65536-200)%256;      //0xbo
  EA=1;                                 //开中断允许
  ET1=1;                         //打开(允许)定时器1中断
  TR1=1;                         //开始(启动)定时器1
  while(1)
{
  STAR=0;
  OE=0;
  STAR=1;
  STAR=0;
  while(EOC==0)
{
  OE=1;
  delay_ms(10);
  getdata=P1;
  OE=0;
  PT100();
}
}
}
51hei图片20211203171800.jpg

TEST.C(27): error C141: syntax error near '=', expected ')'
TEST.C(27): error C129: missing ';' before '<'

程序运行一直显示上面这个错误,就是这句 for(i=0;i<m;i++)  语句有错误,要怎么改啊



回复

使用道具 举报

ID:313048 发表于 2021-12-3 18:00 | 显示全部楼层
好好看自己的delay函数,这么明显的。
回复

使用道具 举报

ID:624769 发表于 2021-12-3 18:48 | 显示全部楼层
说句实话, 你这代码没救了, 先学一点编程基础,然后一个字一个字的自己码吧,反正,我对能帮你把代码修正到你可以正常使用是一定信心都没有。
delay 函数就不说了,楼上已经说了,但是,改了那里一样还是错。
随便翻翻,就一堆,关键还都是基础错误。
error.png


回复

使用道具 举报

ID:908826 发表于 2021-12-3 20:56 | 显示全部楼层
我能看到的是PO,没见过用这个的,是P0还是PO,,,,,,,,,,还有一个是delay延时这里也很离谱。
回复

使用道具 举报

ID:140644 发表于 2023-12-28 15:27 | 显示全部楼层
年老眼花没看清
回复

使用道具 举报

ID:69038 发表于 2023-12-28 22:29 | 显示全部楼层
#define for unsigned int ???这是什么鬼?
回复

使用道具 举报

ID:1107339 发表于 2023-12-31 21:24 | 显示全部楼层
因为这个注释有问题,应该为//define for unsigned int
#define for unsigned int
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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