欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1492|回復: 0
打印 上一主題 下一主題
收起左側

430F5XXX單片機中斷按鍵不能用的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:386326 發表于 2018-8-14 21:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /*
  2. P1.5  0 K5
  3. P1.7  0 K6
  4. P2.0  0 K1
  5. P2.2  0 K2
  6. P2.3  0 K3
  7. P2.5  0 K4

  8. P4.2 1 LED0 1
  9. P4.3 1 LED2 2
  10. P4.4 1 LED3 3
  11. P4.5 1 LED5 4
  12. P4.6 1 LED6 5
  13. P4.7 1 LED8 6
  14. */
  15. typedef unsigned char uchar;
  16. typedef unsigned int  uint;
  17. int main(void)
  18. {
  19.     WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer

  20.     P1DIR &= ~(BIT7+BIT5); //P1.7 P1.5設置為輸入
  21.     P1IFG &= ~(BIT7+BIT5); //P1.7 P1.5初始化清空中斷標志位
  22.     P1IE |= (BIT7+BIT5);  //P1.7 P1.5中斷使能
  23.     P1IES |= (BIT7+BIT5); //P1.7 P1.5下降沿產生中斷
  24.     P1OUT |= (BIT7+BIT5); //P1.7,P1.5設置輸出為高
  25.     P1REN |= (BIT7+BIT5); //P1.7,P1.5設置為上拉電阻

  26.     P2DIR &= ~(BIT0+BIT2+BIT3+BIT5); //P2.0 P2.2 P2.3 P2.5設置為輸入
  27.     P2IFG &= ~(BIT0+BIT2+BIT3+BIT5); //初始化清空中斷標志位
  28.     P2IE |= (BIT0+BIT2+BIT3+BIT5); //P2.0 P2.2 P2.3 P2.5中斷使能
  29.     P2IES |= (BIT0+BIT2+BIT3+BIT5); //P2.0 P2.2 P2.3 P2.5下降沿產生中斷
  30.     P2OUT |= (BIT0+BIT2+BIT3+BIT5); //P2.0 P2.2 P2.3 P2.5設置為上拉電阻:OUT = 1; REN = 1;
  31.     P2REN |= (BIT0+BIT2+BIT3+BIT5);
  32.     P4DIR|=0xfc;    //led輸出
  33.     P4OUT =0x00;    //初始化輸出值,
  34.     __enable_interrupt();
  35.     while(1);
  36. }

  37. #pragma vector = PORT1_VECTOR     //固定格式,聲明中斷向量地址,不能變
  38. __interrupt void LED(void) //函數名,可以任意定義
  39. {
  40. switch(__even_in_range(P1IV,18))
  41. {
  42. case 0x10:

  43.           if ((P1IN & BIT7) == 0) //P1 BIT7 K6 正常
  44.           P4OUT ^= BIT7;          //P2 BIT7 LED6
  45.           break;
  46. case 0x80:

  47.           if ((P1IN & BIT5) == 0) //P1 BIT5 K5 不能用
  48.           P4OUT ^= BIT6;          //P4 BIT6 LED5
  49.           break;
  50. default:
  51.           //P4OUT |=~(BIT6+BIT7);
  52.           break;
  53. }
  54. }
  55. #pragma vector = PORT2_VECTOR          //固定格式,聲明中斷
  56. __interrupt void fuck430(void)                  //函數名,可以任意定義
  57. {
  58.      switch(__even_in_range(P2IV,18))
  59.          {
  60.      case 0x01:

  61.           if ((P2IN & BIT0) == 0) //P2 BIT0 K1 不能用
  62.           P4OUT ^= BIT2;          //P4 BIT2 LED1
  63.           break;
  64.      case 0x04:

  65.           if ((P2IN & BIT2) == 0) //P2 BIT2 K2 不能用
  66.           P4OUT ^= BIT3;          //P4 BIT3 LED2
  67.           break;
  68.      case 0x08:

  69.           if ((P2IN & BIT3) == 0)      //P2 BIT3 K3 有效
  70.           P4OUT ^= BIT4;               //P4 BIT4 LED3
  71.           break;
  72.     case 0x20:

  73.           if ((P2IN & BIT5) == 0) //P2 BIT5 K4 不能用
  74.           P4OUT ^= BIT5;          //P4 BIT5 LED4
  75.           break;
  76.          default:

  77.                    break;
  78.          }
  79. }

復制代碼


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

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表