立即注冊(cè) 登錄
返回首頁

uid:191022的個(gè)人空間

日志

單片機(jī)按鍵掃描程序

已有 467 次閱讀2017-4-25 11:24 |個(gè)人分類:51單片機(jī)| 單片機(jī), 程序

#include <REGX51.H>
#include <intrins.h> 

//獨(dú)立鍵盤.無按鍵動(dòng)作時(shí)其返回值num_key=0,否則返回按鍵號(hào)num_key 
extern unsigned char keyboard_self() 
        unsigned char num_key=0;//按鍵號(hào) 
        unsigned char temp=0;//用于讀取P2線上按鍵值 
        static unsigned char temp_code=0;//保存按鍵值 
        static unsigned char num_check=0;//低電平有效次數(shù) 
        static unsigned char key_flag=0;//按鍵有效標(biāo)識(shí) 

        temp=P2&0xF0;//讀取P2線數(shù)據(jù) 

        if(temp!=0xF0)//低電平判斷 
        { 
                num_check++; 
                if(num_check==10)//連續(xù)10次(10ms)低電平有效,則認(rèn)為按鍵有效 
                { 
                        key_flag=1;//使能按鍵有效標(biāo)識(shí) 
                        temp_code=temp;//保存按鍵值 
                } 
        } 
        else//松手時(shí)判斷 
        { 
                num_check=0; 

                if(key_flag==1)//按鍵有效 
                { 
                        key_flag=0; 

                        switch(temp_code)//讀取按鍵號(hào) 
                        { 
                                case 0xE0: num_key=1;  P1=0xf0;
                                           break; 
                                case 0xD0: num_key=2;  P1=0x0f;
                                           break; 
                                case 0xB0: num_key=3;  P1=0xaa;
                                           break; 
                                case 0x70: num_key=4;  P1=0xff;
                                           break; 
                        } 
                } 
        } 

        return(num_key); 

void main()
{
while(1)
{
keyboard_self();
}
}

路過

雞蛋

鮮花

握手

雷人

評(píng)論 (0 個(gè)評(píng)論)

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

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

返回頂部