标题: 单片机代码出了问题但不知道在哪error C141: syntax error near '}'求大佬们解答 [打印本页]

作者: 15236966302    时间: 2021-10-22 15:44
标题: 单片机代码出了问题但不知道在哪error C141: syntax error near '}'求大佬们解答
本帖最后由 15236966302 于 2021-10-22 16:33 编辑

这是编辑器提示的
task3.c(14): error C141: syntax error near '}'
task3.c(40): error C202: 'P2_0': undefined identifier
task3.c(47): error C202: 'P2_0': undefined identifier

这是单片机源代码
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. #define fm P2_0
  5. uint code yj[]={64580,64684,64777,64820,64898,64968,65030,64260,65058};     //音阶初值:1,2,3,4,5,6,7
  6. uchar code yp[]={0x14,0x24,0x24,0x14,0x14,0x24,0x34,0x14,0x34,0x44,0x58,0x34,0x44,0x58,0x52,0x62,0x52,0x42,0x34,0x14,0x52,0x62,0x52,0x42,0x34,0x14,0x14,0x84,0x16,0x02,0x14,0x84,0x16,0x02,0x00};      //两只老虎
  7. uchar yf,jp;
  8. void delay(uint z)     //1/4延时时间,250ms
  9. {
  10.         uchar i,j;
  11.         while(z--)
  12.         for(j=0;j<250;j++)
  13.         for(i=0;i<120;i++)
  14. }
  15. void sing(uint i)
  16. {
  17.         yf=yp[i]/16;      //高四位为音符
  18.         jp=yp[i]%16;         //低四位为节拍
  19. }
  20. void main()
  21. {
  22.         uint i;
  23.         IE=0x82;
  24.         TMOD=0x01;
  25.         while(1)
  26.         {
  27.                 for(i=0;yp[i]!=0;i++)
  28.                 {
  29.                         sing(i);
  30.                         if(yf==0)TR0=0;
  31.                         else
  32.                         {
  33.                                 TH0=yj[yf-1]/256;
  34.                                 TL0=yj[yf-1]%256;
  35.                                 TR0=1;
  36.                         }
  37.                         delay(jp);
  38.                 }
  39.         TR0=0;
  40.         fm = 0;
  41.         }
  42. }
  43. void time0()interrupt 1
  44. {
  45.         TH0=yj[yf-1]/256;
  46.         TL0=yj[yf-1]%256;
  47.         fm =-fm;
  48. }
复制代码


T69EO)`4)4Q][X]AKN6ZXZN.png (170.18 KB, 下载次数: 56)

T69EO)`4)4Q][X]AKN6ZXZN.png

作者: Hephaestus    时间: 2021-10-22 16:11
13行缺了个分号。
作者: 188610329    时间: 2021-10-22 17:01
task3.c(14): error C141: syntax error near '}'             这里是前面循环,没有分号。
task3.c(40): error C202: 'P2_0': undefined identifier   这里是 P2_0 没有定义
task3.c(47): error C202: 'P2_0': undefined identifier   这里同上


作者: 15236966302    时间: 2021-10-22 17:50
188610329 发表于 2021-10-22 17:01
task3.c(14): error C141: syntax error near '}'             这里是前面循环,没有分号。
task3.c(40):  ...

P_2应该怎么定义?
作者: xuyaqi    时间: 2021-10-22 18:00
15236966302 发表于 2021-10-22 17:50
P_2应该怎么定义?

#define fm P2_0 改为 sbit fm = P2^0;
for(i=0;i<120;i++)改为 for(i=0;i<120;i++);
fm =-fm;改为 fm =!fm;
作者: 15236966302    时间: 2021-10-22 20:52
xuyaqi 发表于 2021-10-22 18:00
#define fm P2_0 改为 sbit fm = P2^0;
for(i=0;i

代码已经没错了,可以生成HEX文件,但是在仿真时,扬声器没有声音,可以帮我看看怎么回事吗?

}LV}EW$)GVDL~$[TO@81H7Y.png (119.79 KB, 下载次数: 29)

}LV}EW$)GVDL~$[TO@81H7Y.png

作者: wojiaoguogai    时间: 2021-10-23 10:49
13行的for里面你干了啥?

作者: wojiaoguogai    时间: 2021-10-23 10:53
蜂鸣器哪个问题你把R1R2的阻值换下试试
作者: shumivan    时间: 2021-10-27 17:57
基本功不扎实,建议多从基础强化,否则再大的大厦也会倒塌.
作者: 15236966302    时间: 2021-11-11 10:59
感谢大家,问题已经解决,采用二楼的方法已经解决
作者: wyqf    时间: 2021-11-11 11:29
无循环语句
作者: tt666521    时间: 2021-11-11 12:13
电阻的阻值设置了吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1