找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2160|回復(fù): 0
收起左側(cè)

51單片機(jī)按鍵控制流水燈花樣代碼與Proteus仿真

[復(fù)制鏈接]
ID:924899 發(fā)表于 2023-4-14 18:25 | 顯示全部樓層 |閱讀模式
大家好,新手小白。分享先前嘗試用51做的按鍵控制流水燈花樣,有六個按鍵,分別實(shí)現(xiàn)單個燈的亮滅、從上往下流動、從下往上流動、全閃、全滅、暫停六種功能。已經(jīng)成功仿真,有時候不太靈敏需要多按幾下,附源碼源程序。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

仿真原理圖

仿真原理圖


單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. sbit LED1=P2^0;
  3. sbit K1=P1^0;
  4. sbit K2=P1^1;
  5. sbit K3=P1^2;
  6. sbit K4=P1^3;
  7. sbit K5=P1^4;
  8. sbit K6=P1^5;
  9. unsigned char keyval,num=0;
  10. int i,j,n;

  11. void delay_ms(int n)
  12. {
  13. for(i=0;i<n;i++)
  14. for(j=0;j<120;j++);}

  15. void forward()  //從上往下流動
  16. {
  17. P2=0xfd;
  18. delay_ms(150);
  19. P2=0xfb;
  20. delay_ms(150);
  21. P2=0xf7;
  22. delay_ms(150);}

  23. void backward() //從下往上流動
  24. {
  25. P2=0xf7;
  26. delay_ms(150);
  27. P2=0xfb;
  28. delay_ms(150);
  29. P2=0xfd;
  30. delay_ms(150);}

  31. void blink()        //全閃
  32. {
  33. P2=0xff;
  34. delay_ms(100);
  35. P2=0x00;
  36. delay_ms(100); }

  37. void key_scan()
  38. {
  39. P1=0xff;
  40. if((P1&0x3f)!=0x3f)
  41. {
  42.   delay_ms(100);
  43.   if(K1==0)
  44.   {keyval=1;num=(num+1)%2;}
  45.   if(K2==0)
  46.   keyval=2;
  47.   if(K3==0)
  48.   keyval=3;
  49.   if(K4==0)
  50.   keyval=4;
  51.   if(K5==0)
  52.   keyval=5;
  53.   if(K6==0)
  54.   keyval=6;}
  55.   while((P1&0x3f)!=0x3f);}

  56. void main()
  57. {
  58. keyval=0;
  59. while(1)
  60. {
  61.   key_scan();
  62.   switch(keyval)
  63.   {
  64.    case 1 :LED1=!num;break;                  //按一下亮按一下滅
  65.    case 2 :forward();break;        
  66.    case 3 :backward();break;
  67.    case 4 :blink();break;
  68.    case 5 :P2=0xff;break;             //全滅
  69.    case 6 :while(keyval!=6);break;}}} //暫停

復(fù)制代碼


Keil代碼與Proteus仿真下載: 按鍵控制流水燈花樣.zip (70.76 KB, 下載次數(shù): 48)

評分

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

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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