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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1375|回復: 6
打印 上一主題 下一主題
收起左側

有兩種單片機流水燈形式,想要加兩個按鍵切換流水燈模式,程序應該怎么改,謝謝

[復制鏈接]
回帖獎勵 50 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:1105755 發(fā)表于 2024-5-20 21:53 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
新手求助:有兩種流水燈形式,想加兩個按鍵切換流水燈模式,按鍵程序搞半天也沒整明白,請高人指點,謝謝!按鍵1執(zhí)行 void disp0()
按鍵2執(zhí)行 void disp1()
請大佬們幫幫忙,萬分感謝!
單片機源程序如下:
#include <REGX52.H>
#define        uint        unsigned int
#define        uchar        unsigned char
uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED從低位往高位移
uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED從高位往低位移
uchar i,j;                //定義循環(huán)變量
uint tt=70;                //定義時間指數(shù)
void delay(uint time)        //延時函數(shù)
{
        uint x,y;
        for(x=time;x>0;x--)
        for(y=110;y>0;y--);
}

void disp0()                        //狀態(tài)1 LED順時針轉一圈
{
        for(i=0;i<8;i++)
        {
                P2=table1[ i];
                delay(100);
        }
        P2=0xff;

        for(i=0;i<8;i++)
        {
                P0=table0[ i];
                delay(100);
        }
        P0=0xff;
}
void disp1()                        //狀態(tài)0 所有LED閃爍3次
{
        for(i=0;i<3;i++)
        {
                P0=0x00; P2=0x00;
                delay(300);
                P0=0xff; P2=0xff;
                delay(300);
        }
}
void main()
{        
        while(1)
        {        
         disp0();                //狀態(tài)1 LED順時針轉一圈
        disp1();                //狀態(tài)0 所有LED閃爍3次
  }

}



93caf1d444a37d821636c66be211e3c.png (42.97 KB, 下載次數(shù): 18)

93caf1d444a37d821636c66be211e3c.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1080935 發(fā)表于 2024-5-21 08:18 | 只看該作者
定義按鍵端口
sbit key1 =  P1^6;
sbit key2 =  P1^7;
在主循環(huán)中while(1)中改為
{
  if(!key1)
  {//可以考慮消抖,仿真中可不用。
    disp0();
    while(!key1);//等待按鍵釋放
  }
  if(!key2)
  {
     disp1();
     while(!key2);//等待按鍵釋放
  }
}
這種方法不是特別推薦,可以額外定義一邊量作為狀態(tài)初始為0,按鍵按下后狀態(tài)改變(1或2),根據(jù)狀態(tài)調用對應函數(shù),調用完后變量清零。這相當于只調用一次的任務。
回復

使用道具 舉報

板凳
ID:743654 發(fā)表于 2024-5-21 08:58 | 只看該作者
先定義兩個按鍵參數(shù)sbit k1=P1^6; sbit k2=P1^7;  主函數(shù):        if(k1==0)        //檢測按鍵K1是否按下{delay(1000);   //消除抖動 一般大約10ms  if(k1==0)         //再次判斷按鍵是否按下{disp0();   //模式1}while(!k1);         //檢測按鍵1是否松開              if(k2==0)        //檢測按鍵K2是否按下{delay(1000);   //消除抖動 一般大約10ms  if(k2==0)//再次判斷按鍵是否按下{disp1();   //模式2}while(!k2);         //檢測按鍵2是否松開
回復

使用道具 舉報

地板
ID:1109793 發(fā)表于 2024-5-21 09:25 | 只看該作者
if(按鍵1)disp0();
if(按鍵2)disp1();
回復

使用道具 舉報

5#
ID:1105755 發(fā)表于 2024-5-23 20:28 | 只看該作者
LaoYuTou 發(fā)表于 2024-5-21 08:18
定義按鍵端口
sbit key1 =  P1^6;
sbit key2 =  P1^7;

謝謝!剛開始弄,研究一下
回復

使用道具 舉報

6#
ID:1105755 發(fā)表于 2024-5-23 20:29 | 只看該作者
cheney03 發(fā)表于 2024-5-21 08:58
先定義兩個按鍵參數(shù)sbit k1=P1^6; sbit k2=P1^7;  主函數(shù):        if(k1==0)        //檢測按鍵K1是否按下{delay(1000);  ...

謝謝!我弄一下試試。
回復

使用道具 舉報

7#
ID:1105755 發(fā)表于 2024-5-23 20:30 | 只看該作者
xiaobendan001 發(fā)表于 2024-5-21 09:25
if(按鍵1)disp0();
if(按鍵2)disp1();

謝謝!
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产视频久久久久 | 日韩成人免费av | 婷婷成人在线 | 亚洲人一区 | 观看av| 欧美在线观看一区 | jizz18国产| 欧美日韩久 | 国产午夜精品一区二区三区嫩草 | 亚洲高清在线观看 | 国产不卡一区在线观看 | 中文字幕视频在线看 | 免费视频一区二区 | 日韩精品在线观看网站 | 国产日韩欧美一区二区在线播放 | 久久久久久久久久久久久9999 | 欧美精品久久久久久久久老牛影院 | 黄色国产大片 | 神马影院一区二区三区 | 国产精品久久久亚洲 | 亚洲永久精品国产 | 日韩一区二区三区av | 天天干狠狠操 | 亚洲国产成人精品女人 | 久久88| 看黄在线| 男人的天堂久久 | 国产精品毛片一区二区在线看 | 美女视频一区 | 国产精品日韩欧美一区二区三区 | 天天躁日日躁aaaa视频 | 欧美一区视频 | 成人a在线观看 | 精品亚洲一区二区三区四区五区高 | 中文字幕乱码一区二区三区 | 国产女人与拘做受视频 | 中文字幕第一页在线 | 日日夜夜天天综合 | 国产伦精品一区二区三区照片91 | 午夜一区二区三区在线观看 | 亚洲一区欧美一区 |