找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1831|回复: 0
收起左侧

51单片机按钮式组合彩灯程序

[复制链接]
ID:736127 发表于 2020-4-23 14:59 | 显示全部楼层 |阅读模式
按钮式控制组合彩灯,按下S1键D1~D4点亮, D5~D8熄灭;按下S2键D1~D4熄灭, D5~D8点亮;按下S3键D1~D8全亮;按下S4键D1~D8全灭。
93W1MF6H_}11UMB_~2RL67E.png 6%QXP9419}G1I`W)XL1QVXT.png

单片机源程序如下:
  1. #include<reg51.h>
  2. #define key P1
  3. sbit led1=P2^0;
  4. sbit led2=P2^1;
  5. sbit led3=P2^2;
  6. sbit led4=P2^3;
  7. sbit led5=P2^4;
  8. sbit led6=P2^5;
  9. sbit led7=P2^6;
  10. sbit led8=P2^7;

  11. void delay(unsigned char time)
  12.   {
  13.    unsigned char i,j;
  14.     for(i=0; i<time; i++)
  15.          for(j=0; j<120; j++)
  16.          ;
  17.   }

  18. unsigned char key_scan(void)
  19. {
  20.   unsigned char key_val;
  21.   key=0xff;
  22.   key_val=key;
  23.   if(key_val!=0xff)
  24.    {
  25.     delay(1);
  26.         key=0xff;
  27.         key_val=~key;
  28.         while(key!=0xff);
  29.         return key_val;
  30.    }
  31. }

  32. void key1(void)
  33. {
  34.   led1=!led1;
  35.   led2=!led2;
  36.   led3=!led3;
  37.   led4=!led4;
  38. }

  39. void key2(void)
  40. {
  41.   led5=!led5;
  42.   led6=!led6;
  43.   led7=!led7;
  44.   led8=!led8;
  45. }

  46. void key3(void)
  47. {
  48.   led1=1;
  49.   led2=1;
  50.   led3=1;
  51.   led4=1;
  52.   led5=1;
  53.   led6=1;
  54.   led7=1;
  55.   led8=1;
  56. }

  57. void key4(void)          
  58. {
  59.   led1=0;
  60.   led2=0;
  61.   led3=0;
  62.   led4=0;
  63.   led5=0;
  64.   led6=0;
  65.   led7=1;
  66.   led8=1;
  67. }

  68. void Key_manage(unsigned char key_val)
  69. {
  70.   if(key_val==0x01)
  71.    key1();
  72.   if(key_val==0x02)
  73.    key2();
  74.   if(key_val==0x04)
  75.    key3();
  76.   if(key_val==0x08)
  77.    key4();
  78. }

  79. main()
  80. {

  81. Key_manage(key_scan());

  82. }
复制代码

所有资料51hei提供下载:
控制组合彩灯.zip (53.02 KB, 下载次数: 5)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表