找回密码
 立即注册

QQ登录

只需一步,快速开始

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

error C129: missing ';' before '<'大家帮我看看程序哪里的问题

[复制链接]
跳转到指定楼层
楼主
ID:1024109 发表于 2022-5-11 17:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Build target '目标 1'
compiling 顺.c...
顺.C(1): error C141: syntax error near '1'
顺.C(1): error C129: missing ';' before '<'

   1          #include <stdio.h>
   2          #include <reg52.h>
   3          #include "ADC0832.h"
   4          #include "LCD1602.h"
   5          #include "timer1.h"
   6          #include "eepom52.h"
   7         
   8          sbit key_a_m = P3^3;     //自动手动模式切换按键
   9          sbit key_set = P3^4;     //设置按键
  10          sbit key_add = P3^5;     //加按键
  11          sbit key_sub = P3^6;     //减按键
  12          sbit LED_shuiwei_shangxian = P1^0;       //水位上限
  13          sbit LED_shuiwei_xiaxian = P1^2;       //水位下限
  14          sbit LED_S_M = P1^4;       //水质上限
  15          sbit beep = P3^7;        //蜂鸣器
  16          sbit led_run = P1^7;     //运行指示灯
  17          sbit reep = P1^5;       //继电器
  18          sbit reep2 = P1^6;       //继电器
  19         
  20          void delay_ms(unsigned int t);     //ms延时
  21          void updata_water_value();         //更新当前水深到LCD1602
  22          void updata_min_max_water_value(); //更新最大最小水深到LCD1602
  23          void A_M_switch();                 //queren函数
  24          void SET_switch();                 //设置函数
  25          void add_value();                  //最大最小水深加函数
  26          void sub_value();                  //最大最小水深减函数
  27         
  28          void update_eeprom();              //更新eeprom存储的数据
  29          void init_eeprom();                //初始化eeprom
  30         
  31          void low_water_check();            //水位检测比较报警函数
  32         
  33          int cur_warter_data = 0;        //当前水深
  34          int max_warter_data = 70;       //最大水深
  35          int min_warter_data = 40;       //最小水深
  36          unsigned char flag_a_m = 0;     //自动手动标志位
  37          unsigned char flag_set = 0;     //设置按键标志位
  38          unsigned char flag_alarm = 0;   //报警标志位
  39          int cur_zhuodu_data = 0;        //当前水深
  40          unsigned char max_zhuodu_data = 70;       //最大浊度
  41          unsigned char min_zhuodu_data = 0;       //最小浊度
  42         
  43          void timer1(){                  //20ms定时处理函数
  44   1        static unsigned int i = 0;
  45   1        if( i++ % 15 == 0 ){
  46   2          led_run = !led_run;
  47   2          updata_water_value();  //更新当前水深到LCD1602
  48   2          low_water_check();   //水位检测比较报警函数
  49   2          if(flag_alarm == 1 && flag_a_m == 0){ beep = !beep; } else if(flag_a_m == 0) { beep = 1; }
  50   2        }
  51   1        
  52   1        if(i > 60000) i = 0;
  53   1        
  54   1        A_M_switch();   //自动手动模式切换函数
  55   1        SET_switch();   //设置函数   
  56   1        add_value();   //最大最小水深加函数
  57   1        sub_value();   //最大最小水深减函数
  58   1      }
  59         
  60          //主函数
  61          void main(){
  62   1          init_eeprom();   //初始化eeprom
  63   1          LCD1602_init();    //初始化1602
  64   1          LCD1602_Clear();
  65   1          LCD1602_Disp_ZF(0x80, "W:    H:    L:  ", 16);
  66   1          LCD1602_Disp_ZF(0xC0, "Z:    H:    L:  ", 16);
  67   1          updata_water_value();  //更新当前水深到LCD1602
  68   1          updata_min_max_water_value(); //更新最大最小水深到LCD1602
  69   1          timer1_start(20, timer1);
  70   1          beep = 1;   //关闭蜂鸣器
  71   1          LED_shuiwei_shangxian = 1;   
  72   1          LED_shuiwei_xiaxian = 1;   
  73   1          while(1){
  74   2              delay_ms(500);
  75   2          }
  76   1      }
  77         
  78          void delay_ms(unsigned int t)
  79          {
  80   1          unsigned char a,b;
  81   1          while(t--)
  82   1          {
  83   2            for(b=102;b>0;b--)
  84   2            for(a=3;a>0;a--);
  85   2          }
  86   1      }
  87         
  88          //更新当前水深到LCD1602
  89          void updata_water_value(){
  90   1          unsigned char lcd1602_data[4] = {0};
  91   1          cur_warter_data = get_0832_AD_data(1);
  92   1          cur_warter_data = cur_warter_data*100/255;
  93   1          if(cur_warter_data > 99) cur_warter_data = 99;
  94   1          lcd1602_data[0] = cur_warter_data%100/10 + 48;
  95   1          lcd1602_data[1] = cur_warter_data%10 + 48;
  96   1          LCD1602_Disp_ZF(0x80+2, lcd1602_data, 2);
  97   1      
  98   1          cur_zhuodu_data = 255-get_0832_AD_data(0);
  99   1          cur_zhuodu_data = cur_zhuodu_data*100/255;
100   1          if(cur_zhuodu_data > 99) cur_zhuodu_data = 99;
101   1          lcd1602_data[0] = cur_zhuodu_data%100/10 + 48;
102   1          lcd1602_data[1] = cur_zhuodu_data%10 + 48;
103   1          LCD1602_Disp_ZF(0xc0+2, lcd1602_data, 2);
104   1      }
105         
106          //更新最大最小水深到LCD1602
107          void updata_min_max_water_value(){
108   1          unsigned char lcd1602_data[4] = {0};
109   1          if(max_warter_data > 99) max_warter_data = 99;
110   1          lcd1602_data[0] = max_warter_data%100/10 + 48;
111   1          lcd1602_data[1] = max_warter_data%10 + 48;
112   1          LCD1602_Disp_ZF(0x80+8, lcd1602_data, 2);
113   1      
114   1          if(min_warter_data > 99) min_warter_data = 99;
115   1          lcd1602_data[0] = min_warter_data%100/10 + 48;
116   1          lcd1602_data[1] = min_warter_data%10 + 48;
117   1          LCD1602_Disp_ZF(0x80+14, lcd1602_data, 2)   
118   1      
119   1          if(max_zhuodu_data > 99) max_zhuodu_data = 99;
120   1          lcd1602_data[0] = max_zhuodu_data%100/10 + 48;
121   1          lcd1602_data[1] = max_zhuodu_data%10 + 48;
122   1          LCD1602_Disp_ZF(0xc0+8, lcd1602_data, 2);
123   1      
124   1          if(min_zhuodu_data > 99) min_zhuodu_data = 99;
125   1          lcd1602_data[0] = min_zhuodu_data%100/10 + 48;
126   1          lcd1602_data[1] = min_zhuodu_data%10 + 48;
127   1          LCD1602_Disp_ZF(0xc0+14, lcd1602_data, 2);
128   1      }
129         
130           //自动手动模式切换函数
131          void A_M_switch(){
132   1        key_a_m = 1;
133   1        if( key_a_m == 0  ){
134   2          delay_ms(2);
135   2          if( key_a_m == 0 ){
136   3            flag_set = 6;
137   3            LCD1602_chars( 5, 0, " " ); LCD1602_chars( 11, 0, " " ); LCD1602_chars( 5, 1, " " ); LCD1602_chars( 11,
             - 1, " " );
138   3            while(key_a_m == 0);
139   3          }
140   2        }
141   1      }
142         
143          //设置函数
144          void SET_switch(){
145   1        key_set = 1;
146   1        if(key_set == 0){
147   2          delay_ms(2);
148   2          if(key_set == 0){
149   3            flag_set++;
150   3            if(flag_set >= 5){ flag_set = 1; }
151   3            switch(flag_set){
152   4              case 0: LCD1602_chars( 5, 0, " " ); LCD1602_chars( 11, 0, " " ); LCD1602_chars( 5, 1, " " ); LCD1602_c
             -hars( 11, 1, " " ); break;
153   4              case 1: LCD1602_chars( 5, 0, "*" ); LCD1602_chars( 11, 0, " " ); LCD1602_chars( 5, 1, " " ); LCD1602_c
             -hars( 11, 1, " " ); break;
154   4              case 2: LCD1602_chars( 5, 0, " " ); LCD1602_chars( 11, 0, "*" ); LCD1602_chars( 5, 1, " " ); LCD1602_c
             -hars( 11, 1, " " ); break;
155   4              case 3: LCD1602_chars( 5, 0, " " ); LCD1602_chars( 11, 0, " " ); LCD1602_chars( 5, 1, "*" ); LCD1602_c
             -hars( 11, 1, " " ); break;
156   4              case 4: LCD1602_chars( 5, 0, " " ); LCD1602_chars( 11, 0, " " ); LCD1602_chars( 5, 1, " " ); LCD1602_c
             -hars( 11, 1, "*" ); break;
157   4            }
158   3            while(key_set == 0);
159   3            update_eeprom();
160   3          }
161   2        }
162   1      }
163         
164           //最大最小水深加函数
165          void add_value(){
166   1        key_add = 1;
167   1        if(key_add == 0 && flag_set != 0){
168   2          delay_ms(2);
169   2          if(key_add == 0 && flag_set != 0){
170   3            switch(flag_set){
171   4              case 0: break;
172   4              case 1: if(max_warter_data < 100) max_warter_data++;  break;
173   4              case 2: if(min_warter_data < max_warter_data) min_warter_data++;  break;
174   4              case 3: if(max_zhuodu_data < 100) max_zhuodu_data++;  break;
175   4              case 4: if(min_zhuodu_data < max_zhuodu_data) min_zhuodu_data++;  break;
176   4            }
177   3            updata_min_max_water_value();
178   3            while(key_add == 0);
179   3            update_eeprom();
180   3          }
181   2        }
182   1      }
183         
184          //最大最小水深减函数
185          void sub_value(){
186   1        key_sub = 1;
187   1        if(key_sub == 0 && flag_set != 0){
188   2          delay_ms(2);
189   2          if(key_sub == 0 && flag_set != 0){
190   3            switch(flag_set){
191   4              case 0: break;
192   4              case 1: if( max_warter_data > min_warter_data ) max_warter_data--;  break;
193   4              case 2: if( min_warter_data > 0 ) min_warter_data--;  break;
194   4              case 3: if( max_zhuodu_data > min_zhuodu_data ) max_zhuodu_data--;  break;
195   4              case 4: if( min_zhuodu_data > 0 ) min_zhuodu_data--;  break;
196   4            }
197   3            updata_min_max_water_value();
198   3            while(key_sub == 0);
199   3            update_eeprom();
200   3          }
201   2        }
202   1      }
203         
204          //初始化eeprom
205          void init_eeprom(){
206   1        unsigned char is_first_init =  byte_read(0x2020);
207   1        if(is_first_init == 1){
208   2          max_warter_data = byte_read(0x2000);
209   2          min_warter_data = byte_read(0x2001);
210   2          max_zhuodu_data = byte_read(0x2002);
211   2          min_zhuodu_data = byte_read(0x2003);
212   2        }else{
213   2            SectorErase(0x2000);
214   2            byte_write(0x2000, max_warter_data);
215   2            byte_write(0x2001, min_warter_data);
216   2            byte_write(0x2002, max_zhuodu_data);
217   2            byte_write(0x2003, min_zhuodu_data);
218   2            byte_write(0x2020, 1);  
219   2        }




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

使用道具 举报

沙发
ID:883242 发表于 2022-5-11 22:48 | 只看该作者
还是截图吧,别漏掉顺.c的第一行和完整的报错信息。
回复

使用道具 举报

板凳
ID:267719 发表于 2022-5-12 09:04 | 只看该作者
行号不会是写在代码里了吧?截图看清楚一点。44行行号开始到最后,行号后面还有个数字是什么鬼?
回复

使用道具 举报

地板
ID:203661 发表于 2022-5-12 15:21 | 只看该作者
少了个分号, 最好把工程一起帖出来
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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