找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5130|回复: 1
打印 上一主题 下一主题
收起左侧

单片机使用独立按键控制花样流水灯

[复制链接]
跳转到指定楼层
楼主
ID:574374 发表于 2020-1-9 10:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用独立按键控制花样流水灯

单片机源程序如下:
  1. #include "reg52.h"
  2. #include<intrins.h>

  3. typedef unsigned int u16;
  4. typedef unsigned char u8;
  5. int key;


  6. sbit k1=P1^4;
  7. sbit k2=P1^5;
  8. sbit k3=P1^6;
  9. sbit k4=P1^7;

  10. sbit beep=P2^1;
  11.                                        

  12. void delay(u16 i){
  13.         while(i--){
  14.        
  15.         }
  16. }

  17. #define led P2


  18. void keypros()
  19. {
  20.         if(k1==0)                  //检测按键K1是否按下
  21.         {       
  22.                 delay(1000);   //消除抖动 一般大约10ms
  23.                 if(k1==0)         //再次判断按键是否按下
  24.                 {
  25.                         key=1;
  26.                        
  27.                 }
  28.                 while(!k1);         //检测按键是否松开
  29.         }               
  30.         if(k2==0)                 
  31.         {       
  32.                 delay(1000);   
  33.                 if(k2==0)         
  34.                 {
  35.                         key=2;                       
  36.                 }
  37.                 while(!k2);         
  38.         }       
  39.         if(k3==0)                 
  40.         {       
  41.                 delay(1000);  
  42.                 if(k3==0)         
  43.                 {
  44.                         key=3;
  45.                        
  46.                 }
  47.                 while(!k3);         
  48.         }       
  49.         if(k4==0)                 
  50.         {       
  51.                 delay(1000);   
  52.                 if(k4==0)         
  53.                 {
  54.                         key=4;
  55.                        
  56.                 }
  57.                 while(!k4);         //检测按键是否松开
  58.         }
  59. }


  60. void main(){
  61.        
  62.         while(1){
  63.                 keypros();
  64.                 switch(key){
  65.                         case 1:{
  66.                                 u8 i;
  67.                                 led=0xfe;
  68.                                 delay(10000); //大约延时450ms       
  69.                                 for(i=0;i<7;i++)         //将led左移一位
  70.                                 {
  71.                                         led=_crol_(led,1);
  72.                                         delay(10000); //大约延时450ms       
  73.                                 }
  74.                                 for(i=0;i<7;i++)        //将led右移一位
  75.                                 {
  76.                                         led=_cror_(led,1);
  77.                                         delay(10000); //大约延时450ms       
  78.                                 }       
  79.                                 break;
  80.                         }
  81.                         case 2:{
  82.                                 led = 0x00;
  83.                                 delay(50000); //大约延时450ms       
  84.                                 led = 0xff;
  85.                                 delay(50000); //大约延时450ms       
  86.                                 break;
  87.                         }
  88.                         case 3:{
  89.                                 led = 0xaa;
  90.                                 delay(50000); //大约延时450ms       
  91.                                 led = 0x55;
  92.                                 delay(50000); //大约延时450ms       
  93.                                 break;
  94.                         }
  95.                         case 4:{
  96.                         led = 0xe7;
  97.                                 delay(50000); //大约延时450ms       
  98.                                 led = 0x18;
  99.                                 delay(50000); //大约延时450ms       
  100.                                 break;
  101.                         }
  102.                 }
  103.         }
  104.        
  105.        
  106. }
复制代码

所有资料51hei提供下载:
led.zip (26.82 KB, 下载次数: 21)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:677072 发表于 2020-1-10 09:44 | 只看该作者
谢谢哥!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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