c51单片机独立按键控制三种流水灯

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-10
51单片机利用独立按键控制流水灯

while(1)
{ P1=aa;

delayms(1000);
aa=_crol_(aa,1);
}
这前面的while(1)根本不会退出,也就是不会执行下面的if(key1 == 0)的语句了,所以按键按下去当然没有反应了
if(key1==0)
{
P1=0x7e;

把按键程序源代码发上来,别发图片,而且做的是长图,那程序根本没法看,发了也没用。这样,才方便复制并帮你改。可现在的图片,谁看都会头痛,还哪有心情帮你改,躲还来不及呢,谁愿意自找麻烦。

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar keyval,led,led1;
sbit key=P3^2;
void ext0() interrupt 0
{
while(key==0);
keyval++;
keyval%=3;
}
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
main()
{
led=0xfe;
led1=0x55;
while(1)
    {
    switch(keyval)
        {
        case 0:P1=led;led=_crol_(led,1);delay(200);break;
        case 1:P1=led;led=_cror_(led,1),delay(200);break;
        case 2:P1=led1;led1=~led1;delay(200);brek;
        default:break;
        }
    }
}


27代码写错了 break

  • 求教大婶们~51单片机单个按键控制流水灯C程序
    答:很简单啊,只提供一个简单思路, 所以只提供简单的程序,自己理解 char flag=0;viod main(){ while(1){ if(key==0 ) //假设0 按下按键 { flag=~flag;} if(flag==0){ leds(); //流水灯函数 } } }
  • C51单片机按键切换流水灯
    答:include<reg51.h>#include<intrins.h>#define uchar unsigned charsbit key=P1^0;uchar led,time;void t0isr() interrupt 1{TH0=(65536-60000)/256;TL0=(65536-60000)%256;switch(time) { case 0:P0=led;led=_crol_(led,1);break; case 1:P0=led;led=_cror_(led,1);brea;...
  • C51单片机按下独立按键切换流水灯或跑马灯的流动速率
    答:流水灯每变化一次,即流动一步,都要延时的,通常是调延时子程序,而且要带一个延时的时间值,例如:delay(5000);如果所带参数是一个常数,那流水灯的速度就是固定不变的。如果改成一个变量,如:delay(speed); 这速度就可以变化可调了。这样,通过按键改变变量speed的值,就调速度了。
  • 请问51单片机如何通过独立按键控制流水灯的亮度?
    答:控制流水灯亮度需要使用pwm控制,按键控制pwm值就可以了
  • 51单片机利用独立按键控制流水灯
    答:while(1){ P1=aa;delayms(1000);aa=_crol_(aa,1);} 这前面的while(1)根本不会退出,也就是不会执行下面的if(key1 == 0)的语句了,所以按键按下去当然没有反应了 if(key1==0){ P1=0x7e;
  • 51单片机1按键切换3种不同状态的c程序??
    答:主程序大致是这样的 flag=0;//记录按键次数 While(1){ if(key==0){delayms(20);if(key==0)flag++;}//按键检测 if(flag==3)flag=0;if(flag==0){正向流水} else if(flag==1){反向流水} else {间隔流水} }存在问题,由于流水灯执行时间较长,因此对按键响应缓慢,可以在流水灯之间...
  • c51单片机独立按键控制流水灯小问题,求助大神看看我的程序错在了哪里...
    答:主程序中delay太长了
  • c51单片机中如何用汇编语言编写流水灯
    答:51单片机用汇编语言编写流水灯程序,就是控制多个LED ,使其在特定时间间隔内,只有一个LED 发光,其他熄灭,用这种方式顺序移动点亮LED的位置,就形成了流水灯的效果。以下是程序:;假设晶振12MHZ,P1控制8个LED低电平亮 ;启动入口=== ORG 0000H;复位启动 AJMP START;ORG 001BH;T1中断 AJMP T1INT;...
  • 51单片机流水灯 单片机 流水灯的问题 C51程序
    答:第一次,移动0位,以后渐多 //前面的内循环,移位次数逐减,这里逐增,合到一起,仍然是移动8位 P1 = 0xff; //关闭显示 a = a << 1; //左移一位,右边添0,这样,就会有两个发光 } //到前边去循环,显示两个发光;//再循环,有三个发光;//……} ...
  • 单片机C语言,一个按键控制三个流水灯
    答:void main(){ int i=0; //设置参考变量 //初始化 p1.0=1;p1.1=0;p1.2=0;//进入按键操作 while(1){ if(p2.2==0){ i++;if(i==1){ p1.0=0;p1.1=1;p1.2=0;delay();//延时,由于不知道你用的单片机型号,这个需要你自己设定了。} if(i==2){ p1.2=1;p1.0...