导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→有谁能帮我看下单片机的键盘扫描程序吗?[forrest7507]

 *第44952篇: 有谁能帮我看下单片机的键盘扫描程序吗?

  
楼 主:forrest7507 2006年12月8日12:22
 有谁能帮我看下单片机的键盘扫描程序吗?
有高手能给下面的键盘程序注释下吗,本人看的不是很懂,按键的值什么时候能给单片机啊?谢谢了
#include  <reg51.h>  
#include  <intrins.h>  
#include  <absacc.h>  

#define uchar unsigned char

 

uchar rr;
uchar k;
uchar keydata;

 


void key_scan(void);          //键盘函数定义段;
uchar key_tab(uchar k);
void delay(void);
void key_in(uchar k);

//---------------------------------------------------------------
void main(void)
{
     while(1)
 {
    key_scan();
 }
}//---------------------------------------------------------------------------------------------

void key_scan(void)
{  uchar sccode,recode,i;
        P1=0xf0;
            if((P1&0xf0)!=0xf0)
          {
               delay();
                if((P1&0xf0) !=0xf0)
              {
                        sccode=0xfe;
                    for(i=0;i  <4;i++)
                   {
                        P1=sccode;
                     if((P1&0xf0) !=0xf0)
                        {
                              recode=(P1&0xf0)|0x0f;
                              k=(~recode)+(~sccode);
                              rr=P1;

                             key_in(k);
                             break;
                         }
                      else
                         sccode=(sccode  <  <1)|0x01;
                  }
             }

  }
  //do {ta=P2;}while(ta==rr);
}
void delay()        //去抖动
{int a=2500;
 while(--a);
}

void key_in(uchar k)
{   uchar ta;
    //uchar keydata;

    do {ta=P1;}while(ta==rr);
    keydata=key_tab(k);
}


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:探讨有源RC低通滤波器如何快速计算

[下一篇主题]:应用于工业控制的彩色LCD人机界面设计(彩色LCD智能显示终端)