久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1912|回復: 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        }




回復

使用道具 舉報

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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成年网站在线观看 | 成人久久18免费网站图片 | 国产精品区二区三区日本 | 精品国产一区二区三区久久狼黑人 | 亚洲精品视频在线看 | 99热这里都是精品 | 亚洲一级毛片 | 黄a免费网络 | 久久中文字幕一区 | 在线欧美视频 | 精品videossex高潮汇编 | 黄色大片免费播放 | 久久久久国产一区二区三区四区 | 欧美性久久 | 亚洲成人a v | 黄色毛片在线看 | 日韩欧美一区二区三区免费观看 | 一级免费视频 | 国产精品久久二区 | 久久美女网 | 亚洲欧美自拍偷拍视频 | 91国产在线视频在线 | 国产美女在线免费观看 | 中文字幕在线观看一区二区 | 欧美性猛交一区二区三区精品 | 色天天综合 | 国产成人精品一区二区三区网站观看 | 天天夜夜操 | 亚洲一区二区在线免费观看 | 国产色片在线 | 国产成人在线观看免费 | 亚洲一二三区在线观看 | 福利在线看 | 久草在线在线精品观看 | 欧美xxxx在线 | 国产精品久久久久久久久 | 国产乱码精品一区二区三区五月婷 | 亚洲国产一区二区三区, | 国产成人精品一区二区三区在线 | 亚洲综合视频 | 亚洲精品视频免费观看 |