导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]有关51用8155作扩展i/o,键盘扫描程序[anselyx]

 *第18720篇: [求助]有关51用8155作扩展i/o,键盘扫描程序

  
楼 主:anselyx 2008年3月5日16:11
 [求助]有关51用8155作扩展i/o,键盘扫描程序
最近做一个键盘扫描的程序
只做一行扫描,可是按键后怎么也不能跳转
不知道是什么原因,请各位指教!!!
下面附上程序:
#include   <REG51.h>      /* Device specific head file*/
#include   <intrins.h>  
#include   <absacc.h>     /* Absolute memory access   */
#include   <math.h>  
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long
void keyscan(void);
void Initialize(void);
void Dog()
{
    uchar xdata *plcd;
    plcd = 0xA000;
    *plcd = 0x00;
}
void Delay(uint n)
{
 data uint i=0;
 for(i=0;i  <n;i++)
  {Dog();}
}
void Initialize()
{ uchar i=0;
  
 for(i=0;i  <250;i++)
 {
  Delay(172);
  Delay(172);
 }
 XBYTE[0x8100]=0x03;       /*初始化8155,PB口输出,PC口输入*/
}
void main()
{
 Initialize();
 while(1)
 {
  keyscan();
 }
}
void keyscan()
{
 unsigned char l;
 unsigned char m;
 unsigned char b;
 XBYTE[0x8102]=0x0F;
 b=XBYTE[0x8102];
 m=XBYTE[0x8103];
 m=m&0x0f;
 if(m!=0x0f)
 {
  Delay(430);
  XBYTE[0x8102]=0x0f;
  m=XBYTE[0x8103];
  m&=0x0f;
  if(m!=0x0f)
  {
   m=XBYTE[0X8103];
   m&=0x0f;
   switch(m)
   {
    case(0x0e):l=3;break;
    case(0x0d):l=2;break;
    case(0x0b):l=1;break;
    case(0x07):l=0;break;
   }
  }
 }
}



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

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


[上一篇主题]:供应清洗设备清洗花篮

[下一篇主题]:无线传感器网络开发套件