智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3313|回复: 11
打印 上一主题 下一主题

上图,来高手吧、

[复制链接]

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
跳转到指定楼层
1#
发表于 2011-8-15 19:50:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

int keyscan()
{
uchar temp,z,x;
DDRB=0xf0;
PORTB=0x0f;
x=PORTB&0x0f;
if(x!=0x0f)
{
  delay1ms(10);
  x=PORTB&0x0f;
  if(x!=0x0f)
  {
   temp=PORTB&0x0f;
   DDRB=0x0f;
   PORTB=0xf0;  
   z=temp|PORTB;
   x=PORTB&0xf0;
   while(x!=0xf0)//松手检测
   {
    x=PORTB&0xf0;  
   }
   switch(z)
   {
    case 0xee: num =0; break;
         case 0xde: num =4; break;
         case 0xbe: num =8; break;
         case 0x7e: num =12; break;
         case 0xed: num =1; break;
         case 0xdd: num =5; break;
         case 0xbd: num =9; break;
         case 0x7d: num =13; break;
         case 0xeb: num =2; break;
         case 0xdb: num =6;break;   
         case 0xbb: num =10;break;
         case 0x7b: num =14;break;
         case 0xe7: num =3;break;
         case 0xd7: num =7;break;
         case 0xb7: num =11;break;
         case 0x77: num =15;break;
         default:num=988;
   }
  }
}
return num;
}



只要帮我 改一下 这个 键盘 扫描的 函数,只要我按下键,然后 return的 值是 与之对应的 数字 比如 0  、1   、2  、3  之类的就行。
搞了好久 没行。  键盘的 图 就是 上图,用的是 PB口。等待 高人。圣人,指点迷津的时候到了,也没那么夸张,能有帮助的回复,都万分感谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
2#
 楼主| 发表于 2011-8-15 19:50:53 | 只看该作者
等待能人啊,谢谢了= =
回复 支持 反对

使用道具 举报

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
3#
 楼主| 发表于 2011-8-15 19:51:11 | 只看该作者
额,谢谢,坐等。
回复 支持 反对

使用道具 举报

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
4#
 楼主| 发表于 2011-8-15 19:52:12 | 只看该作者
补充一下 键盘 行 从上往下 是 PB0~PB3

从左往右 列 是 PB4~PB7  


这等于 是到 题目,请爱钻研的 朋友 来研究一下。
回复 支持 反对

使用道具 举报

40

主题

471

帖子

0

精华

禁止发言

~

积分
12665

论坛元老奖章

威望
1339
贡献
10656
兑换币
34
注册时间
2009-3-11
在线时间
335 小时
5#
发表于 2011-8-16 00:25:56 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

49

主题

3751

帖子

1

精华

顶级版主

Rank: 11Rank: 11Rank: 11Rank: 11

积分
27948

资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章技术大牛奖章

威望
10632
贡献
10964
兑换币
4564
注册时间
2010-11-23
在线时间
3176 小时
6#
发表于 2011-8-16 00:34:54 | 只看该作者
木看懂
回复 支持 反对

使用道具 举报

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

资源大师奖章论坛骨干奖章推广达人奖章论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章优秀版主奖章

QQ
威望
5864
贡献
12698
兑换币
630
注册时间
2009-8-18
在线时间
824 小时
7#
发表于 2011-8-16 01:02:20 | 只看该作者
回复 5# flyer1988hh


    这个只是个方法~估计LZ是用不上了~
回复 支持 反对

使用道具 举报

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

资源大师奖章论坛骨干奖章推广达人奖章论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章优秀版主奖章

QQ
威望
5864
贡献
12698
兑换币
630
注册时间
2009-8-18
在线时间
824 小时
8#
发表于 2011-8-16 01:11:33 | 只看该作者
回复 1# 恋May


    感觉程序没太大问题,出错的现象是什么?
回复 支持 反对

使用道具 举报

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
9#
 楼主| 发表于 2011-8-16 10:49:35 | 只看该作者
一切从0开始。今天早上起来自己从头编写了一个 扫描程序,问题解决了。马上来上 程序。
回复 支持 反对

使用道具 举报

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
10#
 楼主| 发表于 2011-8-16 10:50:07 | 只看该作者
int key(void) {
      int readkey;
      int x_temp,y_temp;
      DDRB=0X0f;
      PUCR_PUPBE=1;
      PORTB=0Xf0;
      if(PORTB!=0xf0) {
       delay(1000);
       if(PORTB!=0xf0) {
        PORTB&=0xf0;
        x_temp=PORTB;
        DDRB=0Xf0;
        PORTB=0X0f;
        if(PORTB!=0x0f){
         PORTB&=0X0f;
         y_temp=PORTB;
         readkey=(x_temp|y_temp);
         switch(readkey) {
                case 0xee:num=1;break;  //1
                case 0xde:num=2;break;
                case 0xbe:num=3;break;
                case 0x7e:num=4;break;
                case 0xed:num=5;break;
                case 0xdd:num=6;break;
                case 0xbd:num=7;break;
                case 0x7d:num=8;break;
                case 0xeb:num=9;break;
                case 0xdb:num=10;break;
                case 0xbb:num=11;break;
                case 0x7b:num=12;break;
                case 0xe7:num=13;break;
                case 0xd7:num=14;break;
                case 0xb7:num=15;break;
                case 0x77:num=16;break;
   
              }
          }
        }
      }
      return num;
      }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-5 23:18 , Processed in 0.185105 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表