找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2518|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

矩陣按鍵,按著沒反應(yīng),編譯沒錯(cuò),但沒現(xiàn)象

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:257618 發(fā)表于 2017-12-9 11:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
代碼如下
#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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表