新聞中心

        EEPW首頁 > 4*4鍵盤的程序給初學者

        4*4鍵盤的程序給初學者

        ——
        作者: 時間:2007-10-19 來源:嵌入式技術論壇 收藏
        #include 

        #define uchar unsigned char
        #define uint unsigned int

        #define PORT P2//修改下面表中值的位置,就可以按自己的想法,定義鍵盤位置

        uchar code tab[16]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77};//這個值根據程序得出,
        uchar key;

        void Delay(uint n)
        {
                uint ii;
                for(ii=0;ii}

        //鍵盤
        void Scan_Key(void)
        {
                uchar a,b,c,i;
                PORT=0xf0;//高行,低列
              if((PORT&0xf0)!=0xf0)    //有鍵按下
                {
                        Delay(100);     //去抖動
                        if((PORT&0xf0)!=0xf0)   //確實有鍵按下
                        {
                                b=PORT&0xf0;   //b的值是列值,對于不同的行,同一列值是不變的,b總共就有四個值;同理行值也是四個。將它們和來確定按鍵位置。
                                c=PORT&0x0f;
                        }
                        a=c+b;    //b的值是行值,對于不同的列,同一行值是不變的,b總共就有四個值;同理列值也是四個。將它們和來確定按鍵位置。
                        for(i=0;i<16;i++)  //查表
                        {
                                if(tab[i]==a)
                                {
                                        key=i;
                                        break;
                                }
                        }
                        while((PORT&0x0f)!=0x0f);// 等待手離開按鍵
                }
        }

        void uart_inti(void)
        {
                TMOD=0x20;
                PCON=0x00;
                TH1=0xfd;
                TL1=0xfd;
                TR1=1;
                SCON=0x50;
                ES=1;
                EA=1;
        }

        main(void)
        {
                uart_inti();
                while(1)
                {  Scan_Key();  }
        }




        [/point]


        關鍵詞:

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 荔浦县| 驻马店市| 九寨沟县| 秦安县| 友谊县| 佛教| 永康市| 乃东县| 通州市| 文昌市| 年辖:市辖区| 临海市| 林甸县| 兴安盟| 青冈县| 化德县| 蓝田县| 南华县| 大英县| 新乡市| 禹城市| 阿拉善右旗| 高密市| 周宁县| 满洲里市| 康保县| 洪江市| 宾川县| 安乡县| 平潭县| 福泉市| 威宁| 定陶县| 介休市| 依安县| 乌什县| 鄂尔多斯市| 宣恩县| 黄龙县| 元朗区| 藁城市|