1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2509|回復: 3
收起左側

請教單片機按鍵順序點燈的思路

[復制鏈接]
ID:500671 發表于 2019-10-11 18:18 | 顯示全部樓層 |閱讀模式
請教各位大神,我是新手,     單片機32個IO口中設置3個按鍵,如先觸發第一個按鍵后29個IO口正向順序亮燈,間 隔為1秒,等待觸發第二個按鍵后燈正向順序關燈, 如先觸發第二個按鍵時逆向亮燈,再等待觸發第一個按鍵后逆向關燈。第三個按鍵為全開和順序開的選擇,請問程序的思路是如何呢?
回復

使用道具 舉報

ID:332444 發表于 2019-10-11 22:12 | 顯示全部樓層
這個簡單主循環中搞定,計數29個中分別按8,16,24,29進行判斷,再設3個狀態變量即可。
回復

使用道具 舉報

ID:332444 發表于 2019-10-11 22:20 | 顯示全部樓層
1569567480_848734.png
以上16個LED例子可供思路參考。

回復

使用道具 舉報

ID:332444 發表于 2019-10-11 22:21 | 顯示全部樓層

#include "reg51.h"
#include<intrins.h>       
void LedXunHuan()
{
    unsigned char i = 0, t = 0, Cnt = 0;
    while(1)
    {
        if(!i) P1 = 0xff;
        else if(i==9)P1 = 254;
        else if(i>8) P1 = _crol_(P1,1); else P1<<=1;//逐個遞亮,_crol_(P1,1);單個亮,點亮16個的把其中一個P1改為P2即可.
        Cnt=89;
        while(Cnt) if(!++t) --Cnt;
        if(++i>16)i=0;//if(i++>=8)i=0;if(++i>=9)i=0;等價3式
    }
}
void main()
{
    LedXunHuan();
}
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表