哪个大神告诉我一下这个程序我那里整错了
时间: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哪里写错了呢?
#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,
逻辑关系和逻辑思路不清晰,不明确。