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

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

   anselyx 
anselyx发表的帖子 

 [求助]有关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;
   }
  }
 }
}




发表时间:2008年3月5日16:11:42

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:供应清洗设备清洗花篮1)为PFA树脂材料加工而成. 2)用于半导体硅片,晶片,玻璃,液晶屏等
[下一篇帖子]:回复楼主你的这种情况很有可能是注册码出错了... /P P 想要ADS的软件或安装方法请联系本人