51单片机控制流水灯编程求救啊!!! #definesbit K1=P1^0;sbit K2=P1^1;sbit K3=P1^2;unsigned int time=500;unsigned char z[]={0xfe,0xfd,0xfb};void delay(unsigned int c)/误差 0us{unsigned char b;for(c;c>;0;c-)for(b=125;b>;0;b-);}main(){unsigned char i;TMOD=0x01;50ms中断 按键扫描TH0=0x3C;TL0=0x0B0;EA=1;ET0=1;TR0=1;while(1){for(i=0;i;i+){P0=z[i];delay(time);}}}void Timer0Interrupt(void)interrupt 1{TH0=0x3C;TL0=0x0B0;if。K1)/K1键按下{delay(2);if。K1)time=200;速度1 值越大越慢}if。K2)/K2键按下{delay(2);if。K2)time=700;速度2}if。K3)/K2键按下{delay(2);if。K3)time=1500;速度3}}原创手打 望采纳
51单片机,按键控制流水灯程序,懂的进。 假如,你的程序在执行key_scan();是触发了两次中断导致num>;20,你的显示函数将永远被跳过,你应该写成if(num>;20){num=0;display();}这是一个比较直观的错误,其他的没细看,你在试试
51单片机怎么控制50个流水灯? 就像二楼说的 用74HC595之类的 芯片做 IO口用的比较少图中 DIN 是串行口数据输入端CLK是移位时钟,STC是锁存时钟,OE是使控制(消隐用)其它的就是程序了595的程序 块 网上有的是 然后就是用中断3做 把你需要的流水方式写入数组,然后寻址就可以了
51单片机按键中断控制流水灯 按键中断控制流水灯我可以做
51单片机按键控制流水灯左移 按键不能用while函数来写,第八行:if(k1=0)/按一次运行一次函数内容{delays();延时除抖if(k1=0);{/自己写按键内容}}