微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51;LED流水灯控制;按键切换状态

51;LED流水灯控制;按键切换状态

时间:10-02 整理:3721RD 点击:
两年前开始学习单片机,也是从最简单的51开始。现在整理一些以前写的东西,给后来者学习,希望能帮到你们。有需要自己下载。

  1. #include <reg51.h>
  2. #include <intrins.h>

  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. sbit K1=P3^0;
  6. sbit K2=P3^1;
  7. sbit K3=P3^2;
  8. sbit K4=P3^3;

  9. void Delay(unsigned int t)                        //延时 t*100 ms
  10. {
  11.         unsigned int i,j;
  12.         for(;t>0;t--)
  13.                 for(i=130;i>0;i--)
  14.                         for(j=76;j>0;j--);
  15. }

  16. /*
  17. 按键控制:
  18.         K1:循环点亮持续左移
  19.         K2:循环点亮持续右移
  20.         K3:左移流水灯
  21.         K4:右移流水灯
  22. */

  23. void K1_LED()
  24. {
  25.         uint i;
  26.         P2=0xfe;
  27.         for(i=7;i>0;i--)
  28.         {
  29.                 Delay(5);
  30.                 P2=P2<<1;
  31.         }
  32.         Delay(5);               
  33. }
  34. void K2_LED()
  35. {
  36.          uint i;
  37.          P2=0x7f;
  38.          for(i=7;i>0;i--)
  39.          {
  40.                  Delay(5);
  41.                 P2=P2>>1;
  42.          }
  43.          Delay(5);
  44. }
  45. void K3_LED()
  46. {
  47.         uint i;
  48.         P2=0xfe;
  49.         for(i=7;i>0;i--)
  50.         {
  51.                 Delay(5);
  52.                 P2=_crol_(P2,1);
  53.         }
  54.         Delay(5);       
  55. }
  56. void K4_LED()
  57. {
  58.         uint i;
  59.         P2=0x7f;
  60.         for(i=7;i>0;i--)
  61.         {
  62.                 Delay(5);
  63.                 P2=_cror_(P2,1);
  64.         }
  65.         Delay(5);
  66. }

  67. main()
  68. {
  69.         while(1)
  70.         {
  71.                 if(K1==0)
  72.                         K1_LED();
  73.                 else if(K2==0)
  74.                         K2_LED();
  75.                 else if(K3==0)
  76.                         K3_LED();
  77.                 else if(K4==0)
  78.                         K4_LED();
  79.         }
  80. }

复制代码


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top