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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

我想讓按鍵按下LED一直循環(huán)閃亮,松開就滅,要怎么去修改單片機(jī)程序求大神指教

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:388130 發(fā)表于 2019-8-16 13:54 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
#include "reg52.h"               

typedef unsigned int u16;
typedef unsigned char u8;

sbit k1  =P1^0;  //定義按鍵輸入端口
sbit led1=P1^4;  //定義led輸出端口
sbit led2=P1^3;
sbit led3=P1^2;
sbit led4=P1^1;
sbit led5=P0^5;
sbit led6=P0^4;
sbit led7=P2^7;
sbit led8=P2^6;


/*------------------------------------------------
                    yanshi
------------------------------------------------*/


        void delay500ms(void)   //誤差 0us
{
    unsigned char a,b,c;
    for(c=205;c>0;c--)
        for(b=116;b>0;b--)
            for(a=9;a>0;a--);
}



void keypros()
{

     if(k1==0)        
        {        

                if(k1==0)
                {

                        led1=0;
                                                led2=0;        
                                                delay500ms();
                                                led3=0;
                                                led4=0;
                                                delay500ms();
                                                led5=0;
                                                led6=0;
                                                delay500ms();
                                                led7=0;
                                                led8=0;
                }
                else
                {
                        led1=1;
                                                led2=1;
                                                led3=1;
                                                led4=1;
                                                led5=1;
                                                led6=1;
                                                led7=1;
                                                led8=1;
                 }

        }
}  

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

使用道具 舉報

沙發(fā)
ID:230975 發(fā)表于 2019-8-17 07:24 來自手機(jī) | 只看該作者
程序沒傳完
回復(fù)

使用道具 舉報

板凳
ID:213173 發(fā)表于 2019-8-17 08:10 | 只看該作者
按你的意圖改寫,但松手后要等一輪循環(huán)結(jié)束才全熄滅。如果想松手立即全熄滅就要用定時器中斷:
#include "reg52.h"               

typedef unsigned int u16;
typedef unsigned char u8;

sbit k1  =P1^0;  //定義按鍵輸入端口
sbit led1=P1^4;  //定義led輸出端口
sbit led2=P1^3;
sbit led3=P1^2;
sbit led4=P1^1;
sbit led5=P0^5;
sbit led6=P0^4;
sbit led7=P2^7;
sbit led8=P2^6;


/*------------------------------------------------
                    yanshi
------------------------------------------------*/


void delay500ms(void)   //誤差 0us
{
        unsigned char a,b,c;
        for(c=205;c>0;c--)
                for(b=116;b>0;b--)
                        for(a=9;a>0;a--);
}

void keypros()
{       
        if(k1==0)        
        {                       
                led1=0;
                led2=0;        
                led3=1;
                led4=1;
                led5=1;
                led6=1;
                led7=1;
                led8=1;
                delay500ms();
                led1=1;
                led2=1;
                led3=0;
                led4=0;
                led5=1;
                led6=1;
                led7=1;
                led8=1;
                delay500ms();
                led1=1;
                led2=1;
                led3=1;
                led4=1;
                led5=0;
                led6=0;
                led7=1;
                led8=1;
                delay500ms();
                led1=1;
                led2=1;
                led3=1;
                led4=1;
                led5=1;
                led6=1;
                led7=0;
                led8=0;
                delay500ms();
        }
        else
        {
                led1=1;
                led2=1;
                led3=1;
                led4=1;
                led5=1;
                led6=1;
                led7=1;
                led8=1;
        }
}
void main()
{
        while(1)
        {
                keypros();
        }
}
回復(fù)

使用道具 舉報

地板
ID:462827 發(fā)表于 2019-8-17 08:38 | 只看該作者
你的8顆led不在同一個P口上,不能簡單地通過位操作來循環(huán)亮滅每顆燈,所以建議用一個函數(shù)來封裝對它們的操作,只需要傳送的參數(shù)是第n顆燈以及要它亮或滅就行了。

因?yàn)橐獙Π存I作出即時的反應(yīng),所以,對燈的操作應(yīng)在中斷里進(jìn)行,而按鍵的檢測輪詢和中斷都可以。
回復(fù)

使用道具 舉報

5#
ID:123289 發(fā)表于 2019-8-17 09:18 | 只看該作者
1、將顯示與按鍵分開編寫。
2、按鍵:做個標(biāo)記B_KEY,按下時=1,反之為0。
3、編寫一個循環(huán)閃亮程序,在B_KEY=1時執(zhí)行它。
4、在B_KEY=0,時滅燈。
回復(fù)

使用道具 舉報

6#
ID:592674 發(fā)表于 2019-8-19 08:46 | 只看該作者
沒有main函數(shù)啊怎么會亮呢
回復(fù)

使用道具 舉報

7#
ID:560467 發(fā)表于 2019-8-19 15:19 | 只看該作者
把else的內(nèi)容放到最外一個if那里就ok
回復(fù)

使用道具 舉報

8#
ID:592379 發(fā)表于 2019-8-27 10:14 | 只看該作者
設(shè)定一個標(biāo)記位,按鍵按住時一直將其置1,松開后置0,然后在定時器中斷里添加一個循環(huán)點(diǎn)燈程序,在標(biāo)記位為1時調(diào)用,標(biāo)記位為0時將所有燈熄滅
回復(fù)

使用道具 舉報

9#
ID:275826 發(fā)表于 2019-8-27 22:04 | 只看該作者
void main()
  {while(1)
     {if(!key)
       { P1=~P1;
         Delayms(500);
        }
     else P1=0xff;
    }
  }
回復(fù)

使用道具 舉報

10#
ID:458699 發(fā)表于 2019-8-28 00:10 | 只看該作者
循環(huán)檢測按鍵狀態(tài),分別把一位一位的值置一,其他置零,就能夠達(dá)到循環(huán)閃爍效果,按鍵狀態(tài)為松開時,直接全部置零退出就行了。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91在线观看 | 久久久91 | av在线天堂 | 九九看片 | 欧美性精品 | 毛片入口 | 日韩欧美福利视频 | 国产伦一区二区三区久久 | 日韩精品1区2区3区 成人黄页在线观看 | 成人欧美一区二区三区在线播放 | 欧美狠狠操 | 久久av一区二区三区 | av中文字幕在线播放 | 久久久久成人精品免费播放动漫 | 欧美日日| 午夜小视频在线播放 | 日本精品免费 | 国产精品久久久久久亚洲调教 | 亚洲福利片 | 狠狠爱免费视频 | 国产一级片一区二区 | 91在线看 | 国产精品国产三级国产aⅴ入口 | h在线播放 | 一区二区成人 | 91视频免费黄 | 啪啪精品| 精品视频在线观看 | 夜夜操操操 | 欧美日韩中文在线观看 | 日本h片在线观看 | 欧美一级大片 | 日韩在线播放av | www国产精品| 操久久 | 欧美在线视频一区 | 国内精品久久久久久久 | 欧美日韩不卡合集视频 | 一区在线播放 | 男女下面一进一出网站 | 日韩一区二区福利 |