单片机学习小组
直播中

李亦然

7年用户 186经验值
私信 关注

为什么stc15w408as P1口不能置零?

stc15w408as P1口不能置零,设置为低电平后,P1口输出的还是高电平,接收到P3口遥控信号后,不能改变电机控制端P1口的电平变化,是不是程序哪有问题啊?
#include //通用89C51头文件
***it b2=P1^3; //电机控制端口声明
***it a2=P1^2;
***it b1=P1^1;
***it a1=P1^0;
***it w0=P3^2;        //无线接收端声明
***it w1=P3^3;
***it w2=P3^4;
***it w3=P3^5;
void delay(char z) //占空比
{
char i,j;
for(i=1;i>0;i--)
{
for(j=z;j>0;j--)
;
}
}
void ting() //停止函数
{
a1=0;
b1=0;
a2=0;
b2=0;        
}
void qian()        //前进函数
{
a1=1;
b1=0;
a2=1;
b2=1;
}
void hou()        //后退函数
{
a1=0;
b1=1;
a2=1;
b2=1;
}
void zhuo()        //左转函数
{
a1=1;
b1=1;
a2=1;
b2=0;
}
void you()        //右转函数
{
a1=1;
b1=1;
a2=0;
b2=1;
}
void main()        //主函数
{
while(1)        //无限循环
{
w1=1;
w2=1;
w3=1;
w0=1;
ting();        //如果无按键动作则停止
while( w2 == 1 ) //如果C键被按下
{        //大括号内如果只有 一条命令,则可以省略大括号
qian(); //调用前进函数        
}
while( w0 == 1 ) //如果A键被按下
{        //大括号内如果只有 一条命令,则可以省略大括号
you(); //调用后退函数        
}
while( w3 == 1 ) //如果D键被按下
{        //大括号内如果只有 一条命令,则可以省略大括号
zhuo(); //调用左转函数        
}
while( w1 == 1 ) //如果B键被按下
{        //大括号内如果只有 一条命令,则可以省略大括号
hou(); //调用右转函数        
}
}
}

回帖(1)

王玲

2019-10-25 09:01:42
首先你要看看你的遥控器能不能抗的过你的单片机的高电平输出,另外判断的时候四个键的状态一起判断。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分