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

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

        MSP430鍵盤程序

        作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
        // 此示例程序為中斷方式,得到鍵盤的鍵值,存放在隊列keybuff[10]中

        // 此示例程序沒有顯示,
        // 鍵盤的按鍵按下引起P1口的中斷服務(wù)程序,得到鍵盤的鍵值,保存到鍵值隊列
        // 在其他的中斷服務(wù)程序中通過鍵值隊列中的數(shù)據(jù)引導(dǎo)程序的流程
        #i nclude <msp430x14x.h>
        unsigned char keybuff[10];
        unsigned char keypoint=0;
        void delay(int v)
        {
        while(v!=0)v--;
        }

        unsigned char key(void)
        {
        unsigned char x=0xff;
        P1DIR=0X0F;
        P1OUT=0X01; //掃描第一行
        if((P1IN&0X70)==0X10)
        x=0;
        else
        if((P1IN&0X70)==0X20)
        x=1;
        else
        if((P1IN&0X70)==0x40)
        x=2;
        else
        {
        P1OUT=0X2; //掃描第二行
        if((P1IN&0X70)==0X10)
        x=3;
        else
        if((P1IN&0X70)==0X20)
        x=4;
        else
        if((P1IN&0X70)==0x40)
        x=5;
        else
        {
        P1OUT=0X4; //掃描第三行
        if((P1IN&0X70)==0X10)
        x=6;
        else
        if((P1IN&0X70)==0X20)
        x=7;
        else
        if((P1IN&0X70)==0x40)
        x=8;
        else
        {P1OUT=8; //掃描第四行
        if((P1IN&0X70)==0X10)
        x=9;
        else
        if((P1IN&0X70)==0X20)
        x=10;
        else
        if((P1IN&0X70)==0x40)
        x=11;
        }
        }
        }
        return(x);
        }


        unsigned char keyj(void)
        {unsigned char x;
        P1DIR=0x0f;
        P1OUT=0x0f; //鍵盤硬件:P10--P13為行線,最上面一根為P10
        x=(P1IN&0X70); // P14--P16為列線,最左邊一根為P14,列線下拉
        return(x); // 無按鍵,返回 0?; 有按鍵返回 非0
        }


        interrupt[PORT1_VECTOR] void port1key(void)
        {
        if(keyj()!=0X00)
        {
        delay(300) ; //消抖動
        if(keyj()!=0X0)
        {
        keybuff[keypoint]=key(); //按鍵見鍵值保存到隊列
        keypoint++; //
        if(keypoint==10)
        keypoint=0;
        }
        }
        P1OUT=0X0F;
        P1IFG=0X0; //清除中斷標志
        }

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

        void main(void)
        {
        WDTCTL = WDTPW + WDTHOLD; /* // Stop WDT */
        P1DIR=0XF;
        P1OUT=0XF;
        P1IES=0X0;
        P1IE=0X70; //列線上升沿允許P1中斷
        _EINT(); /*/ Enable interrupts */

        while(1)
        {

        LPM0;
        _NOP();
        }



        關(guān)鍵詞: MSP430鍵盤程

        評論


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

        關(guān)閉