找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

為何矩陣按鍵掃描不可以這樣寫,按按鍵時沒反應(yīng)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:91274 發(fā)表于 2015-10-23 22:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<pic.h>
#define uchar unsigned char
#define uint  unsigned int
__CONFIG(0x3B31);
const uchar table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
const uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e};
uchar key_num,sum,HL,kk;
void delay(uint x);
void init();
uchar scan();
void didi(uchar sum);
void shumaguan();

void main()
{
        init();
        while(1)
        {
                kk=scan();
        shumaguan();
        }       
}
void delay(uint z)
{
        uint i,j;
        for(i=z;i>0;i--)
                for(j=110;j>0;j--);
}
void init()
{
//    CMCON=0x07; //比較器關(guān)閉,RA0-RA3為IO
//    CVRCON=0x00; //比較器電源關(guān)閉
//    ADCON1=0x06; //AD轉(zhuǎn)換關(guān)閉,AN0-AN7配置為數(shù)字IO
//    TRISA=0xff;  //PORTA定義為輸入
    TRISB=0Xf0;  //定義RB0為輸出  1111輸入 0000輸出
    TRISC=0X00;  //PORTC定義為輸出
//    RB0=1;
//        TRISD=0x00;  //PORTD定義為輸出
        PORTC=0xFF;
}

uchar scan()
{
        PORTB=0xf0;           //1111 0000
        key_num=PORTB;       
    key_num=key_num&0xf0;
    if(key_num!=0xf0)
    {
                delay(5);         
                key_num=PORTB;             //1110 0000
        key_num=key_num&0xf0;//1110 0000
        if(key_num!=0xf0)
                {
                        key_num=PORTB&0XF0;  //1110 0000
                        key_num=key_num|0X0F; //1110 1111
                        PORTB=key_num;
                        sum=PORTB;
                        key_num=key_num&0x0f;
                        sum=sum&0xf0;
                        HL=key_num+sum;
                }
        }
                 return HL;
}

void shumaguan()
{
                  switch(kk)
                  {
                              case 0xee:PORTC=table[0];break;
                               case 0xde:PORTC=table[1];break;
                                  case 0xbe:PORTC=table[2];break;
                                  case 0x7e:PORTC=table[3];break;
                                  case 0xed:PORTC=table[4];break;
                                  case 0xdd:PORTC=table[5];break;
                                  case 0xbd:PORTC=table[6];break;
                                  case 0x7d:PORTC=table[7];break;
                                  case 0xeb:PORTC=table[8];break;
                                  case 0xdb:PORTC=table[9];break;
                            case 0xbb:PORTC=table[10];break;
                                  case 0x7b:PORTC=table[11];break;
                                  case 0xe7:PORTC=table[12];break;
                                  case 0xd7:PORTC=table[13];break;
                                  case 0xb7:PORTC=table[14];break;
                                case 0x77:PORTC=table[15];break;
                  }

}C:\Users\root\Desktop\QQ截圖20151023223500.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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