CC2530 按鍵控制LED


原理圖分析

當按鍵沒有按下的時候是高電平;按下的時候VCC通過10K的限流電阻接地是低電平。要知道引腳的狀態,需要把引腳配置為輸入模式,然后讀取引腳的狀態即可。

按鍵原理圖
LED原理圖

寄存器分析

  • P0SEL配置為輸入/輸出模式(0為IO模式,1為外設模式)。
  • P0DIR 配置引腳為輸入模式(0為輸入,1為輸出)
  • P0INP配置為上拉或者下拉模式(0為上拉或下拉模式,1為三態模式)
  • P2INP的高三位決定整個P0,P1,P2端口是上拉還是下拉。

編寫測試

#include <ioCC2530.h> 

void main(void)
{
    //配置P0_1引腳的按鍵1 
    P0SEL &= ~0x02; //普通GPIO模式<0為IO模式,1為外設模式>
    P0DIR &= ~0x02; //輸入功能<0為輸入,1為輸出>
    P0INP &= ~0x02; //上拉或下拉模式<0為上拉或下拉模式,1為三態模式>

    //配置P1_0引腳的LED1
    P1SEL &= ~0x01; //普通GPIO模式<0為IO模式,1為外設模式>
    P1DIR |= 0x01;  //輸出功能<0為輸入,1為輸出>
    P1INP &= ~0x01; //上拉或下拉模式<0為上拉或下拉模式,1為三態模式>
    
    P2INP |= 0xe0;  //P0,P1,P2都設置為上拉模式
    
    while (1)
    {
        //如果按鍵按下則LED亮,否則LED滅
        if (0 == P0_1) {
            P1_0 = 0;
        } 
        else {
            P1_0 = 1;
        }
    }
}

注意事項

注意:P2INP這個寄存器的高三位。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM