(玩電子) 電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

HOLTEK單片機-4X4鍵盤使用軟件掃描

作者:佚名   來源:本站原創   點擊數:x  更新時間:2012年01月02日   【字體:

功能說明:

4X4鍵盤對應著0-F共16個數字,按其中任一鍵即可在共陽極七段顯示器上顯示所對應的數字。

電路說明:

        電路

 
 

        HT46F49E的端口B接一個共陽極七段顯示器。

        由于使用共陽極七段數碼器,所以在端口B的每一只引腳都串上一個電阻以作為分壓之用。因為七段顯示器的每一段都可視為一個發光二極管,VCC足以將該段燒毀,所以在每一段應串接一個電阻與發光二極管分壓,以保護七段顯示器。

        HT46F49E的端口A接一組4X4鍵盤。PA7-PA0送出行掃描碼,其中一只引腳送出0,其余送出1,PA7-PA4輪流送出0.如果有一個按鍵被按下,則PA3-PA0會收到那一個按鍵被按下的信息。綜合PA7-PA4的行掃描碼與PA3-PA0鍵被按下的信息即可知道是哪一個鍵被按下。

      完整程序代碼下載地址:http://www.rchszg.icu/f/htjp.rar

程序:

#include "HT46F49E.H"

const unsigned char number[]={

0x81,0xcf,0x92,0x86,

0xcc,0xa4,0xa0,0x8f,

0x80,0x84,0x88,0xe0,

0xb1,0xc2,0xb0,0xb8};

unsigned int key_code;

void scan_keypressed()

{

    unsigned int i,scan_code;

    scan_code=0xef;

    key_code=0;

    for(i=0;i<4;i++)

    {

        _pa=scan_code;

        if(_pa0==0)

            key_code=i*4+1;

        if(_pa1==0)

            key_code=i*4+2;

        if(_pa2==0)

            key_code=i*4+3;

        if(_pa3==0)

            key_code=i*4+4;

        _rl(&scan_code);

    }  

}

void scan_keyeleased()

{

    switch(key_code%4)

    {

        case 1:while(!_pa0);

            break;

        case 2:while(!_pa1);

            break;

        case 3:while(!_pa2);

            break;

        case 0:while(!_pa3);

            break;  

    }  

}

void main()

{

    unsigned int key_old,led;

    _pcc=0x00;

    _pbc=0x00;

    _pac=0x0f;

    led=0;

    _pb=number[0];

    while(1)

    {

        scan_keypressed();

        if(key_code>0)

        {

            key_old=key_code;

            _delay(20000);

            scan_keypressed();

            if(key_old==key_code)

            {

                scan_keyeleased();

                led=key_code-1;

                _pb=number[led]; 

            }

        }

    }

}
發表評論】【告訴好友】【收藏此文】【關閉窗口

文章評論

相關文章

街机奔驰宝马电玩城 注册送彩金捕鱼 闲来麻将长沙麻将 澳洲幸运8是哪个国家开的 JDP财神捕鱼 影响股票涨跌的原因 湖南幸运赛车开奖网址 南大光电股票代码 宜昌血流换三张手机下载 管家婆四肖三期必出特 000952股票行情 三肖必中特马 手机网赚论坛 股票走势专业选卓信.宝 开元棋牌? 股票数据获取 天天真人麻将下载