找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2468|回复: 6
收起左侧

不能编译,语法没有错误 懂的人帮忙看一下

[复制链接]
ID:238630 发表于 2017-10-13 15:21 | 显示全部楼层 |阅读模式
本帖最后由 crazyol 于 2017-10-13 17:02 编辑

不知道为什么,就是不能编译,语法没有错误。用的at89c51
QQ图片20171013151915.png

Text1.zip

1.79 KB, 下载次数: 9

回复

使用道具 举报

ID:130231 发表于 2017-10-13 15:55 | 显示全部楼层
能传上来看看吗。
回复

使用道具 举报

ID:82765 发表于 2017-10-13 16:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

ID:238630 发表于 2017-10-13 17:03 | 显示全部楼层
zqy181818 发表于 2017-10-13 15:55
能传上来看看吗。

已上传,希望可以帮忙看一下
回复

使用道具 举报

ID:130231 发表于 2017-10-17 00:40 | 显示全部楼层
crazyol 发表于 2017-10-13 17:03
已上传,希望可以帮忙看一下

uint x;y;这句的X后面的;改成,逗号就可以了。变成uint x,y;     这样就没有错了。还有程序语中句少两个大括号}}。你得添加上去。你找找看是那里少了。
回复

使用道具 举报

ID:7485 发表于 2017-10-17 18:59 | 显示全部楼层
第33行:           second--; //秒减1 },大括号被注释掉了。

程序的总结尾处少了一个大括弧。
回复

使用道具 举报

ID:155507 发表于 2017-10-17 21:41 | 显示全部楼层
  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit m1=P3^1;   //主持人按键答对加分,按一下加一分
  5. sbit m2=P3^2;   //答错减分
  6. sbit k1=P1^0;
  7. sbit k2=P1^1;
  8. sbit k3=P1^2;
  9. sbit k4=P1^3;
  10. sbit k5=P1^4;
  11. sbit k6=P1^5;      
  12. sbit k7=P1^6;
  13. sbit k8=P1^7;  //选手按键
  14. sbit k=P3^0;  //主持人按键开始
  15. sbit beep=P3^7;   //蜂鸣器
  16. uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77};  //0-9代码
  17. uchar shiwei,gewei,xuanshou,count,i,second;
  18. uchar score1,score2,score3,score4,score5,score6,score7,score8;//选手1~8的分数
  19. uint t,m,n,a,a1,a2,a3,a4,a5,a6,a7,a8;

  20. void Timer()
  21. {   
  22.   TMOD|=0x01;
  23.   TH0=0xd8;  //初值55536,计数10000次,每次1US,总计10ms
  24.   TL0=0xf0;
  25.   IE=0x82;  //这里是中断优先级控制EA=1(开总中断),ET0=1(定时器0允许中断),这里用定时器0来定时
  26.   TR0=1;         
  27. }

  28. void tim(void) interrupt 1 using 1  //为定时中断TR0
  29. {   
  30.   TH0=0xd8;  //重新赋值
  31.   TL0=0xf0;
  32.   count++;
  33.   if(count==100) //100*10ms=1秒
  34.   {  
  35.     count=0;
  36.     second--; //秒减1
  37.   }
  38. }

  39. void delay(uint z)  //延时函数
  40. {   
  41.   uint x,y;
  42.   for(x=z;x>0;x--)
  43.     for(y=10;y>0;y--);       
  44. }

  45. void display (uchar shiwei,gewei,xuanshou) //显示函数
  46. {       
  47.   P2=0xfe;    //打开显示时间十位的位选
  48.   P0=shiwei;  //显示十位
  49.   delay(5);
  50.   P2=0xfd;           //个位位选
  51.   P0=gewei;
  52.   delay(5);
  53.   P2=0xf7;    //选手位选
  54.   P0=xuanshou;
  55.   delay(5);
  56. }

  57. void dis(void)
  58. {   
  59.   shiwei=tab[second/10];
  60.   gewei=tab[second%10];
  61.   xuanshou=tab[i];
  62.   display(shiwei,gewei,xuanshou);
  63. }

  64. void init()   //初始化函数
  65. {   
  66.   P2=0x04;
  67.   P0=0x3f;
  68.   t=0;
  69.   beep=0;
  70.   i=0;
  71.   second=29;
  72.   score1=60;
  73.   score2=60;
  74.   score3=60;
  75.   score4=60;
  76.   score5=60;
  77.   score6=60;
  78.   score7=60;
  79.   score8=60;
  80.   a1=1;
  81.   a2=1;
  82.   a3=1;
  83.   a4=1;
  84.   a5=1;
  85.   a6=1;
  86.   a7=1;
  87.   a8=1;
  88. }

  89. void main()
  90. {   
  91.   init();
  92.   if(k==0)  //主持人按下开始键
  93.   {   
  94.     Timer();
  95.     delay(10);
  96.     while(!k);
  97.     while(1)
  98.     {   
  99.       dis();
  100.       m=0;
  101.       n=0;
  102.       if(second==10){beep=1; delay(500); beep=0;}
  103.       if(second==0) {TR0=0; n=1;
  104.         if(k==0)
  105.         {beep=1; delay(500); beep=0; second=29; TR0=1; m=1;}
  106.       }
  107.       if(n==0)
  108.       {  if(k1==0) {delay(5);if(k1==0);while(!k1);t=1;}
  109.         else if(k2==0) {delay(5);if(k2==0);while(!k2);t=2;}
  110.         else if(k3==0) {delay(5);if(k3==0);while(!k2);t=3;}
  111.         else if(k4==0) {delay(5);if(k4==0);while(!k2);t=4;}
  112.         else if(k5==0) {delay(5);if(k5==0);while(!k2);t=5;}
  113.         else if(k6==0) {delay(5);if(k6==0);while(!k2);t=6;}
  114.         else if(k7==0) {delay(5);if(k7==0);while(!k2);t=7;}
  115.         else if(k8==0) {delay(5);if(k8==0);while(!k2);t=8;}
  116.         else if(k==0)  {delay(5);if(k==0);while(!k);t=0;i=0;second=29;beep=1;delay(500);beep=0;TR0=1;}
  117.       }
  118.       while(t)
  119.       { if(m==0) //开关,保证程序只执行一次
  120.         {   switch(t)
  121.           {   
  122.           case 1:
  123.             {  TR0=0;i=1;second=0;beep=1;delay(500);beep=0;
  124.               a1=0;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
  125.             }
  126.           case 2:
  127.             {   TR0=0;i=2;second=0;beep=1;delay(500);beep=0;
  128.               a2=0;a1=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
  129.             }
  130.           case 3:
  131.             {   TR0=0;i=3;second=0;beep=1;delay(500);beep=0;
  132.               a3=0;a1=1;a2=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
  133.             }
  134.           case 4:
  135.             {   TR0=0;i=4;second=0;beep=1;delay(500);beep=0;
  136.               a4=0;a1=1;a2=1;a3=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
  137.             }
  138.           case 5:
  139.             {   TR0=0;i=5;second=0;beep=1;delay(500);beep=0;
  140.               a5=0;a1=1;a2=1;a3=1;a4=1;a6=1;a7=1;a8=1;m=1;break;
  141.             }
  142.           case 6:
  143.             {   TR0=0;i=6;second=0;beep=1;delay(500);beep=0;
  144.               a6=0;a1=1;a2=1;a3=1;a4=1;a5=1;a7=1;a8=1;m=1;break;
  145.             }
  146.           case 7:
  147.             {  TR0=0;i=7;second=0;beep=1;delay(500);beep=0;
  148.               a7=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a8=1;m=1;break;
  149.             }
  150.           case 8:
  151.             {   TR0=0;i=8;second=0;beep=1;delay(500);beep=0;
  152.               a8=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;m=1;break;
  153.             }
  154.           }
  155.         }
  156.         if(a1==0) //选手1的分数
  157.         {       
  158.           second=score1;
  159.           dis();
  160.           if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;            score1+=1;if(score1==99)score1=60;}
  161.           else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);                beep=0;score1-=1;if(score1==0)score1=60;}
  162.           dis();
  163.         }
  164.         else if(a2==0)
  165.         {   
  166.           second=score2;
  167.           dis();
  168.           if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;            score2+=1;if(score2==99)score2=60;}
  169.           else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);                beep=0;score2-=1;if(score2==0)score2=60;}
  170.           dis();            
  171.         }
  172.         else if(a3==0)
  173.         {       
  174.           second=score3;
  175.           dis();
  176.           if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;            score3+=1;if(score3==99)score3=60;}
  177.           else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);                beep=0;score3-=1;if(score3==0)score3=60;}
  178.           second=score3;
  179.           dis();
  180.         }
  181.         else if(a4==0)
  182.         {   
  183.           second=score4;
  184.           dis();
  185.           if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;            score4+=1;if(score4==99)score4=60;}
  186.           else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);                beep=0;score4-=1;if(score4==0)score4=60;}
  187.           second=score4;
  188.           dis();
  189.         }
  190.         else if(a5==0)
  191.         {   
  192.           second=score5;
  193.           dis();
  194.           if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;            score5+=1;if(score5==99)score5=60;}
  195.           else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);                beep=0;score5-=1;if(score5==0)score5=60;}
  196.           second=score5;
  197.           dis();
  198.         }
  199.         else if(a6==0)
  200.         {   
  201.           second=score6;
  202.           dis();
  203.           if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;            score6+=1;if(score6==99)score6=60;}
  204.           else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);                beep=0;score6-=1;if(score6==0)score6=60;}
  205.           second=score6;
  206.           dis();
  207.         }
  208.         else if(a7==0)
  209.         {   
  210.           second=score7;
  211.           dis();
  212.           if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;            score7+=1;if(score7==99)score7=60;}
  213.           else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);              beep=0;score7-=1;if(score7==0)score7=60;}
  214.           second=score7;
  215.           dis();
  216.         }
  217.         else if(a8==0)
  218.         {   
  219.           second=score8;
  220.           dis();
  221.           if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;            score8+=1; if(score8==99)score8=60;}
  222.           else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);                beep=0;score8-=1; if(score8==0)score8=60;}
  223.           second=score8;
  224.           dis();
  225.         }
  226.         if(k==0){i=0;t=0;second=29;beep=1;delay(500);beep=0;TR0=1;}
  227.         while(!k);
  228.       }               
  229.     }
  230.   }
  231. }
复制代码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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