lebaaa 2024-03-20 19:53 采纳率: 0%
浏览 5

入门proteus出错o(╥﹏╥)o求解答

入门proteus出错o(╥﹏╥)o求解答如下图所示,是电路搭建错误还是代码错误呢?

img

img

#include<REGX52.H>
unsigned int i;
typedef unsigned char u8;
typedef unsigned int u16;
void delay(u16 time)
{
    while(time--);
}
void main()
{
    while(1)
 {
     while(P3==0xFB)
    {
        P1=0x00;
        delay(1);
        if(P3_2==1)
            P1=0xFF;
    }
 }
}

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-03-20 19:53
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    这个问题是代码错误。 根据电路图和代码来看,这是一个按键检测的程序。但是,代码中的while循环条件 P3==0xFB 是错误的。 在电路图中,按键按下时,P3.2 和 P3.3 会被拉高,因此正确的循环条件应该是 P3==0xFC。 所以,修改以下代码:
    while(P3==0xFC)
    

    另外,建议给代码添加注释说明,便于其他人阅读和理解。例如:

    #include<REGX52.H>
    unsigned int i;
    typedef unsigned char u8;
    typedef unsigned int u16;
    // 延时函数
    void delay(u16 time){
        while(time--);
    }
    void main(){
        while(1) {                              // 无限循环
            while(P3==0xFC) {                   // 检测按键
                P1=0x00;                        // P1端口输出为0
                delay(1);                       // 延时1ms
                if(P3_2==1)                     // 检测P3.2是否为高电平
                    P1=0xFF;                    // P1端口输出为1
            }
        }
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月20日