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

2009-4-17 16:21 2003 7 7 分类: MCU/ 嵌入式

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


 


   一键多功能技术,就是通过一个按键控制不同的东西。如我按一下键,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 <reg51.h>
#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();
   }
}


 


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


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


得到不少。。。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条