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

QQ登錄

只需一步,快速開始

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

一個(gè)單片機(jī)按鍵控制跑馬燈流水燈切換

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主


單片機(jī)源程序如下:
  1. #include<AT89X52.H>
  2. int main()
  3. {
  4.         unsigned int i;
  5.         unsigned char j;
  6.         unsigned char LEDState=0;//0 閃爍 1 跑馬燈上之下 2 流水燈上之下 3 流水燈下之上 4跑馬燈下之上
  7.         //識(shí)別按鍵
  8.         while(1)
  9.         {
  10.                 if(P1_0==0)//按鍵按下
  11.                 {
  12.                         //消抖 延時(shí) 10S
  13.                         for(i=0;i<1000;i++);
  14.                         //等待按鍵抬起,直到按鍵抬起為止
  15.                         while(P1_0==0);
  16.                         //消抖
  17.                         for(i=0;i<1000;i++);//按鍵抬起以后做的事
  18.                         LEDState=(LEDState+1)%5;
  19.                 }
  20.                
  21.                 if(LEDState==0)//閃爍
  22.                 {
  23.                         P2=0X00;
  24.                         for(i=0;i<20000;i++);
  25.                         P2=~P2;
  26.                         for(i=0;i<20000;i++);
  27.                 }
  28.                 else if(LEDState==1)//上到下跑馬
  29.                 {
  30.                         for(j=0;j<8;j++)
  31.                         {
  32.                                 P2=~(1<<j);
  33.                                 for(i=0;i<20000;i++);
  34.                         }
  35.                 }
  36.                 else if(LEDState==2)//上到下流水
  37.                 {
  38.                         P2=0XFF;
  39.                         for(j=0;j<8;j++)
  40.                         {
  41.                                 P2=P2&(~(1<<j));
  42.                                 for(i=0;i<20000;i++);
  43.                         }
  44.                         for(j=0;j<8;j++)
  45.                         {
  46.                                 P2=P2|(1<<j);
  47.                                 for(i=0;i<20000;i++);
  48.                         }
  49.                        
  50.                 }
  51.                 else if(LEDState==3)//下到上流水
  52.                 {
  53.                         P2=0XFF;
  54.                         for(j=0;j<8;j++)
  55.                         {
  56.                                 P2=P2&(~(1<<(7-j)));
  57.                                 for(i=0;i<20000;i++);
  58.                         }
  59.                         for(j=0;j<8;j++)
  60.                                 {
  61.                                         P2=P2|(1<<(7-j));
  62.                                         for(i=0;i<20000;i++);
  63.                                 }
  64.                        
  65.                 }
  66.                 else if(LEDState==4)//下到上跑馬
  67.                 {
  68.                         for(j=0;j<8;j++)
  69.                         {
  70.                                 P2=~(1<<(7-j));
  71.                                 for(i=0;i<20000;i++);
  72.                         }
  73.                 }
  74.         }
  75. }
復(fù)制代碼

所有資料51hei提供下載:
RZH跑馬流水切換.zip (75.88 KB, 下載次數(shù): 35)


評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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