找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求助這類單片機(jī)程序應(yīng)該如何編寫?(按鍵實(shí)現(xiàn)一燈閃爍和八燈閃爍的切換)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:434886 發(fā)表于 2018-12-15 16:53 | 只看該作者 回帖獎勵(lì) |倒序?yàn)g覽 |閱讀模式
用一個(gè)按鍵實(shí)現(xiàn)一燈閃爍和八燈閃爍的切換,萌新不懂該如何實(shí)時(shí)切換啊,程序思路應(yīng)該怎么寫?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:382454 發(fā)表于 2018-12-15 17:27 | 只看該作者
很簡單.
先要寫一個(gè)閃燈的函數(shù),之后呢,按一個(gè)鍵,打開一個(gè)LED。再按一下鍵打開8個(gè)LED口。而按鍵標(biāo)志位可以定義一個(gè)bit變量來實(shí)現(xiàn)。即標(biāo)志位為0時(shí),就打開一個(gè)IO口,當(dāng)標(biāo)志位為1時(shí),就打開8個(gè)IO口,驅(qū)動8個(gè)LED燈。
回復(fù)

使用道具 舉報(bào)

板凳
ID:434886 發(fā)表于 2018-12-15 17:39 | 只看該作者
univers 發(fā)表于 2018-12-15 17:27
很簡單.
先要寫一個(gè)閃燈的函數(shù),之后呢,按一個(gè)鍵,打開一個(gè)LED。再按一下鍵打開8個(gè)LED口。而按鍵標(biāo)志位可 ...

那求問大佬這一段的切換如何實(shí)現(xiàn)呢?
回復(fù)

使用道具 舉報(bào)

地板
ID:423511 發(fā)表于 2018-12-17 17:28 | 只看該作者
我寫了一個(gè)程序你看一下:
#include<reg52.h>

typedef unsigned int u8;
#define led P2          //定義led由P2口控制

sbit key=P3^1;          //定義開關(guān)與P3^1口相連
sbit one=P2^0;          //8個(gè)IO口中的一個(gè)

u8 num=1;
u8 m;
void delay(u8 z)            //
{                                 //延時(shí)函數(shù)大概延時(shí)1us
        u8 x,y;                 //
        for(x=z;x>0;x--)
        for(y=114;y>0;y--);
}

void keypor()      //檢測按鍵函數(shù)
{
        if(key == 0)
        {
                delay(10);
                if(key == 0)
                {
                   num++;
                }
        }
        while(!key);
        m=num%2;
}

void oneLED()           //一個(gè)LED閃爍
{
          one=~one;
          delay(100);
}

void eightLED()         //8個(gè)LED閃爍
{
        led=0x00;
        delay(100);
        led=0xff;
        delay(100);

}

void main()              //主函數(shù)
{
        while(1)
        {
                keypor();       
                if(m==0)
                {
                        oneLED();
                }
                if(m==1)
                {
                        eightLED();
                }
        }
}

評分

參與人數(shù) 1黑幣 +10 收起 理由
yong761228 + 10 贊一個(gè)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

5#
ID:357520 發(fā)表于 2018-12-18 11:36 | 只看該作者
weiweimao1 發(fā)表于 2018-12-17 17:28
我寫了一個(gè)程序你看一下:
#include

#include<reg52.h>

typedef unsigned int u8;
#define led P2          //定義led由P2口控制

sbit key=P3^1;          //定義開關(guān)與P3^1口相連
sbit one=P2^0;          //8個(gè)IO口中的一個(gè)

u8 m;
void delay(u8 z)            //
{                                 //延時(shí)函數(shù)大概延時(shí)1us
        u8 x,y;                 //
        for(x=z;x>0;x--)
        for(y=114;y>0;y--);
}

void keypor()      //檢測按鍵函數(shù)
{
        if(key == 0)
        {
                delay(10);
                if(key == 0)
                {
                   num++;
                }
        }
        while(!key);
        if(m==2)
        {
                 m=0;
        }
}

void oneLED()           //一個(gè)LED閃爍
{
          one=~one;
          delay(100);
}

void eightLED()         //8個(gè)LED閃爍
{
        led=0x00;
        delay(100);
        led=0xff;
        delay(100);

}

void main()              //主函數(shù)
{
        while(1)
        {
                keypor();        
                if(m==0)
                {
                        oneLED();
                }
                if(m==1)
                {
                        eightLED();
                }
        }
回復(fù)

使用道具 舉報(bào)

6#
ID:357520 發(fā)表于 2018-12-18 11:37 | 只看該作者
#include<reg52.h>

typedef unsigned int u8;
#define led P2          //定義led由P2口控制

sbit key=P3^1;          //定義開關(guān)與P3^1口相連
sbit one=P2^0;          //8個(gè)IO口中的一個(gè)

u8 m;
void delay(u8 z)            //
{                                 //延時(shí)函數(shù)大概延時(shí)1us
        u8 x,y;                 //
        for(x=z;x>0;x--)
        for(y=114;y>0;y--);
}

void keypor()      //檢測按鍵函數(shù)
{
        if(key == 0)
        {
                delay(10);
                if(key == 0)
                {
                   num++;
                }
        }
        while(!key);
        if(m==2)
        {
                 m=0;
        }
}

void oneLED()           //一個(gè)LED閃爍
{
          one=~one;
          delay(100);
}

void eightLED()         //8個(gè)LED閃爍
{
        led=0x00;
        delay(100);
        led=0xff;
        delay(100);

}

void main()              //主函數(shù)
{
        while(1)
        {
                keypor();        
                if(m==0)
                {
                        oneLED();
                }
                if(m==1)
                {
                        eightLED();
                }
        }
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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