7198|2

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

普中科技单片机开发板HC6800-ES-V2.0矩阵键盘实验无法使用? [复制链接]

各位大神·,这是我根据普中单片机开发板HC6800-ES-V2.0的矩阵键盘上的讲解编的程序,但达不到预期效果,显示倒是可以显示,但按键只能按一次,比如按s1就显示0,但接着按其他键就没反应了,还是0。求大神指导。
#include
void Delay10ms();
unsigned char S[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};                                                                                                                          
void Delay10ms();                                                                                                                                  
void main()
{
  unsigned char a=0;
  
  P2=0x0f;
  while(1)
  {
          if(P2!=0x0f)               
        {
          Delay10ms();
          if(P2!=0x0f)
          {
           switch (P2)
           {
                   case(0x07):M=1;break;
                case(0x0b):M=2;break;
                case(0x0d):M=3;break;
                case(0x0e):M=4;break;
           }
           P2=0xf0;
           switch(P2)
           {
            case(0x70):M=M;break;
                case(0xb0):M=M+4;break;
                case(0xd0):M=M+8;break;
                case(0xe0):M=M+12;break;
           }
           while((a<50)&&(P2!=0xf0))
           {
            Delay10ms();
            a++;
           }
           switch(M)
           {
                   case(1):P0=S[0];break;
                case(2):P0=S[1];break;
            case(3):P0=S[2];break;
                case(4):P0=S[3];break;
                case(5):P0=S[4];break;
                case(6):P0=S[5];break;
                case(7):P0=S[6];break;
                case(8):P0=S[7];break
                case(9):P0=S[8];break;
                case(10):P0=S[9];break;
                                                                 
           }
          }
         }
        }
}
       

void Delay10ms()
{
unsigned char a,b,c;
   for(c=1;c>0;c--)
     for(b=38;b>0;b--)
          for(a=130;a>0;a--);
}
此帖出自51单片机论坛

最新回复

sbit r0=P1^7;sbit r1=P1^6;sbit r2=P1^5;sbit r3=P1^4; sbit c0=P1^3;sbit c1=P1^2;sbit c2=P1^1;sbit c3=P1^0; uchar jz,jzxh; jzhs() {         P1=P1&0x0f;         if((P1&0x0f)!=0x0f){                 for(q=0;q=2)jzxh=2;                 }else jzxh=0;         }else jzxh=0; } 我也有那块学习板~~~这是我的程序~~~你可以参考下   , 我也在玩那块板,有空多交流~~~(我买回来那块TFT还是坏的!!!)   详情 回复 发表于 2014-8-21 16:18
点赞 关注
 

回复
举报

3404

帖子

6

TA的资源

裸片初长成(初级)

沙发
 
把 P2=0x0f;放到      if(P2!=0x0f)     这一句前面。
程序写成这样还做开发板,误人子弟啊!
此帖出自51单片机论坛
 
 
 

回复

106

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
sbit r0=P1^7;sbit r1=P1^6;sbit r2=P1^5;sbit r3=P1^4;
sbit c0=P1^3;sbit c1=P1^2;sbit c2=P1^1;sbit c3=P1^0;
uchar jz,jzxh;
jzhs()
{
        P1=P1&0x0f;
        if((P1&0x0f)!=0x0f){
                for(q=0;q<100;q++);
                if((P1&0x0f)!=0x0f){
                        if(jzxh==0){
                                r0=r1=r2=r3=1;
                                r0=0;jz=c0==0?0:c1==0?1:c2==0?2:c3==0?3:jz;r0=1;
                                r1=0;jz=c0==0?4:c1==0?5:c2==0?6:c3==0?7:jz;r1=1;
                                r2=0;jz=c0==0?8:c1==0?9:c2==0?10:c3==0?11:jz;r2=1;
                                r3=0;jz=c0==0?12:c1==0?13:c2==0?14:c3==0?15:jz;r3=1;
                        }
                        jzxh++;
                        if(jzxh>=2)jzxh=2;
                }else jzxh=0;
        }else jzxh=0;
}


我也有那块学习板~~~这是我的程序~~~你可以参考下   , 我也在玩那块板,有空多交流~~~(我买回来那块TFT还是坏的!!!)

此帖出自51单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表