久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 這個單片機程序怎樣改 按鍵按下后只在LED1和LED2之間來回切換 [打印本頁]

作者: dj3365191    時間: 2023-5-28 18:32
標題: 這個單片機程序怎樣改 按鍵按下后只在LED1和LED2之間來回切換
請教各位這個程序怎樣改成按鍵按下后只在LED1和LED2之間來回切換,就是說上電LED1,LED2都不亮,按鍵按下后LED1亮,LED2滅。再按一次LED2亮,LED1滅,再按一次又是LED1亮,LED2滅,如此反復循環,謝謝

#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;

u16 mode;

sbit LED1=P2^0;
sbit LED2=P2^1;
sbit LED3=P2^2;
sbit LED4=P2^3;
sbit LED5=P2^4;
sbit LED6=P2^5;
sbit LED7=P2^6;
sbit LED8=P2^7;
sbit key=P3^1;

void delay(u16 i)
{
        while(i--);
}

void LED()
{
        switch(mode)
        {
                case(0):LED1=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED7=1;LED8=1;break;
                case(1):LED1=0;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED7=1;LED8=1;break;
                case(2):LED1=1;LED2=0;LED3=1;LED4=1;LED5=1;LED6=1;LED7=1;LED8=1;break;
                case(3):LED1=1;LED2=1;LED3=0;LED4=1;LED5=1;LED6=1;LED7=1;LED8=1;break;
                case(4):LED1=1;LED2=1;LED3=1;LED4=0;LED5=1;LED6=1;LED7=1;LED8=1;break;
                case(5):LED1=1;LED2=1;LED3=1;LED4=1;LED5=0;LED6=1;LED7=1;LED8=1;break;
                case(6):LED1=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=0;LED7=1;LED8=1;break;
                case(7):LED1=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED7=0;LED8=1;break;
                case(8):LED1=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED7=1;LED8=0;break;

        }
}


void main()
{
        while(1)
        {
                LED();
                if(key==0)
                {
                        delay(1000);
                        if(key==0)
                        {
                                mode++;
                                if(mode==9)
                                {
                                        mode=0;
                                }
                                while(!key);
                        }
                }
        }
}



作者: Hephaestus    時間: 2023-5-28 20:00
把這一段
  1.         switch(mode)
  2.         {
  3.         }
復制代碼

改成
  1. LED1=mode&1;
  2. LED2=!(mode&1);
復制代碼

作者: lkc8210    時間: 2023-5-28 23:04


作者: lsy5110    時間: 2023-5-28 23:07
void LED()
{
        switch(mode)
        {
                case(0):LED1=1;LED2=1;break;
                case(1):LED1=0;LED2=1;break;
                case(2):LED1=1;LED2=0;break;
                case(3):LED1=0;LED2=1;break;
                case(4):LED1=1;LED2=0;break;
                case(5):LED1=0;LED2=1;break;
                case(6):LED1=1;LED2=0;break;
                case(7):LED1=0;LED2=1;break;
                case(8):LED1=1;LED2=0;break;

        }
}

