51单片机按键控制流水灯左移

2024-11-30 18:38:08
推荐回答(4个)
回答1:

开始学习单片机的同学们写注意了,在运行程序后,现象不正确的时候,不要首先就找软件的错误,我的经验是从源头开始找问题,首先你得确定你的平台是正确的,
你说是按键没效果,先用万用表测试一下你的引脚的电平,是否被拉低了
如果按键没问题,你就检查_crol_(P0,1);这句,查一下头文件是否被包含,我个人建议自己作个移位函数
虽然程序中还有别的问题,但不会造成你一在按键没效果的现象!
如果你是想学硬件的人,你可以这么玩下去,如果你是想编程,建议你先写段时间(可能是很长时间)的C语言,至少能写个画形动画或是图书馆管理程序出来后再去学单片机吧,不然真心觉得你会学得很慢,而且进步很慢

回答2:

你试试把方框的地方改成下面那样:while(K1 == 0); break; 这里是两个语句

回答3:

按键不能用while函数来写,第八行:
if(k1==0)//按一次运行一次函数内容
{
delays();//延时除抖
if(k1==0);
{//自己写按键内容
}
}

回答4:

#include
#include

sbit K1 = P2^0;

void delay()
{
unsigned char i, j;
for(i = 0; i <= 254; i++) for(j = 0; j <= 250; j++);
}

void main()
{
P0 = 1;
while(1) {
while(!K1) {
delay();
if(K1) break;
else P0 = _crol_(P0, 1);
while(!K1);
}
}
}

试试看。