| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 877 人关注过本帖
标题:单片价键盘问题,熟悉的高手请指教啊。感谢了俄!!!
只看楼主 加入收藏
skyseen
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-6-25
收藏
 问题点数:0 回复次数:8 
单片价键盘问题,熟悉的高手请指教啊。感谢了俄!!!
大家好我现在遇到一个键盘设计问题想找人讨论讨论,不知道那位对键盘设计熟悉啊。。。。。。

我的问题如下;

  我是用一个I/O口来扫描制作键盘,通过用数据线送8位数据给573锁存,573出来然后接8个按键,最后将8跟线合在一起送给一个I/O口,现在通过送数据来检测是否有键盘按下,8跟线中送一个为高电平。通过检测I/O口是否为高电平,若为高电平,则有键按下。当然按下的键是通过送的数据晓得的。用移位来自动送数据。现在问题是这个键盘程序设计有误,请教高手指导啊。。。。。。

int read_key(void)
{
   unsigned char i = 0;
 unsigned char a = 1;
    unsigned char key = 0;
    LED_SEL_D4 = 1;//这是用于检测的I/O
    delayNs(10);
   for(i=0;i<8;i++)
   {
       LED_Sel_Seq(a);//这是给573送数据的子程序已经定义了
  if(LED_SEL_D4 == 1)
    {
   key = key | (0x01<<1);
    }
  
  a <<= 1;
 }
 return key;
}
搜索更多相关主题的帖子: 键盘 单片 char unsigned 
2008-07-07 16:14
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
我是用一个I/O口来扫描制作键盘,通过用数据线送8位数据给573锁存,573出来然后接8个按键,最后将8跟线合在一起送给一个I/O口,现在通过送数据来检测是否有键盘按下,8跟线中送一个为高电平。通过检测I/O口是否为高电平,若为高电平,则有键按下。当然按下的键是通过送的数据晓得的。用移位来自动送数据。现在问题是这个键盘程序设计有误,请教高手指导啊。。。。。。

不知所云,“573出来然后接8个按键”,你的按键是输入信号还是输出信号?把电路图贴出来

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-07-07 16:46
skyseen
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-6-25
收藏
得分:0 
谢谢指导。电路图传了,8个按键是输入,但是只用一个p1.5检测扫描,

电路图.JPG (98.08 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2008-07-07 16:54
sanjinufo
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-7-7
收藏
得分:0 
这个不太懂啊
2008-07-07 16:57
skyseen
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-6-25
收藏
得分:0 
还是感谢你
2008-07-07 16:58
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
按键右边串二极管干什么?
如果让我设计,我用8-3线编码器对键盘输入进行编码

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-07-07 17:11
skyseen
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-6-25
收藏
得分:0 
谢谢那个二级管画反了的,把它反过来。现在就是这样设计,但我写的程序不对请你看看,谢谢了。
2008-07-07 17:25
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
你反接一个二极管我以为是稳压管,不过这里也不需要稳压。
你说是画反了,反过来也看不懂要二极管干什么,控制电流方向?

你的键盘电路设计的既不是最简单的,也不是最方便好用的
你的程序更是不知所云
int read_key(void)
{
        unsigned char i = 0;
        unsigned char key = 0;
        unsigned char mask = 1;
        
        LED_SEL_D4 = 1;//这是用于检测的I/O
        delayNs(10);

        for(i=0;i<8;i++)
        {
                LED_Sel_Seq(mask);//这是给573送数据的子程序已经定义了
                if(LED_SEL_D4 == 1)
                {
                        key |= mask;
                }
                mask <<= 1;
        }
        
        return key;
}

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-07-07 19:45
skyseen
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-6-25
收藏
得分:0 
感谢指导
2008-07-07 21:09
快速回复:单片价键盘问题,熟悉的高手请指教啊。感谢了俄!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022196 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved