求c51长辈纠正一下代码#c51

    while(1)
    {
        if(guang!=0)
        {
            for(i=0;i<10;i++)
            {
                for(k=0;k<60;k++)
                {
                    P2=seg[i/10];
                    P0=0x01;
                    delay(40);
                    P2=seg[i%10];
                    P0=0x02;
                    delay(40);
                }
            }
        if(i==10)
        {
            P1=~P1;
            i=0;
        }
    }
}
;    
else if(guang==0)
{
    delay(100);
    if(guang==0)
        P1=0;
}

img

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7454829
  • 这篇博客你也可以参考下:C51单片机 外部中断
  • 除此之外, 这篇博客: C51:温度传感器-----------简单看看效果,真能检测温度?中的 指令 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 什么是ROM指令?什么是RAM指令?
    分别是以ROM和RAM作为目的操作物的指令
    在这里插入图片描述
    在这里插入图片描述

    如何使用指令来对芯片进行操控呢?

    芯片内部有默认的程序运行顺序,规定了先复位,再执行ROM指令,再执行RAM指令,结束的顺序。
    比如我想读取温度,
    复位→跳过ROM指令→开始温度转换→延时→复位→跳过ROM指令→开始温度转换→接收两个字节→结束复位 \rightarrow 跳过ROM指令 \rightarrow 开始温度转换 \rightarrow 延时 \rightarrow 复位 \rightarrow 跳过ROM指令 \rightarrow 开始温度转换 \rightarrow 接收两个字节 \rightarrow 结束ROMROM

    • 第一轮我发命令要芯片把温度的模拟信号转换成数字信号,延时等待转换。第二轮就先发命令表示我要开始读了,然后接受就行了

      \;
      \;
      \;
      \;

  • 以下回答由chatgpt基于相关博客总结生成:

    很抱歉,由于问题描述不清楚,没有提供具体的代码和错误信息,无法给出精确的解决方案。建议您具体说明代码中哪些部分出错,提供相关代码和错误信息,这样才能更好地得到帮助和解决方案。

else if那句找不到配对的if语句,注意花括号的前后匹配
按结构,else if前面那个分号和上面两个后半边大括号都应该去掉。代码最下面再加个大括号