新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > [C51代碼]4*4鍵盤掃描

        [C51代碼]4*4鍵盤掃描

        作者: 時間:2016-11-10 來源:網絡 收藏
        程序如下:
        #include
        #define uint unsigned int
        #define uchar unsigned char
        sbit key3 =P2^0; //按鍵的行檢測信號
        sbit key2 =P2^1;
        sbit key1 =P2^2;
        sbit key0 =P2^3;
        sbit dis0 =P2^4;
        sbit dis1 =P2^5;
        sbit dis2 =P2^6;
        sbit dis3 =P2^7;
        sbit dis4 =P3^3;
        uchar keyx,key;
        uchar code disp[17]={0x00,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
        void delay(uint i)
        {for(;i>0;i--)
        ;
        }
        uchar keyscan() //數碼管顯示掃描與鍵盤檢測
        {
        static dis=0;
        dis=(dis+1)%5;
        dis0=1;dis1=1;dis2=1;dis3=1;dis4=1;
        switch(dis) //位選碼輸出
        {
        case 0: dis0=0; break;
        case 1: dis1=0; break;
        case 2: dis2=0; break;
        case 3: dis3=0; break;
        case 4: dis4=0; break;
        }
        if(!key0) keyx=dis+1; //鍵盤的行檢測與譯碼
        if(!key1) keyx=dis+5;
        if(!key2) keyx=dis+9;
        if(!key3) keyx=dis+13;
        return keyx;
        }
        void main(void)
        { while(1)
        {
        key=keyscan();
        P0=disp[key];
        delay(3000);
        }
        }


        關鍵詞: C51代碼4*4鍵盤掃

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 孝感市| 湄潭县| 西林县| 永定县| 高碑店市| 海兴县| 田林县| 丁青县| 平果县| 南华县| 长春市| 独山县| 玉林市| 社旗县| 南昌市| 安丘市| 文成县| 大田县| 齐齐哈尔市| 吕梁市| 白河县| 盐源县| 民县| 疏附县| 崇义县| 苗栗市| 灵宝市| 屯留县| 英德市| 客服| 永城市| 永昌县| 吉林市| 东安县| 乌鲁木齐县| 六枝特区| 巩留县| 石林| 门头沟区| 辽宁省| 汉寿县|