找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2202|回复: 4
收起左侧

keil代码编译出一大堆错误error C172: 'case': missing enclosing switch

[复制链接]
ID:1057153 发表于 2022-12-12 15:19 | 显示全部楼层 |阅读模式
keil代码好多错误不知道怎么修改啊有没有大佬指教一下
51hei_C语言文件.c(66): error C202: 'NS_led': undefined identifier
51hei_C语言文件.c(67): error C202: 'EW_led': undefined identifier
51hei_C语言文件.c(168): error C171: 'break': missing enclosing loop
51hei_C语言文件.c(169): error C172: 'case': missing enclosing switch
51hei_C语言文件.c(176): error C171: 'break': missing enclosing loop
51hei_C语言文件.c(177): error C172: 'case': missing enclosing switch
单片机源程序如下:
  1. #include<reg52.h>


  2. sbit EW_1=P1^0;
  3. sbit EW_2=P1^1;
  4. sbit NS_1=P1^2;
  5. sbit NS_2=P1^3;

  6. sbit add_red_time=P1^4;
  7. sbit add_green_time=P1^5;
  8. sbit reduce_red_time=P1^6;
  9. sbit reduce_green_time=P1^7;

  10. sbit EW_red=P2^0;  
  11. sbit EW_green=P2^1;
  12. sbit EW_blue=P2^2;
  13. sbit NS_red=P2^3;
  14. sbit NS_green=P2^4;
  15. sbit NS_blue=P2^5;

  16. char count=0;
  17. char red_time=30;
  18. char green_time=25;
  19. char blue_time=0;
  20. char NS_second=0;
  21. char EW_second=0;
  22. char code smgduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  23. char display_data[4]={0};
  24. char temp_data[4]={0};

  25. char NS_R_G_mode=0;
  26. char EW_R_G_mode=0;

  27. bit NS_R_G_flag=0;
  28. bit EW_R_G_flag=0;








  29. void delay(unsigned int i)  
  30. {
  31. while(i--);
  32. }
  33. void Timer_init()      
  34. {
  35. TMOD=0x01;         
  36. TH0=0x3C;           
  37. TL0=0xB0;
  38. EA=1;              
  39. ET0=1;            
  40. TR0=1;            
  41. }

  42. void lnit()                                                        
  43. {
  44.         P0=0x00;
  45.         P2=0x00;
  46.         EW_1=1;
  47.         EW_2=1;
  48.         NS_1=1;
  49.         NS_2=1;
  50.         NS_led=1;
  51.         EW_led=1;
  52.         NS_second=red_time;                                
  53.         EW_second=green_time;                        
  54.         blue_time=red_time-green_time;
  55.         Timer_init();
  56. }

  57. void NS_SMG_drive(char*buff)               
  58. {

  59.         NS_1=0;
  60.         NS_2=1;
  61.         P0=~smgduan[buff[0]];  
  62.         delay(5);                                       
  63.         P0=0x00;                                       

  64.         
  65.         NS_1=1;
  66.         NS_2=0;
  67.         P0=~smgduan[buff[1]];
  68.         delay(5);
  69.         P0=0x00;

  70.         
  71.         NS_1=1;
  72.         NS_2=1;
  73. }

  74. void EW_SMG_drive(char*buff)
  75. {

  76.   EW_1=0;
  77.         EW_2=1;
  78.         P0=~smgduan[buff[2]];  
  79.         delay(5);                                       
  80.         P0=0x00;                                       

  81.         
  82.         EW_1=1;
  83.         EW_2=0;
  84.         P0=~smgduan[buff[3]];
  85.         delay(5);
  86.         P0=0x00;

  87.         
  88.         EW_1=1;
  89.         EW_2=1;
  90. }



  91. void data_del(char*buff,char data1,char data2)
  92. {
  93. buff[0]=data1/10;   
  94. buff[1]=data1/10;   
  95. buff[2]=data2/10;   
  96. buff[3]=data2/10;   
  97. }

  98. void Time_del()  
  99. {
  100. if(count>=20)   
  101. {
  102. NS_second--;     
  103. EW_second--;     
  104. switch(NS_R_G_mode)   
  105. {
  106. case 0:        
  107. {
  108. if(NS_second<0)   
  109. {
  110. NS_second=green_time;      
  111. NS_R_G_mode=1;            
  112. }
  113. }break;
  114. case 1:   
  115. {
  116. if(NS_second<0)
  117. {
  118. NS_second=blue_time;     
  119. NS_R_G_mode=2;           
  120. }
  121. }break;
  122. case 2:         
  123. {
  124. if(NS_second<0)
  125. {
  126. NS_second=red_time;     
  127. NS_R_G_mode=0;         
  128. }
  129. }break;
  130. default:break;
  131. }
  132. switch(EW_R_G_mode)
  133. case 0:        
  134. {
  135. if(EW_second<0)   
  136. {
  137. EW_second=green_time;      
  138. EW_R_G_mode=1;            
  139. }
  140. }break;
  141. case 1:   
  142. {
  143. if(EW_second<0)
  144. {
  145. EW_second=blue_time;     
  146. EW_R_G_mode=2;           
  147. }
  148. }break;
  149. case 2:         
  150. {
  151. if(EW_second<0)
  152. {
  153. EW_second=red_time;     
  154. EW_R_G_mode=0;         
  155. }
  156. }break;
  157. default:break;
  158. }
  159. count=0;   
  160. }
  161. }


  162. void R_G_B_led()   
  163. {
  164. switch(NS_R_G_mode)   
  165. {
  166. case0:            
  167. {
  168. NS_blue=0;      
  169. NS_red=1;        
  170. }break;
  171. case1:            
  172. {
  173. NS_red=0;           
  174. NS_green=1;        
  175. }break;
  176. case2:            
  177. {
  178. NS_blue=0;      
  179. if(count<10)     
  180. NS_blue=1;
  181. else
  182. NS_blue=0;
  183. }break;
  184. default:break;
  185. }
  186. switch(NS_R_G_mode)   
  187. {
  188. case0:            
  189. {
  190. EW_blue=0;      
  191. EW_red=1;        
  192. }break;
  193. case1:            
  194. {
  195. EW_red=0;           
  196. EW_green=1;        
  197. }break;
  198. case2:            
  199. {
  200. EW_blue=0;      
  201. if(count<10)     
  202. EW_blue=1;
  203. else
  204. EW_blue=0;
  205. }break;
  206. default:break;
  207. }
  208. }





  209. void Set_time()
  210. {
  211. if((add_red_time==0)||(add_green_time==0)||(reduce_red_time==0)||(reduce_green_time==0))
  212. {
  213. TR0=0;      
  214. P2=0x00;     
  215. EW_led=1;
  216. NS_led=1;
  217. while(1)
  218. {
  219. data_del(temp_data,red_time,green_time);
  220. NS_SMG_drive(temp_data);
  221. EW_SMG_drive(temp_data);
  222. if(add_red_time==0)
  223. {
  224. delay(5);  
  225. if(add_red_time==0)
  226. {
  227. red_time++;      
  228. if(red_time>99)   
  229. red_time=99;
  230. data_del(temp_data,red_time,red_time)£?      
  231. NS_SMG_drive(temp_data);
  232. }while(!add_red_time);            
  233. }
  234. if(add_green_time==0)
  235. {
  236. delay(5);
  237. if(add_green_time==0)
  238. {
  239. green_time++;
  240. if(green_time>95)
  241. green_time=95;
  242. data_del(temp_data,green_time,green_time);
  243. EW_SMG_drive(temp_data);
  244. }while(!add_green_time);
  245. }
  246. if(reduce_red_time==0)
  247. {
  248. delay(5);
  249. if(reduce_red_time==0)
  250. {
  251. red_time--;
  252. if(red_time<10)
  253. red_time=10;
  254. data_del(temp_data,red_time,red_time);
  255. NS_SMG_drive(temp_data);
  256. }while(!reduce_red_time);
  257. }
  258. if(reduce_green_time==0)
  259. {
  260. delay(5);
  261. if(reduce_green_time==0)
  262. {
  263. green_time--;
  264. if(green_time<5)
  265. green_time=5;
  266. data_del(temp_data,green_time,green_time);
  267. EW_SMG_drive(temp_data);
  268. }while(!reduce_green_time);
  269. }
复制代码


回复

使用道具 举报

ID:1057153 发表于 2022-12-12 15:21 | 显示全部楼层
代码打到这就完全没思路了,要按钮的信号灯,还要加减时长
回复

使用道具 举报

ID:161164 发表于 2022-12-12 16:57 | 显示全部楼层
NS_led和EW_led没定义,你看看是下面哪一个
EW_red               
EW_green       
EW_blue       
NS_red               
NS_green       
NS_blue       

160行的switch缺了"{"
回复

使用道具 举报

ID:203661 发表于 2022-12-13 10:35 | 显示全部楼层
51hei_C语言文件.c(66): error C202: 'NS_led': undefined identifier
51hei_C语言文件.c(67): error C202: 'EW_led': undefined identifier
51hei_C语言文件.c(168): error C171: 'break': missing enclosing loop
51hei_C语言文件.c(169): error C172: 'case': missing enclosing switch
51hei_C语言文件.c(176): error C171: 'break': missing enclosing loop
51hei_C语言文件.c(177): error C172: 'case': missing enclosing switch

说的很明白了呀,一个一个解决便是
回复

使用道具 举报

ID:77589 发表于 2022-12-13 10:56 | 显示全部楼层
还是回去好好学习一下C语言吧!!!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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