找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1580|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)按鍵控制LED燈怎么編寫的功能都實(shí)現(xiàn)不了?哪里有問題?

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 1 黑幣 回復(fù)本帖可獲得 1 黑幣獎(jiǎng)勵(lì)! 每人限 1 次(中獎(jiǎng)概率 10%)
跳轉(zhuǎn)到指定樓層
樓主


#include<reg52.h>   //單片機(jī)頭文件

#define uchar unsigned char    //宏定義
#define uint unsigned int
        
sbit LED1=P2^0;    //LED燈
sbit LED2=P2^1;

sbit Key1=P0^0;                //開
sbit Key2=P0^1;                //關(guān)
sbit Key3=P0^2;                //功能1
sbit Key4=P0^3;                //功能2
sbit Key5=P0^4;                //功能3


void delay1ms(uint Y)     //延時(shí)函數(shù)
{
        int i;
        while(Y--)for(i=0;i<120;i++);
}


void main()
{
        while(1)
  {
                        if(Key1==0)    //開始
                        {
                                delay1ms(5);
                                if(Key1==0)
                                {
                                                LED1=1;LED2=0;
                                                if(Key3==0)   //功能1
                                                {
                                                delay1ms(5);
                                                        if(Key3==0)
                                                        {

                                                                        LED1=0;
                                                                        delay1ms(200);
                                                                        LED1=1;
                                                                        delay1ms(200);
                                                                        while(Key3==0);
                                                        }
                                                }
                                                if(Key4==0)  //功能2
                                                {
                                                        delay1ms(5);
                                                        if(Key4==0)
                                                        {
                                                                LED1=0;LED2=1;
                                                                while(Key4==0);
                                                        }
                                                }
                                                if(Key5==0)   //功能3
                                                {
                                                        delay1ms(5);
                                                        if(Key5==0)
                                                        {
                                                                LED1=1;LED2=0;
                                                        }
                                                }
                                                while(Key1==0);
                                                        }
                        }
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:336670 發(fā)表于 2019-5-17 17:37 | 只看該作者
#include<reg52.h>
sbit led1=P0^0;
sbit led2=P0^1;

sbit key1=P2^0;
sbit key2=P2^1;
sbit key3=P2^2;
sbit key4=P2^3;
sbit key5=P2^4;
void delay()
{
        unsigned int a=30000;
        while(a--);       
}
void main()
{
        while(1)
        {
        if(key1==0)
                {
                        if(key2!=0)
                        {
                                if(key3==0)
                                {
                                        led1=~led1;
                                        delay();
                                }
                                else if(key4==0)
                                {
                                        led1=1;
                                        led2=0;
                                }
                                else if(key5==0)
                                {
                                        led1=0;
                                        led2=1;
                                }
                        }
                }
        }
}
你把引腳改了試試這個(gè)呢

kz.png (24.68 KB, 下載次數(shù): 45)

kz.png
回復(fù)

使用道具 舉報(bào)

板凳
ID:213173 發(fā)表于 2019-5-18 08:05 | 只看該作者
如果P0口接按鍵需要接10K上拉電阻,LED要串接1K限流電阻。程序改這樣就可以滿足樓主全部要求。
  1. #include<reg52.h>   //單片機(jī)頭文件

  2. #define uchar unsigned char    //宏定義
  3. #define uint unsigned int
  4.         
  5. sbit LED1=P2^0;    //LED燈
  6. sbit LED2=P2^1;

  7. sbit Key1=P0^0;                //開
  8. sbit Key2=P0^1;                //關(guān)
  9. sbit Key3=P0^2;                //功能1
  10. sbit Key4=P0^3;                //功能2
  11. sbit Key5=P0^4;                //功能3


  12. void delay1ms(uint Y)     //延時(shí)函數(shù)
  13. {
  14.         int i;
  15.         while(Y--)
  16.                 for(i=0;i<120;i++);
  17. }

  18. void main()
  19. {
  20.         bit i=0;
  21.         while(1)
  22.         {
  23.                 if(Key1==0)    //開始
  24.                 {
  25.                         delay1ms(5);
  26.                         if(Key1==0)
  27.                         {
  28.                                 i=1;
  29.                                 LED1=0;LED2=0;
  30.                                 while(Key1==0);
  31.                         }
  32.                 }
  33.                 if(Key2==0)    //停止
  34.                 {
  35.                         delay1ms(5);
  36.                         if(Key2==0)
  37.                         {
  38.                                 i=0;
  39.                                 LED1=1;LED2=1;
  40.                                 while(Key2==0);
  41.                         }
  42.                 }
  43.                 if(i==1)
  44.                 {
  45.                         if(Key3==0)   //功能1
  46.                         {
  47.                                 delay1ms(5);
  48.                                 if(Key3==0)
  49.                                 {
  50.                                         LED1=1;LED2=1;
  51.                                         while(Key3==0);
  52.                                         while(Key1&Key2&Key4&Key5)
  53.                                         {
  54.                                                 LED1=~LED1;
  55.                                                 delay1ms(250);
  56.                                         }
  57.                                         LED1=1;
  58.                                 }
  59.                         }
  60.                         if(Key4==0)  //功能2
  61.                         {
  62.                                 delay1ms(5);
  63.                                 if(Key4==0)
  64.                                 {
  65.                                         LED1=0;LED2=1;
  66.                                         while(Key4==0);
  67.                                 }
  68.                         }
  69.                         if(Key5==0)   //功能3
  70.                         {
  71.                                 delay1ms(5);
  72.                                 if(Key5==0)
  73.                                 {
  74.                                         LED1=1;LED2=0;
  75.                                         while(Key5==0);
  76.                                 }
  77.                         }               
  78.                 }
  79.         }
  80. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表