注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
mcuhao123的个人空间 https://home.eeworld.com.cn/space-uid-146538.html [收藏] [复制] [分享] [RSS]
日志

【小雨的成长】一键多功能

已有 736 次阅读2009-9-9 15:55 |

昨天晚上写的一键多功能技术。。。把一些心得写下来和大家分享下。。!!!

 

   一键多功能技术,就是通过一个按键控制不同的东西。如我按一下键,P0.0口的灯亮,按第二下就是P0.1口的灯亮。。

 

设计思想:,我们给LED1LED4闪烁的时段定义出不同的ID号,当L1在闪烁时,ID0;当L2在闪烁时,ID1;当L3在闪烁时,ID2;当L4在闪烁时,ID3;很显然,只要每次按下开关K1时,分别给出不同的ID号我们就能够完成上面的任务了。

 

 

下面,说说硬件电路

 

P1.0口以独立按键式接一个开关.

P0.0~P0.3接4个LED.

 

下面看程序

#include
#define uchar unsigned char
#define uint unsigned int

sbit K1=P1^0;
sbit led0=P0^0;
sbit led1=P0^1;
sbit led2=P0^2;
sbit led3=P0^3;

void delay()      //延时程序
{

    uint n;
 for(n=0;n<3000;n++);

}


main()
{

    uchar count;//定义一个变量记录他们的ID
 while(1)
    
     {
      if(!K1)       //这一个IF语句对我们的ID进行操作。这里也是我们以后判断它如何做的依据。
      {
         delay();
         if(!K1)
        {
          count++;
       if(count>3)count=0;
      }
     while(!K1);
       delay();
    }
   if(count==0)     //执行部分。当ID=0是led0点亮。下面的以此类推
       {
       led0=0;       
     }
   else  if(count==1)
       {
       led1=0;      
     }
   else  if(count==2)
       {
       led2=0;       
     }
   else  if(count==3)
       {
       led3=0;       
     }
   delay();
   P0=0xff;    //点亮以后然后全部灭掉。
   delay();
   }
}

 

程序不难。。主要是学会思想。。还有就是多编程。。熟悉。。。。

  这些程序,虽然容易,但是我还没有一次就编译成功的。。这也说明了,我编程还存在很大的问题。。。但是能通过这些发现。

得到不少。。。

转载自:javascript:;

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章