微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 哪个大神告诉我一下这个程序我那里整错了

哪个大神告诉我一下这个程序我那里整错了

时间:10-02 整理:3721RD 点击:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit a=P2^3;//h1
sbit b=P2^2;//h2
sbit c=P2^1;//d1
sbit d=P2^0;//d2
void delaya()
{
        unsigned char i;
        for(i=0;i<0x14;i++)
        {
        TH1=0x3c;
        TL1=0xb0;
        TR1=1;
        while(!TF1);
        TF1=0;
               
        }
}
void main()
{
        
        while(1)
        {    x=1;
                m=3;
                if(x==1)
                {
                        P1=0x01;
                        delaya();
                        if(c==0)
                        {        
                                m=m-1;
                        }
                        if(b==0&&m==2)
                        {
                                m=m-1;
                        }
                        if(b==1&&m==1)
                        {
                                P1=0xf0;
                        }
                }
        }
}
P1一直是0x10  他变不成0xf0哪里写错了呢?

if(b==1&&m==1)
{
       P1=0xf0;
}
b一直为0   这语句不成立

我把m-1 换成赋值貌似好用了

if(b==1&&m==1)无法成立,m无法在b=1时也等于1。
所有的语句都在 if(x==1) 里执行,当执行完 if(x==1) 后返回while(1),这时m被赋值等于3,
逻辑关系和逻辑思路不清晰,不明确。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top