找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2151|回复: 11
收起左侧

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

[复制链接]
回帖奖励 5 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次(中奖概率 20%)
ID:933089 发表于 2021-10-22 15:44 | 显示全部楼层 |阅读模式
本帖最后由 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
回复

使用道具 举报

ID:883242 发表于 2021-10-22 16:11 | 显示全部楼层
13行缺了个分号。
回复

使用道具 举报

ID:624769 发表于 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   这里同上

回复

使用道具 举报

ID:933089 发表于 2021-10-22 17:50 | 显示全部楼层
188610329 发表于 2021-10-22 17:01
task3.c(14): error C141: syntax error near '}'             这里是前面循环,没有分号。
task3.c(40):  ...

P_2应该怎么定义?
回复

使用道具 举报

ID:94031 发表于 2021-10-22 18:00 | 显示全部楼层

#define fm P2_0 改为 sbit fm = P2^0;
for(i=0;i<120;i++)改为 for(i=0;i<120;i++);
fm =-fm;改为 fm =!fm;
回复

使用道具 举报

ID:933089 发表于 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
回复

使用道具 举报

ID:415064 发表于 2021-10-23 10:49 | 显示全部楼层
13行的for里面你干了啥?
回复

使用道具 举报

ID:415064 发表于 2021-10-23 10:53 | 显示全部楼层
蜂鸣器哪个问题你把R1R2的阻值换下试试
回复

使用道具 举报

ID:81196 发表于 2021-10-27 17:57 | 显示全部楼层
基本功不扎实,建议多从基础强化,否则再大的大厦也会倒塌.
回复

使用道具 举报

ID:933089 发表于 2021-11-11 10:59 | 显示全部楼层
感谢大家,问题已经解决,采用二楼的方法已经解决
回复

使用道具 举报

ID:750420 发表于 2021-11-11 11:29 | 显示全部楼层
无循环语句
回复

使用道具 举报

ID:980030 发表于 2021-11-11 12:13 | 显示全部楼层
电阻的阻值设置了吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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