新闻  |   论坛  |   博客  |   在线研讨会
自学单片机_2(键盘按键显示)
0750long | 2010-02-01 22:10:57    阅读:1281   发布文章

 

 

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit bee="P2"^3;
sbit dula="P2"^6;
sbit s5=P3^7;
sbit wela="P2"^7;

uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

void delay(uint z);
void main()
{
 uint num;
 P3=0xff;
 wela=1;
 P0=0xfe;
 wela=0;
 while(1)
 {
  if(s5==0)
  {
   delay(10);
   if(s5==0)
   {
    bee=0;
    P1=0xfe;
    num++;
    if(num==10)
    num=0;
    
   }     
   while(!s5);
   delay(10);
   while(!s5);
   
  }
  else
  {
   bee=1;
   P1=0x7f;
  }
  dula=1;
  P0=table[num];
  dula=0;
  
 
  
 }


}

void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}

 

实现功能:选择键盘按键之一,按下该键,发光二极管最后一个灯亮;松开按键,发光二极管第一个灯亮;在整个过程中,数码管进行计数,当数码管数值为9时,清零。

需要注意:按键在按键过程和松开过程中,需要消抖(很重要),否则很容易出错!

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客