嵌入式成长轨迹35 【Zigbee项目】【单片机基础】【按键】

 

将四个灯接向P1四个子引脚,再给按键分配一个引脚即可。注意在这里分配的P3^6引脚是低电平有效的。

为了避免按键抖动的影响,设置了检测到按下后一秒依然能检测到按下,才判定为按下按键。

 1 #include<reg51.h>
 2 
 3 sbit led1=P1^0;
 4 sbit led2=P1^1;
 5 sbit led3=P1^2;
 6 sbit led4=P1^3;
 7 
 8 sbit key = P3^6;//改成6也可正常使用
 9 
10 unsigned char key_value;
11 
12 void delay(unsigned int i)
13 {
14   unsigned int j;
15   for(;i>0;i--)
16     for(j=100;j>0;j--);
17 }
18 
19 void main(void)
20 {
21    key_value = 0;
22  while(1)
23    {
24      //delay(1000);
25      if(key == 0)
26      {
27          delay(1000);
28          if(key == 0)
29          {
30                switch(key_value) 
31                  {
32                case 0:
33                
34                   led1 = 0;
35                   led2 = 1;
36                   led3 = 1;
37                   led4 = 1;
38                    key_value++;
39                   break;
40                
41             case 1:
42             
43                     led1 = 1;
44                           led2 = 0;
45                     led3 = 1;
46                     led4 = 1;
47                      key_value++;
48                     break;
49                 
50                 case 2:
51             
52                    led1 = 1;
53                    led2 = 1;
54                    led3 = 0;
55                    led4 = 1;
56                     key_value++;
57                    break;
58                  
59                  case 3:
60                      led1 = 1;
61                      led2 = 1;
62                      led3 = 1;
63                      led4 = 0;
64                       key_value = 0;
65                      break;    
66                      }
67                           
68               }
69             }
70         }
71     }

 

这里将led1、led2、led3、led4、key分别对应管脚P1^0、P1^1、P1^2、P1^3、P3^6。key用来读取P3^6的输入,这里按键接

P3^6,所以key可以读取按键;其它信号都是输出控制来led灯。

 

问题:
那些外围电路的作用是?


PS:
用keil如何把c语言程序生成hex文件:
  project——option for target‘——output——creat Hex打上勾就OK了

注意生成文件时不要习惯性地按Ctrl+F5(这是VC的编译执行),keil里边的快捷键据说可以自己设定的:通过Edit-

>Configuration->Shortuct Keys 这个菜单来设定·当然,直接按生成按钮就肯定可以。

posted @ 2012-09-01 17:36  MooreZHENG  阅读(244)  评论(0编辑  收藏  举报