导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→关于键盘扫描程序的c 程序[hgchenkv]

 *第38425篇: 关于键盘扫描程序的c 程序

  
楼 主:hgchenkv 2006年3月12日02:20
 关于键盘扫描程序的c 程序
各位DX好:
    小兄弟刚写好一个键盘扫描的小程序,但在调试过程中出了一些小问题,我的硬件条件是:行4列三3的键盘,从左向右从上向下依次显示0~C,键盘扫描接口是P3口,数显接口是P2口;我是一个初学者,调试没有什么技巧,请求各位DX帮忙调试一下!成功程序能否发到:hgchen1111@163.com  谢谢!
程序如下:
#include  <reg51.h>  
#define uint unsigned int
void delay();
main()
{
uint a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e},i,d,c,h,j;
while(1)
 {
  A:
   P2=0xff;
   d=0xfe;
   for(i=0;i  <4;i++)
 { 
 j=d&0x0f;
 P3=d;
 P3=P3&0x0f;
 delay();  
    h=P3&0xf0;
 c=P3^0xf0;
    if(c!=0)
   {
B: while(c!=0){c=P3^0xf0;goto B;}
    while((h|0x0f)==0xff)
  {
        P3=h|j;
      switch(P3)
   {
   case 0xde:P2=a[1];delay();break;
   case 0xbe:P2=a[2];delay();break;
   case 0x7e:P2=a[3];delay();break;
   case 0xdd:P2=a[4];delay();break;
   case 0xbd:P2=a[5];delay();break;
   case 0x7d:P2=a[6];delay();break;
   case 0xdb:P2=a[7];delay();break;
   case 0xbb:P2=a[8];delay();break;
   case 0x7b:P2=a[9];delay();break;
   case 0xd7:P2=a[10];delay();break;
   case 0xb7:P2=a[0];delay();break;
   case 0x77:P2=a[11];delay();break;
   }
       goto A;
    }
  }
 else{d=d  <  <1|1;}
 }
 }
}
////////////////////////////////////////////////////////////
void delay()
{
unsigned int i;
for(i=0;i  <10000;i++);
}
  
2楼:hgchenkv 2006年3月12日02:21
 谢谢各位帮忙!
谢谢各位帮忙!

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

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


[上一篇主题]:有人试过2410+74LVTH162245缓冲挂硬盘的方案吗?

[下一篇主题]:实验电压测量装置用单片机做测量中心