新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)C編程(七、5個(gè)IO口掃描10個(gè)按鍵)

        51單片機(jī)C編程(七、5個(gè)IO口掃描10個(gè)按鍵)

        作者: 時(shí)間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
        程序名稱:5個(gè)IO口掃描10個(gè)按鍵

        者:jumpmysoul
        期:2009年5月22日
        程序功能:用P1口的P00~P04實(shí)現(xiàn)10個(gè)按鍵的掃描,并將鍵值用一個(gè)數(shù)碼管顯示

        本文引用地址:http://www.104case.com/article/201611/322158.htm

        proteus仿真電路如下:

        #include
        #define uchar unsigned char
        #define uint unsigned int
        #define SEG P0

        uchar code tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x08};//共陽數(shù)碼管段碼

        void delay1ms(uint);
        uchar press_key();
        void display();
        /
        uchar press_key()
        {
        uchar keyval;

        P1=0xfe;//第一行送0
        if(P1!=0xfe)
        {
        delay1ms(1);
        if(P1!=0xfe)
        {
        if(P1==0xfc)//‘1’按下
        keyval=1;
        else if(P1==0xfa)// ‘2’按下
        keyval=2;
        else if(P1==0xf6)// ‘3’按下
        keyval=3;
        else if(P1==0xee)// ‘4’按下
        keyval=4;
        }
        }

        P1=0xfd;//第二行送0
        if(P1!=0xfd)
        {
        delay1ms(1);
        if(P1!=0xfd)
        {
        if(P1==0xf9)//‘5’按下
        keyval=5;
        else if(P1==0xf5)// ‘6’按下
        keyval=6;
        else if(P1==0xed)//‘7’按下
        keyval=7;
        }
        }

        P1=0xfb;//第三行送0
        if(P1!=0xfb)
        {
        delay1ms(1);
        if(P1!=0xfb)
        {
        if(P1==0xf3)// ‘8’按下
        keyval=8;
        else if(P1==0xeb) // ‘9’按下
        keyval=9;
        }
        }

        P1=0xf7;//第四行送0
        if(P1!=0xf7)
        {
        delay1ms(1);
        if(P1!=0xf7)
        {
        if(P1==0xe7)//‘10’按下
        keyval=10;
        }
        }

        return(keyval);//返回鍵值
        }
        /***************************************鍵值顯示子函數(shù)*********************

        //入口參數(shù):無
        //返回參數(shù):無
        //調(diào)用子函數(shù):press_key()
        //函數(shù)功能:將鍵值用數(shù)碼管顯示出來
        //*********************************************************************************
        void display()
        {
        uchar i;
        i=press_key();
        SEG=tab[i];
        }



        關(guān)鍵詞: 51單片機(jī)C編程IO口掃

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 高尔夫| 肃宁县| 琼结县| 临西县| 伊宁县| 伊春市| 开远市| 长子县| 齐河县| 茌平县| 安宁市| 山西省| 德安县| 崇仁县| 宝应县| 霍州市| 呼伦贝尔市| 大冶市| 电白县| 周口市| 远安县| 镶黄旗| 清原| 平果县| 漠河县| 永年县| 九龙县| 泰和县| 新宾| 临清市| 寻甸| 西平县| 东乡族自治县| 成都市| 综艺| 五常市| 衡山县| 贵定县| 高清| 盐城市| 三门峡市|