新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機實驗板2011_V1.1-矩陣按鍵練習

        單片機實驗板2011_V1.1-矩陣按鍵練習

        作者: 時間:2016-11-18 來源:網絡 收藏

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

        原理圖:

        /************單片機教學實驗板 ******************/
        /*功能描述:學習板整體演示程序 */
        /*作者:鄭 文 */
        /*編寫時間:2011.3.1 */
        /*接外部晶振11.0592 MHZ */
        /*功能描述*/
        /*4*4矩陣按鍵練習*/
        #include
        #include
        #include
        #include
        #include
        #include

        #define uchar unsigned char
        #define uint unsigned int
        #define ulong unsigned long

        sbit speaker=P1^3; //蜂鳴器

        sbit A13=P2^5; //
        sbit R_D=P3^7; //

        sbit D4=P0^4; //
        sbit D5=P0^5; //
        sbit D6=P0^6; //
        sbit D7=P0^7; //


        sbit LED_CS=P1^4;

        void Key_Beep(void);
        void Delay_Beep(unsigned int count);

        /*****************按鍵聲音********************/
        void Key_Beep(void)
        { uchar i;
        for (i=0;i<250;i++)
        { speaker=1;
        Delay_Beep(5);

        speaker=0;

        Delay_Beep(5);
        }
        speaker=1;
        }

        /**************************************************/

        /***************************蜂鳴器延時子程序start**********************/
        void Delay_Beep(unsigned int count)
        {
        unsigned int i,j;
        for(i=0;ifor(j=0;j<10;j++);
        }
        /***************************蜂鳴器延時子程序end************************/
        /************主程序*************/
        void main(void)
        {
        uchar key_num;
        LED_CS=0;
        A13=0;
        R_D=0;
        P0=0Xff;
        Key_Beep();
        Delay1ms(1000);
        Key_Beep();
        while(1)
        {
        ;
        }

        }

        ////////////////////////////////////////////////////////////////////////////////////////////////

        Matrix_Key.h

        /*****Program Author : ZhengWen(ClimberWin) *****/
        /*************************************************************/
        /*****File Function : 4*4 key *****/
        /*****Compile Date : 2009/2/1 *****/
        /*****Edition Info : V1.0 *****/
        /*****Amend Date : *****/
        /*************************************************************/
        /*************************功能描述****************************/
        /*********************4*4矩陣按鍵應用*************************/
        /*******************P2為矩陣按鍵的接口************************/
        #ifndef __Matrix_Key__
        #define __Matrix_Key__
        #include
        #define uchar unsigned char
        #define uint unsigned int

        uchar Matrix_Key();//返回值(00-15)16個按鍵

        /********4*4矩陣按鍵程序******/
        uchar Matrix_Key()
        {
        uchar key;
        uchar temp1,temp2;
        uchar key_num;

        key=0x55;//初始鍵值
        P2=0x0f;
        temp1=P2&0x0f;
        if(!(temp1==0x0f))
        {
        P2=0xf0;
        temp2=P2&0xf0;
        switch(temp1|temp2)
        {
        case 0xee:key=0; break;
        case 0xde:key=1; break;
        case 0xbe:key=2; break;
        case 0x7e:key=3; break;
        case 0xed:key=4; break;
        case 0xdd:key=5; break;
        case 0xbd:key=6; break;
        case 0x7d:key=7; break;
        case 0xeb:key=8; break;
        case 0xdb:key=9; break;
        case 0xbb:key=10;break;
        case 0x7b:key=11;break;
        case 0xe7:key=12;break;
        case 0xd7:key=13;break;
        case 0xb7:key=14;break;
        case 0x77:key=15;break;
        default: ;key=0x55;break;
        }
        }
        else
        {;}
        return(key);//返回鍵值
        }
        #endif



        關鍵詞: 單片機矩陣按

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 额济纳旗| 定西市| 德庆县| 依安县| 嘉兴市| 普兰县| 常德市| 从江县| 综艺| 杭州市| 黄石市| 那曲县| 德令哈市| 准格尔旗| 黑河市| 仙游县| 芦溪县| 宜兴市| 黄浦区| 西盟| 屏山县| 西林县| 广丰县| 万荣县| 如东县| 黄龙县| 濉溪县| 古交市| 永宁县| 灌阳县| 太谷县| 天等县| 都兰县| 伊川县| 大竹县| 永德县| 博乐市| 东港市| 长葛市| 洛宁县| 紫金县|