找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2227|回复: 0
打印 上一主题 下一主题
收起左侧

矩阵按键,按着没反应,编译没错,但没现象

[复制链接]
跳转到指定楼层
楼主
ID:257618 发表于 2017-12-9 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下
#include <stc15f2k60s2.h>
unsigned char s0;
int temp;
void keyscan16();
void delay(int a);
unsigned char s0=0;


void main()
{P2=0XA0;P0=0X00;P2=0X80;P0=0xff;

        while(1)
        {keyscan16()        ;
                if(s0==1)
        {s0=0;
                P2=0XC0;
                P0=0X01;
                P2=0XFF;
                P0=0XC0;
        }
        else if(s0==2)
        {s0=0;
                P2=0xc0;
                P0=0X02;
                P2=0XFF;
                P0=0XF9;
               
        }
       
}
       
}
       
       
       
void delay(int a)
{int i,b;
        for(i=a;a--;a>0)
        {for(b=850;b--;b>0);}
}


void keyscan16()
{
        P3=0x7f;
        temp=P3&0x0f;
        if(temp!=0x0f)
        {delay(5);
                temp=P3&0X0F;
                if(temp!=0x0f)
                {temp=P3;
                        switch (temp)
                                {case 0x7e:s0=1;break;
                                case 0x7d:s0=2;break;
                                case 0x7b:s0=3;break;
                                case 0x77:s0=4;break;
                        }
                }
                while(temp!=0x0f)
                {temp&=0x0f;
                }
        }

P3=0XBF;temp=P3&0X0F;
if(temp!=0x0f)
{delay(5);
        temp=P3&0XBF;
        if(temp!=0x0f)
        {temp=P3;
                switch(temp)
                        {case 0xbe:s0=5;break;
                                case 0xbd:s0=6;break;
                                case 0xbb:s0=7;break;
                                case 0xb7:s0=8;break;
                }
                }
                while(temp!=0x0f)
                {temp&=0x0f;
                }       
        }
        P3=0XDF;temp=P3&0X0F;
        if(temp!=0x0f)
        {delay(5);
                temp=P3&0x0f;
                if(temp!=0x0f)
                {temp=P3;
                        switch(temp)
                        {case 0xbe:s0=9;break;
                                case 0xbd:s0=10;break;
                                case 0xbb:s0=11;break;
                                case 0xb7:s0=12;break;
                        }
                        while(temp!=0x0f)
                        {temp=P3&0x0f;
                        }
                }
               
               
        }
                P3=0X7F;temp=P3&0X0F;
        if(temp!=0x0f)
        {delay(5);
                temp=P3&0x0f;
                if(temp!=0x0f)
                {temp=P3;
                        switch(temp)
                        {case 0x7e:s0=13;break;
                                case 0x7d:s0=14;break;
                                case 0x7b:s0=15;break;
                                case 0x77:s0=16;break;
                        }
                        while(temp!=0x0f)
                        {temp=P3&0x0f;
                        }
                }
               
               
        }       
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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