导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→键盘程序,有点搞不懂了!![lh811009]

 *第35568篇: 键盘程序,有点搞不懂了!!

  
楼 主:lh811009 2005年11月8日09:43
 键盘程序,有点搞不懂了!!
//////////取得输入的数字的值////////////
void keyprint(void)
{
unsigned char key4=0;//标记第一次按键的值
unsigned char key5=0;//标记第二次按键的值
unsigned int c=2;
Delay(500);
while(c)
{
  key4=keyscan();//键盘第一次扫描的值,keyscan()为键盘扫描程序
  if(key4!=0)
  {
   Mcs=0;Scs=1;
   Disp_Digit(3,32,*(shuzi+key4));//在指定位置显示key4
   Delay(1000);
   key5=keyscan();
   Mcs=0;Scs=1;
   Disp_Digit(3,40,*(shuzi+key5));//在指定位置显示key5
   c=0;
  }
}
  key3=key4*10+key5;//用全局变量记录页标记
}

我的意图是将键盘的两次按键值在指定位置分别显示出来
不管我的二次有没有按键,key5就为3了,搞不懂,那位大侠帮我看看

  
2楼:yyjasen 2005年11月8日10:00
 [讨论]个人看法
key5=keyscan();
   Mcs=0;Scs=1;
   Disp_Digit(3,40,*(shuzi+key5));//在指定位置显示key5
只要你按了第一次键,上面就执行了,是不是要改成

if(key4!=0)
{
 ...............
 ................
 key5=keyscan();
  if(key5!=0)
 {
   Mcs=0;Scs=1;
   Disp_Digit(3,40,*(shuzi+key5));//在指定位置显示key5
 }
}

  
3楼:tanxiaodong 2005年11月19日22:42
 你的子程序呢

你的子程序呢
  
4楼:caidenghua 2005年11月19日23:45
 我的看法
是不是应该有个按键松开的判断,当你按下键盘时,程序执行相应操作后等待,直到你的手松开,才执行下面的任务,要不然会把后面的也执行,可能会造成死循环



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

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


[上一篇主题]:[原创]232以太网模块技术需求

[下一篇主题]:接触式IC卡开发套件