找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

新人求助改單片機程序,第一次按下按鍵,LED燈從上到下一個一個亮

[復制鏈接]
跳轉到指定樓層
樓主
ID:1018743 發(fā)表于 2022-4-15 19:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
出來的效果是
第一次按下按鍵,LED燈從上到下一個一個亮,
第二次按下,LED燈從下到上兩個兩個亮,
第三次按下,LED燈一次亮四個,交替閃爍。
有沒有大佬幫忙改改程序
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int  
#define false 0
#define true 1
#define key P1    //??
#define LED P0 //?
uchar value=0;
uchar aa=0x01;
uchar bb;
uchar cc;
uint x,y,z;
uint i=1;
uint j=1;
void delay1()     //??????
{
    uint k,j;
    for(j=0;j<10;j++)
    for(k=0;k<1000;k++);
}
bit scankey()
{
   bit flag=false;
   if(key!=0xff)   
    {
       delay1();   
       if(key!=0xff)
    {
       while(~key);     
       flag=true;
    }
  }
  return flag;
}
uchar keyvalue()
{
   if(scankey())
     value++;
     if(value>3) value=0;
     return value;           
}  
void delay(uint i)     //??????ims  
{
    uint k,j;
    for(j=0;j<i;j++)
{
  keyvalue();//?1ms??????,???????????
    for(k=0;k<1000;k++);
}
}
void display1()//?????????
{
  x=1;
  while(x)
  {
   LED=~aa;
   aa=_crol_(aa,1);
   delay(100);
   if(value==2)
    x=0;
  }
}
void display2()//?????????
{
  y=1;
  while(y)
  {
   if(i)//??if???aa????,???LED???,??????
   {
    aa=_cror_(aa,2);
    bb=_cror_(aa,1);
    bb=aa^bb;
    LED=~bb;
    delay(100);
    aa=bb;
    i=0;
   }
   aa=_cror_(aa,2);
   LED=~aa;
   delay(100);
   if(value==3)
    y=0;
  }
}  
void display3()//???,???
{
  z=1;
  while(z)
  {
   if(j)//?????
   {
    aa=_crol_(aa,2);
    cc=_crol_(aa,2);
    cc=aa^cc;
    LED=~cc;
    delay(100);
    aa=cc;
    j=0;
   }
   aa=_crol_(aa,4);
   LED=~aa;
   delay(100);
   if(value==0)
    z=0;
  }
}
void main()                    
{  

   while(1)
    {
      keyvalue();  
   switch (value)
   {
    case 1:display1();break;
    case 2:display2();break;
    case 3:display3();break;
    default:LED=0xff;aa=0x01;i=1;j=1;break;//?LED,i,j????
   }
    }
}

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

使用道具 舉報

沙發(fā)
ID:584814 發(fā)表于 2022-4-17 15:59 | 只看該作者
目測程序是抄的,貌似沒啥問題,不知道要改啥。
看不懂注釋的語言國別,請轉成全英文或中英文的再問
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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