在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430F14-直接IO口按鍵檢處理程序

            MSP430F14-直接IO口按鍵檢處理程序

            作者: 時(shí)間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
            //MSP430F14-直接IO口按鍵檢處理程序

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

            本文引用地址:http://www.biyoush.com/article/201611/316575.htm

            //分別使用了采個(gè)4個(gè)按鍵接到MSP430的通用IO口,按任意一個(gè)按鍵可以使板上的對(duì)應(yīng)LED反轉(zhuǎn).
            //例程中,按鍵采用不斷查詢方式,以得到鍵值.并沒有使用到低功耗.此程序結(jié)構(gòu)比較適合
            //用在非手持設(shè)備或非電池供電的設(shè)計(jì)中.此程序結(jié)構(gòu)比較通用,級(jí)用戶可參與或套用修改.
            /*************************************************************************/
            #include <msp430x14x.h>

            //初級(jí)用戶要習(xí)慣采用宏定義,以方便的編寫和修改
            #define keyio 0xf0 //定義按鍵IO口,Px0-Px3 IO口.
            #define key_1 0xfe //定義返回鍵值1
            #define key_2 0xfd //定義返回鍵值2
            #define key_3 0xfb //定義返回鍵值3
            #define key_4 0xf7 //定義返回鍵值3

            //聲明子程序
            unsigned char key_chcek(void);
            void display_update(unsigned char dta);
            void key_process_0(void);
            void key_process_1(void);
            void key_process_2(void);
            void key_process_3(void);
            //*************************************************************************
            //將單片機(jī)初始化程序放在main()前面是方便查看單片機(jī)的初始化狀態(tài)情況.
            void MCU_int(void)
            {//默認(rèn)MCLK主時(shí)鐘頻率為DCO=~800K
            P1OUT |= BIT4+BIT5+BIT6+BIT7; //設(shè)置LED,上電為滅.電路可以查看MC430F14電路圖.
            P1DIR |= BIT4+BIT5+BIT6+BIT7; //P1.0~P1.3設(shè)置為輸出.
            //MSP430單片機(jī)IO口上電默認(rèn)方向?yàn)檩斎?所以接按鍵的IO無需再設(shè)為輸入.
            }

            //*************************************************************************
            void main (void)
            { unsigned char key_value; //定義鍵值全局變是
            WDTCTL = WDTPW + WDTHOLD; //關(guān)狗
            MCU_int(); //初始化單片機(jī)

            while(1) //主程序主循環(huán)
            {
            key_value=key_chcek(); //檢測,有鍵按下并松開,返回一個(gè)鍵值.

            switch (key_value) //對(duì)鍵值進(jìn)行處理.采switch語法結(jié)構(gòu)查詢
            {
            case key_1: key_process_0(); //調(diào)用鍵處理程序1
            break;
            case key_2: key_process_1(); //調(diào)用鍵處理程序2
            break;
            case key_3: key_process_2(); //調(diào)用鍵處理程序3
            break;
            case key_4: key_process_3(); //調(diào)用鍵處理程序4
            break;
            default: ;
            break;
            }
            // display_update(key_value); //如果有需要可以在這里加上顯示更新程序.
            key_value=0x00; //最后清除鍵值.將繼續(xù)主循環(huán).
            }
            }

            //*************************************************************************
            //按鍵檢測程序
            //返回值: 無符號(hào)字符型鍵值
            unsigned char key_chcek(void)
            {
            unsigned int i;
            unsigned char timp,active;
            active=0;
            while(!active)
            {
            while(0xff ==( P2IN | keyio)); //一直等待有鍵按下
            timp = P2IN | 0xf0; //若有鍵接下了,則讀入IO狀態(tài).
            for(i=0;i<7000;i++); //延時(shí),是為了去按鍵抖動(dòng).
            if (timp ==(P2IN | 0xf0)) //經(jīng)延時(shí)后,還是那鍵嗎?
            { active = 1; //是,則按鍵有效.
            while(0xff !=( P2IN | keyio)); //一直等待按鍵松開
            }
            else
            { //去按鍵抖動(dòng)后讀入的鍵值與之前不同.則先效.
            active = 0; //再循環(huán)檢測.
            }
            }
            return timp; //返回一個(gè)鍵值.
            }

            //*************************************************************************
            void key_process_0(void) //值處理,用戶可以自己修改...
            {
            P1OUT ^= BIT4;
            }
            //*************************************************************************
            void key_process_1(void) //值處理,用戶可以自己修改...
            {
            P1OUT ^= BIT5;
            }
            //*************************************************************************
            void key_process_2(void) //值處理,用戶可以自己修改...
            {
            P1OUT ^= BIT6;
            }
            void key_process_3(void) //值處理,用戶可以自己修改...
            {
            P1OUT ^= BIT7;
            }
            //*************************************************************************
            /*void display_update(unsigned char dta)
            {
            ; //用戶可以根據(jù)需要來放置顯示程序,如LCD,LED,Digital-LED....
            //靈活應(yīng)用,
            }*/
            //*************************************************************************



            關(guān)鍵詞: MSP430F14IO口按鍵檢處

            評(píng)論


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

            關(guān)閉