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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)按鍵控制流水燈 swtich語(yǔ)句的控制P0口8位LED的點(diǎn)亮狀態(tài)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:408573 發(fā)表于 2018-11-8 13:22 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
swtich語(yǔ)句的控制P0口8位LED的點(diǎn)亮狀態(tài)

單片機(jī)源程序如下:
  1. //實(shí)例20:用swtich語(yǔ)句的控制P1口8位LED的點(diǎn)亮狀態(tài)
  2. #include<reg51.h>  //包含單片機(jī)寄存器的頭文件
  3. sbit K5=P3^2;     //將K5位定義為P1.4
  4. /*****************************
  5. 函數(shù)功能:延時(shí)一段時(shí)間
  6. *****************************/
  7. void delay(void)
  8. {
  9. unsigned int n;
  10. for(n=0;n<20000;n++)
  11.         ;
  12. }
  13. /*****************************
  14. 函數(shù)功能:主函數(shù)
  15. *****************************/
  16. //download by http://www.codefans.net
  17. void main(void)
  18. {  
  19.    unsigned char i;
  20.         i=0;    //將i初始化為0
  21.         while(1)
  22.          {
  23.                   if(K5==0)     //如果S1鍵按下
  24.                    {
  25.                           delay();  //延時(shí)一段時(shí)間 按鍵消抖
  26.                           if(K5==0) //如果再次檢測(cè)到S1鍵按下
  27.                             i++;    //i自增1
  28.                           if(i==9)  //如果i=9,重新將其置為1
  29.                             i=1;
  30.                                
  31.                    }
  32.                  switch(i)   //使用多分支選擇語(yǔ)句
  33.                                  {
  34.                                    case 1: P1=0xfe;  //第一個(gè)LED亮
  35.                                                         break;
  36.                                         case 2: P1=0xfd;  //第二個(gè)LED亮
  37.                                               break;
  38.                                         case 3:P1=0xfb;   //第三個(gè)LED亮
  39.                                               break;
  40.                                         case 4:P1=0xf7;   //第四個(gè)LED亮
  41.                                               break;
  42.                                         case 5:P1=0xef;   //第五個(gè)LED亮
  43.                                               break;
  44.                                         case 6:P1=0xdf;   //第六個(gè)LED亮
  45.                                               break;
  46.                                         case 7:P1=0xbf;   //第七個(gè)LED亮
  47.                                          break;
  48.                                         case 8:P1=0x7f;   //第八個(gè)LED亮
  49.                                               break;
  50.                                         default:   //缺省值,關(guān)閉所有LED
  51.                                               P1=0xff;
  52.                                  }
  53.                  }          
  54. }
復(fù)制代碼

所有資料51hei提供下載:
swtich語(yǔ)句的控制P0口8位LED的點(diǎn)亮狀態(tài).zip (9.22 KB, 下載次數(shù): 36)



評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:66287 發(fā)表于 2018-11-12 09:52 | 只看該作者
用switch語(yǔ)句,確實(shí)比if語(yǔ)句方便高效。
回復(fù)

使用道具 舉報(bào)

板凳
ID:66287 發(fā)表于 2018-12-3 08:40 | 只看該作者
程序有待推敲,如果按鍵一直按下,LED會(huì)以10ms為單位快速變化,也就是什么也看不清,達(dá)不到原設(shè)計(jì)目的。
回復(fù)

使用道具 舉報(bào)

地板
ID:438257 發(fā)表于 2018-12-3 11:22 | 只看該作者
不需要用中斷嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:66287 發(fā)表于 2018-12-3 14:09 | 只看該作者
問(wèn)題出現(xiàn)在這里:
if(K5==0)     //如果S1鍵按下
                   {
                          delay();  //延時(shí)一段時(shí)間 按鍵消抖
                          if(K5==0) //如果再次檢測(cè)到S1鍵按下
                            i++;    //i自增1
                          if(i==9)  //如果i=9,重新將其置為1
                            i=1;
                                
                   }

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:728926 發(fā)表于 2020-11-7 10:08 來(lái)自手機(jī) | 只看該作者
怎么用if來(lái)寫(xiě)這個(gè)了?
回復(fù)

使用道具 舉報(bào)

7#
ID:619259 發(fā)表于 2020-11-8 23:13 來(lái)自手機(jī) | 只看該作者
用代碼表更簡(jiǎn)
回復(fù)

使用道具 舉報(bào)

8#
ID:515309 發(fā)表于 2024-9-4 09:51 | 只看該作者
沒(méi)加放手動(dòng)作
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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