找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于單片機按鍵按下改變流水燈方向源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:913310 發(fā)表于 2021-5-2 18:46 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
P2口接8個LED流水燈,P3.0接一個按鍵
按鍵按下一次流水燈方向改變一次

單片機源程序如下:
#include<reg52.h>             //51系列單片機頭文件
#include<intrins.h>           //51系列單片機頭文件
#define uint unsigned int     //宏定義
#define uchar unsigned char   //宏定義
sbit k1=P3^0;
uchar a,b,c,d,y=0;            //定義一個變量,用來給P2口賦值
void delayms(uint xms)        //延時子函數(shù)
{
  uint i,j;
  for(i=xms;i>0;i--)          //i=xms即延時約xms毫秒
  for(j=110;j>0;j--);      
}
void key()
{
  uchar x;
  if(k1==0)
  {
    delayms(10);              //延時10ms 去抖
    if(k1==0)                                  //再判斷k1按鍵是否按下
    {
      while(!k1);
      x++;
      if(x==4)
      x=1;
      if(y==4)
      x=0;
      switch(x)                                  //條件選擇
      {
        case 1: y=1; break;
        case 2: y=2; break;
        case 3: y=3; break;
        default: break;  
      }
    }
  }
}
void display()
{   
    if(y==0)
        {
          P2=a;
          delayms(500);
          a=~a;                                 //狀態(tài)0時 LED閃爍
        }  
    if(y==1)
    {      
      P2=b;            
      delayms(500);                     
      b=_crol_(b,1);           //狀態(tài)1時 LED選擇左移
    }
    if(y==2)
    {
      P2=c;            
      delayms(500);                     
      c=_cror_(c,1);         //狀態(tài)2時 LED選擇右移
    }      
    if(y==3)
    {
      P2=d;           
      delayms(500);                     
      d=d;                     //狀態(tài)3時  LED全亮
    }
  }
void main()            
{
  a=0xff;                         //高4位和低4位都置為1
  b=0x01;                                //只有低4位的最低位為1
  c=0xfe;                                //低4位的最低位為0
  d=0xff;  
  while(1)            
  {  
    key();
    display();                   //按鍵顯示
  }
}


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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