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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)用4個(gè)按鈕控制4種不同花樣的LED燈 然后加什么程序進(jìn)入死循環(huán)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:426611 發(fā)表于 2018-11-14 19:36 來(lái)自觸屏版 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
用4個(gè)按鈕控制4種不同花樣的LED燈 然后加什么程序進(jìn)入死循環(huán)

IMG_20181114_184911.jpg (102.01 KB, 下載次數(shù): 33)

IMG_20181114_184911.jpg

IMG_20181114_193536.jpg (89.34 KB, 下載次數(shù): 28)

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

使用道具 舉報(bào)

沙發(fā)
ID:111634 發(fā)表于 2018-11-15 08:29 | 只看該作者
在原地踏步或反復(fù)執(zhí)行。
回復(fù)

使用道具 舉報(bào)

板凳
ID:213173 發(fā)表于 2018-11-15 11:02 | 只看該作者
給你寫(xiě)個(gè)程序,經(jīng)仿真無(wú)誤。按鍵和LED端口可按實(shí)際電路修改。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char

uchar code table1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar code table2[]={0x18,0x24,0x42,0x81,0x18,0x24,0x42,0x81};
uchar code table3[]={0x81,0x42,0x24,0x18,0x81,0x42,0x24,0x18};
uchar code table4[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
uint  Cnt250us=0;
uchar key=0;

void Timer0Init()                //250微秒@11.0592MHz
{
        TMOD |= 0x02;                //設(shè)置定時(shí)器模式
        TL0 = 0x1A;                //設(shè)置定時(shí)初值
        TH0 = 0x1A;                //設(shè)置定時(shí)重載值
        TF0 = 0;                //清除TF0標(biāo)志
        TR0 = 1;                //定時(shí)器0開(kāi)始計(jì)時(shí)
}

void delay(uint xms)     //延時(shí)子函數(shù)
{
    uint i,j;
    for(i=xms;i>0;i--)
            for(j=110;j>0;j--);
}

void key_scan()        //按鍵檢測(cè)子函數(shù)
{
        uchar x;
        static bit sign=0;
        x=P1&0x0f;
        if(x!=0x0f)         //檢測(cè)鍵是否被按下
        {
                delay(10);
                if((x!=0x0f)&&(sign==0))
                {                           
                        sign=1;
                        x=P1&0x0f;
                        switch(x)
                        {
                                case 0x0e: key=1; break;
                                case 0x0d: key=2; break;
                                case 0x0b: key=3; break;
                                case 0x07: key=4; break;
                        }
                }
        }
        else sign=0;
}

void key_service()    //按鍵服務(wù)程序
{
        static uchar i=0;
        if(key!=0)
        {
                switch(key)       
                {
                        case 1:
                                P2=~table1;
                                break;
       
                        case 2:       
                                P2=~table2;
                                break;
       
                        case 3:       
                                P2=~table3;
                                break;
       
                        case 4:       
                                P2=~table4;
                                break;
                }                  
                i++;
                if(i>=8)
                        i=0;
        }
}

void main()                           
{
        Timer0Init();
        while(1)
        {
                key_scan();
                if(TF0==1)
                {
                        TF0=0;
                        Cnt250us++;
                        if(Cnt250us>=1000)
                        {
                                Cnt250us=0;
                                key_service();
                        }
                }
        }
}




回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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