作者: leave323    時間: 2023-5-28 23:41
#include <reg52.h>
sbit LED1=P2^0;
sbit LED2=P2^1;
void delay(int i)
{
        while(i--);
}
void main()
{
while(1)
{  
      LED1=0;
      LED2=1;
      if(key==0)
                {
                      delay(1000);
                      if(key==0)
                      {LED1=~LED1;LED2=~LED2;while(!key);}
}
   
}



作者: ZZZZZ134679    時間: 2023-5-29 00:06
#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;

bit mode;

sbit LED1=P2^0;
sbit LED2=P2^1;
sbit LED3=P2^2;
sbit LED4=P2^3;
sbit LED5=P2^4;
sbit LED6=P2^5;
sbit LED7=P2^6;
sbit LED8=P2^7;
sbit key=P3^1;

void delay(u16 i)
{
        while(i--);
}
void main()
{
      LED3=LED4=LED5=LED6=LED7=LED8=1;
        while(1)
        {
                if(key==0)
                {
                    delay(20);
                    while(key==0)
                     delay(20);
                        mode^=1;
                       LED1=mode?1:0;
                       LED2=mode?0:1;
                }
        }
}
作者: wulin    時間: 2023-5-29 05:59
去掉所有贅句,越簡單越好。
#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;

sbit LED1=P2^0;
sbit LED2=P2^1;

sbit key=P3^1;

void delay(u16 i)
{
        while(i--);
}

void main()
{
        while(1)
        {
                if(!key)
                {
                        delay(200);
                        if(!key)
                        {
                                LED1=~LED1;
                                LED2=~LED1;
                                while(!key);
                        }
                }
        }
}
作者: 清風皓月撫心繞    時間: 2023-5-29 20:21
把按鍵分出來定一個標志位
作者: 王秋冬    時間: 2023-5-29 20:56
編程技巧,能減少程序步數,是程序簡潔,謝謝分享。
作者: chxelc    時間: 2023-5-30 08:43
#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;

u16 mode;

sbit LED1=P2^0;
sbit LED2=P2^1;

sbit key=P3^1;

void delay(u16 i)
{
        while(i--);
}

void main()
{
        while(1)
        {
                LED1=LED2=1;//假設LED高電平滅,低電平亮
                if(key==0)//開關按下為低電平
                {
                        delay(1000);//延時防誤觸
                        if(key==0)
                        {
                              LED1=~LED1;//LED1取反,上電LED1不亮,第一次按時,LED1亮,第2次按時LED1滅                              LED2=~LED1;//LED2取LED1反,上電時LED2不亮,第一次按時,LED1亮,LED2滅,第二次按時,LED1滅,LED2亮

                        }
                }
        }
}

作者: lzts88    時間: 2023-5-30 10:52
主程序 if(mode==9) 改成 if(mode == 3), 如果你循環是有滅燈的就不用改了, 你要求不滅燈只是1,2燈交叉亮滅的, 把下面  mode=0; 改為 mode = 1; 就改完收工了
作者: 13423265909    時間: 2023-5-30 11:02
用switch case來試試                case(0):LED1=1;LED2=1;break;                 case(1):LED1=0;LED2=1;break;                 case(2):LED1=1;LED2=0;break;                 case(3):LED1=0;LED2=1;break;                 case(4):LED1=1;LED2=0;break;                 case(5):LED1=0;LED2=1;break;                 case(6):LED1=1;LED2=0;break;                 case(7):LED1=0;LED2=1;break;                 case(8):LED1=1;LED2=0;break;
作者: dj3365191    時間: 2023-5-30 11:49
謝謝各位的詳細解答




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久成人免费一区二区 | 久久久一二三区 | 久久久久九九九女人毛片 | 亚洲一区二区三区观看 | 黄频免费 | 在线观看av网站 | 黄色在线观看网址 | 视频在线亚洲 | 欧美黑人又粗大 | 日韩三级 | 成人免费区一区二区三区 | jlzzjlzz欧美大全| 中文字幕 在线观看 | 毛片入口 | 中文字幕在线观看一区 | 亚洲在线看 | 亚洲 中文 欧美 日韩 在线观看 | 欧美日韩在线观看视频 | 日韩成人一区 | 国产一区二区不卡 | 不卡一区 | 免费看黄色小视频 | 成人午夜免费视频 | 欧美日韩在线电影 | 欧美在线视频一区二区 | 91久久久久久久久 | 日本成人免费网站 | 色999视频 | 精品国产乱码久久久久久影片 | 成人国产在线视频 | 91免费观看视频 | 久久精品色欧美aⅴ一区二区 | 欧美一区二区三区在线观看 | 亚洲欧洲小视频 | 天堂一区 | 国产一区二 | 国产激情91久久精品导航 | 蜜桃av人人夜夜澡人人爽 | 欧美精品日韩精品 | 午夜免费视频 | 日本成人在线播放 |