找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1677|回复: 3
收起左侧

报错18b20.c(16): error C129: missing ';' before 'flag1'

[复制链接]
ID:783097 发表于 2021-5-13 23:46 | 显示全部楼层 |阅读模式
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define unit unsigned int
  5.         
  6. #include"1602.h"
  7. #include"DS18B20.h"
  8.         

  9. //#include<485.h>
  10.         sbit warning=P3^6;
  11. sbit yellowled=P3^7;//
  12. //uchar flag1;   //sign of the result positive or negative
  13. uncharj;
  14. int temper[4];
  15. uchar code str4_sht11[]="max:min:";
  16. sbit k1=P2^5;//set
  17. sbit k2=P2^6;//+
  18. sbit k3=P2^7;//-
  19. sbit sound=P3^5;
  20. char max=35;
  21. char min=15;
  22. uchar change_flag;

  23. uchar flag;
  24. void delay1(unit count)//delay1
  25. {
  26.         unit i;
  27.         while (count)
  28.         {i=200;
  29.                 while(i>0)
  30.                         i--;
  31.                 count--;
  32.         }
  33. }

  34. void serial_int()
  35. {
  36.         TMOD=0X01;//t1
  37.         TH0=0xF0;//2400bit/s
  38.         TL0=0x0F;
  39.         TR0=1;
  40.         ET0=0;
  41. }

  42. void timer_isr()interrupt 1
  43. {TH0=0xF0;
  44.         TL0=0x0F;
  45.         sound=~sound;
  46. }
  47. void key1()
  48. {
  49.         if(k1==0)
  50.         {
  51.                 change_flag++;
  52.                 if(change_flag>2)
  53.                         change_flag=0;
  54.         }
  55.         while(k1==0);
  56. }
  57. void key2()
  58. {
  59. if(k2==0)
  60. {
  61. if(change_flag==1)
  62. max++;
  63. if(change_flag==2)
  64. min++;
  65. }
  66. while(k2==0);
  67. }

  68. void key3()
  69. {if(k3==0)
  70. {
  71. if(change_flag==1)
  72. max--;
  73. if(change_flag==2)
  74. min--;
  75. }
  76. while(k3==0);
  77. }

  78. void key()
  79. {
  80. key1();
  81. key2();
  82. key3();
  83. }
  84. void main()
  85. {
  86. uchar i,a=1,b=1 ;
  87. warning=0;

  88. serial_int();
  89. yellowled=1;
  90. 1602_init();
  91. for(i=0;i<4;i++)
  92. {
  93. tmpchange(i);
  94. temper[i]=tmp(i);
  95. }

  96. dispay_1602();
  97. while(1)
  98. {if(change_flag==0)
  99. {if(a==1)
  100. {b=1;
  101. a=0;
  102. write_lcdcom(0*01);
  103. dispaly_1602();
  104. }
  105. tmpchange(j);
  106. for(i=0;i<100;i++)
  107. {
  108. key();
  109. temper[j]=tmp(j);
  110. lcd_printf(j,temper[j],0*cd);
  111. }
  112. j++;
  113. if(j>3)
  114. j=0;

  115. if(((temper[j]>max)||(temper[j]<min))&&(temper[j]<850))
  116. {
  117. warningyellowled=0;
  118. RST=1;}
  119. else
  120. {
  121. RST=0;
  122. waring=0;
  123. yellowled=1;
  124. }}
  125. else
  126. {
  127. key();
  128. if(b==1)
  129. {
  130. a=1;
  131. b=0;
  132. write_lcdcom(0*01);
  133. write_lcdcom(0*80);
  134. for(i=0;i<32;i++)
  135. {
  136.         write_lcddate(str4_sht11[i]);
  137.         
  138. }
  139. }
  140. else
  141. lcd_set(max,min);
  142. }
  143. }
  144. }

  145. 为啥1.c(97): error C141: syntax error near '_init', expected ';'30);

  146. #include<reg52.h>
  147. #include<intrins.h>
  148. #define uchar unsigned char
  149.         #define unit unsigned int
  150.                 sbit lcdrs=P2^0;
  151.         sbit lcdrw=P2^1;
  152.         sbit lcden=P2^2;
  153. uchar code str1[]={0x10,0x06,0x09,0x08,0x09,0x08,0x06,0x00};
  154. uchar code str6_sht11[]="The present temp is";
  155.         //uchar code str4_sht11[]="max:  min:";
  156.         //uchar code str2_sht11[]="temp=";
  157.         uchar code str7_shtll[]="NO. ";
  158.         uchar change_flag;
  159.         void delay_1602(unit delay_time)//
  160.         {
  161.         for (delay_time>0;delay_time--);
  162.         }               
  163.         void write_lcdcom(uchar date)//
  164.         {
  165.         lcdrw=0;
  166.         lcdrs=0;
  167.         delay_4602(5);
  168.         P0=date;
  169.         lcden=1;
  170.         delay_1602(5);
  171.         lcden=0;
  172.         }
  173.         void write_lcddate(uchar lcddate)
  174.         {
  175.         lcdrw=0;
  176.         lcdrs=1;
  177.         delay_1602(5);
  178.         P0=lcddate;
  179.         lcden=1;
  180.         delay_1602(5);
  181.         lcden=0;
  182.         }
  183.         void lcd_init()
  184.         {
  185.         write_lcdcom(0x38);
  186.         //write_lcdcom(0x38);
  187.         //write_lcdcom(0x38);
  188.         write_lcdcom(0x06);
  189.         write_lcdcom(0x0c);
  190.         write_lcdcom(0x01);
  191.         }
  192.         void display_1602()
  193.         {
  194.         uchar i;
  195.         lcdrw=0;
  196.         lcdrs=0;
  197.         lcden=0;
  198.         delay_1602(10);
  199.         write_lcdcom(0x80);
  200.         /**/for(i=0;i<32,i++)
  201.         {
  202.         write_lcddate(str6_shtll[i]);
  203.         }
  204.         delay_1602(10);
  205.         write_lcdcom(0xc0);
  206.         for(i=0;i<32;i++)
  207.         {
  208.         write_lcddate(str7_sht11[i]);
  209.         }
  210.         lcdrw=1;
  211.         lcdrs=1;
  212.         lcden=1;
  213.         }
  214.         void lcd_printf(uchar number,unit x,uchar add)
  215.         {
  216.         uchar x1,x2,x3,x4;
  217.                 x1=x/1000;
  218.                 x2=x%1000/100;
  219.                 x3=x%100/10;
  220.                 x4=x%10;
  221.                 write_lcdcom(0xc4);
  222.                 write_lcddate(number+0x30);
  223.                 write_lcdcom(0xca);
  224.                 if(flag==1)
  225.                         write_lcddate('-');
  226.                 else
  227.                         write_lcddate('');
  228.                 write_lcdcom(add);
  229.                 write_lcdcom(x1+0x30);
  230.                 write_lcddate(x2+0x30);
  231.                 write_lcddate('.');
  232.                 write_lcddate(x4+0x30);
  233.                 write_lcddate('');
  234.                 write-lcddate('C');
  235.         }
  236.         void lcd_set(char max,char min)
  237.         {
  238.         uchar x1,x2,x3,x4;
  239.         uchar flag_max,flag_min;
  240.         if(max<0)
  241.         {
  242.         flag_max=1;
  243.         max=-max;
  244.         }
  245.         else
  246.         flag_max=0;
  247.         if(min<0)
  248.         {
  249.         flag_min=1;
  250.         min=-min;
  251.         }
  252.         else
  253.         flag_min=0;
  254.         x1=max/10;
  255.         x2=max%10;
  256.         x3=min/10;
  257.         x4=min%10;
  258.         write_lcdcom(0xc4);
  259.         if(flag_max==1)
  260.         write_lcddate('-')
  261.         write_lcddate(x1+0x30);
  262.         write_lcddate(x2+0x30);
  263.         write_lcdcom(0xD0);
  264.         if(flag_min==1)
  265.         write_lcddate('-');
  266.         write_lcddate(x3+0x30);
  267.         write_lcddate(x4+0x30);
  268.         }
  269. lcd.c(16): error C141: syntax error near ')', expected ';'

  270. #include<reg52.h>
  271. #include<intrins.h>

  272. /*
  273. sbitDs1=P1^0;
  274. sbitDs2=P1^1;
  275. sbitDs3=P1^2;
  276. sbitDs4=P1^3;
  277. sbitDs5=P1^4;
  278. sbitDs6=P1^5;
  279. */
  280. #define BIT1(x)(1<<x)
  281. #define DS P1
  282. #define NBIT1(x)~BIT1(x)

  283. uchar flag;


  284. void delay (uint count) //delay
  285. {
  286. uint i;
  287. while(count)
  288. {i=200
  289. while(i>0)
  290. i--;
  291. count--;
  292. }
  293. }

  294. uchar NO_number;
  295. void dsreset(uchar m)
  296. {
  297. uint i;
  298. DS&=NBIT1(m);
  299. i=103;
  300. while(i>0)i--;//>480us,reset
  301. DS|=BIT1(m);//keep free
  302. i=4;
  303. while(i>0)i--;
  304. }
  305. bit tmpreadbit(uchar m) //read a bit
  306. {uint i;
  307. bit dat;
  308. DS&=NBIT(m);i++;
  309. DS|=BIT1(m);
  310. //a=DS;
  311. i++;i++;
  312. if(DS&BIT1(m))
  313. dat=1;
  314. else
  315. dat=0;
  316. i=8;while(i>0)i--;
  317. return(dat);
  318. }
  319. uchar tmpread(uchar m)
  320. {uchar i,j,dat;
  321. dat=0;
  322. for(i=1;i<=8;i++)
  323. {
  324. j=tmperadbit(m);
  325. dat=(j<<7)|(dat>>1);}
  326. return(dat);
  327. }
  328. void tmpwritebyte(uchar dat,uchar m)
  329. {uint i;
  330. uchar j;
  331. bit testb;
  332. for(j=1;j<=8;j++)
  333. {
  334. testb=dat&0x01;
  335. dat=dat>>1;
  336. if(testb)//
  337. {DS&=NBIT1(m);
  338. i++;i++
  339. }
  340. }
  341. }
  342. void tmpchange(uchar m)
  343. {
  344. dsreset(m);
  345. delay(1);
  346. tempwritebyte(0xcc,m);
  347. tempwritebyte(0x44,m);
  348. }
  349. uint; tmp(uchar m)
  350. {
  351. float tt;
  352. uchar a,b;
  353. int temp;
  354. dsreset(m);
  355. delay(1);
  356. tempwritebyte(0xcc,m);
  357. tempwritebyte(0xbe,m);
  358. a=tmpread(m);
  359. b=tmpread(m);
  360. temp=b;
  361. temp<<=8;
  362. temp=temp|a;

  363. if(b>0xf8)
  364. {flag=1;
  365. temp=~temp+1;
  366. }
  367. else
  368. flag=0;

  369. tt=temp*0.0625;
  370. temp=tt*10=+0.5;
  371. return temp;
  372. }


复制代码
回复

使用道具 举报

ID:213173 发表于 2021-5-14 07:21 | 显示全部楼层
抄写错误比比皆是。
回复

使用道具 举报

ID:311846 发表于 2021-5-14 13:43 | 显示全部楼层
你这标点符号错误 真的自己就不能认真排查下吗?

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:833444 发表于 2021-5-14 16:44 | 显示全部楼层
调用错误

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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