久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3850|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

MSP430F5438A單片機(jī)的獨(dú)立鍵盤

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:226180 發(fā)表于 2017-8-12 18:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 吳曉京123 于 2017-8-14 21:44 編輯

本程序是用獨(dú)立鍵盤切換流水燈樣式,


用到中斷來控制按鍵,源代碼如下:
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
  unsigned temp1;
  delay(20);
  if((P1IN&0x0f)!=0x0f)    //P1IN的值先跟0x0f與,
                                //再判斷是不是等于0X0f如果不等就執(zhí)行下一步

  {
    temp1 = P1IFG;          //  P1IFG=0X00;
    if(temp1==0x01)
    {
      LED_State = 1;
    }
     else if(temp1==0x02)
    {
      LED_State = 2;
    }
     else if(temp1==0x04)
    {
      LED_State = 3;
    }
   else
   {
      LED_State = 0;
   }
  }
  P1IFG = 0x00;
}

這里只有這樣寫1中斷只能控制按鍵1,后面的按鍵都控制不了,所以我又加了一個while(1);循環(huán),代碼如下:
while(1)
{
   if(LED_State == 1)
     lamp1();
   else if (LED_State == 2)
     lamp2();
   else if (LED_State == 3)
     lamp3();
    else
    {
          P2OUT=0x00;
          _NOP();
    }
}加這個循環(huán)的原因,我也不太清楚,我也是個初學(xué)者,

主要的部分就這樣了,接下來就是寫按鍵要切換的流水燈花樣了,


這里要說明一下,這個獨(dú)立按鍵是單片機(jī)上面自帶有的按鍵,不是像3x3,4x4矩陣鍵盤的按鍵,
下面是我的完整代碼:
#include<MSP430F5438A.h>
void delay();
void lamp1();
void lamp2();
void lamp3();
unsigned int  LED_State,a,b,j,k;
char LCD_a[]={0xFF,0x7E,0x3E,0x3C,0x0E,0x18,0x08};
void main()
{
        WDTCTL=WDTPW+WDTHOLD;
        P1DIR=0xf0;
        P1IE=0X0F;    //中斷使能寄存器
        P1IES=0X0F;    //中斷觸發(fā)邊沿選擇寄存器
        P1IFG=0X00;    //中斷標(biāo)志寄存器
        _EINT();
while(1)
{
   if(LED_State == 1)
     lamp1();
   else if (LED_State == 2)
     lamp2();
   else if (LED_State == 3)
     lamp3();
    else
    {
          P2OUT=0x00;
          _NOP();
    }
}
}
void delay(int xms)

{
         unsigned int i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}


void lamp1()//按鍵1控制的流水燈
{
        
      unsigned char lcd;
        P2DIR=0XFF;
        lcd=0xfe;
        P2OUT=lcd;
        
        for(a=0;a<23;a++)
        {
                lcd<<=1;
                lcd|=1;
                P2OUT=lcd;
                if(P2OUT==0xff)       //判斷LCD是否移動到最左端
                {
                        lcd=0x7e;
                        P2OUT=lcd;
                }
                delay(500);
         }
}

void lamp2()     // 按鍵2控制的流水燈
{
        P2DIR=0XFF;
         for(b=0;b<23;b++)
        {
                P2OUT=0x55;     //10101010
                delay(500);
                P2OUT=0xAA;     //01010101
                delay(700);
        }
}
void lamp3()            // 按鍵2控制的流水燈
{
          P2DIR=0XFF;
        for(k=0;k<7;k++)
        {
                P2OUT=LCD_a[k];
                delay(500);
         }
}

#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
  unsigned temp1;
  delay(20);
  if((P1IN&0x0f)!=0x0f)    //P1IN的值先跟0x0f與,
                                //再判斷是不是等于0X0f如果不等就執(zhí)行下一步

  {
    temp1 = P1IFG;          //  P1IFG=0X00;
    if(temp1==0x01)
    {
      LED_State = 1;
    }
     else if(temp1==0x02)
    {
      LED_State = 2;
    }
     else if(temp1==0x04)
    {
      LED_State = 3;
    }
   else
   {
      LED_State = 0;
   }
  }
  P1IFG = 0x00;
}






評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩久久 | 91精品久久久久 | 国产小视频在线观看 | 亚洲大片 | 日本成人三级电影 | 亚洲国产免费 | 日韩波多野结衣 | 欧美日韩在线视频观看 | 国产在线视频一区二区董小宛性色 | 一区二区三区视频在线 | 国产精品国产a级 | 精品国产视频 | 国产日韩精品久久 | 亚洲成人播放器 | 久久综合一区二区三区 | 国产精品不卡一区 | 日日夜夜精品视频 | 欧美一级黄视频 | 国产农村妇女精品一二区 | 亚洲高清免费观看 | 日韩欧美在线视频一区 | 午夜免费观看 | 国产精品免费一区二区三区四区 | 国产精品视频999 | 免费午夜电影 | 久久精品国产一区二区三区 | 99热国产精品 | 国产一区二区三区 | 国产精品99久久久久久动医院 | 国产精品99精品久久免费 | 亚洲精品综合 | 欧美一级三级 | 欧美大片黄| 日韩欧美在线精品 | 色综合视频 | 在线观看成人 | 亚洲欧洲中文日韩 | 久久久久久久久久久久久9999 | 日韩一区不卡 | 日本成人中文字幕在线观看 | 51ⅴ精品国产91久久久久久 |