LPC1768-GPIO

硬件基礎:旺寶科技ARM NXP LPC1768 KIT V2.0

實現功能:LED流水燈效果

LED硬件連接圖如下:


連接在P2.0-P2.7,GPIO輸出高電平點亮LED

查閱1700芯片手冊,與GPIO相關的寄存器如下表






當引腳被配置爲GPIO功能的時候,FIOxDIR寄存器可以控制引腳的方向(輸入輸出),相應的位設置爲0則爲輸入引腳,設置爲1則爲輸出引腳

       除了可以32位訪問之外,FIODIR寄存器還可以字節或者半字訪問,相應寄存器如下


void Led_Init(){
		LPC_GPIO2->FIODIR  = 0x000000ff; 	// 32位設置方式
		LPC_GPIO2->FIODIR0  = 0xff; 		// 字節設置方式
		LPC_GPIO0->FIODIR  = 0x00200000; 				 //P0.21設置爲輸出模式
		LPC_GPIO0->FIODIR2 = 0x20;						// 字節設置方式
		LPC_GPIO0->FIOPIN |= 0x00200000; 			     // P0.21 = 1	
}

字節設置方式和32位寄存器設置方式均可,至此GPIO輸出設備完畢,接下來設置GPIO的輸出以點亮LED

GPIO輸出設置寄存器FIOxSET爲32位設置方式,FIOxSETx寄存器爲字節設置方式,FIOxSETL和FIOxSETU爲半字設置方式,具體設置方式同輸出設置寄存器,FIOxCLR寄存器對寄存器相關位清零,設置爲1時有效

GPIO端口引腳值寄存器FIOxPIN可直接設置GPIO引腳的值而無需使用SET 和 CLR寄存器

  LPC_GPIO0->FIOPIN |= 0x00200000; 			     /* p0.21=1*/

所以可以通過設置該寄存器來實現流水燈現象

int8_t temp []={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01} ;	 
Led_Display(){
     for(a=0;a<16;a++){
	    LPC_GPIO2->FIOPIN = temp[a];			/*ÍùFIOPIN¼Ä´æÆ÷дֵ*/
		Delay(300);
	  	if(a==15) { 
			 LPC_GPIO2->FIOPIN |= 0xff;			    /*µãÁÁÈ«²¿LED*/
			 Delay(500);
			 LPC_GPIO2->FIOPIN &=~0xff;			    /*ϨÃðÈ«²¿LED*/
			 Delay(500);

	    }
	 }
	 
  }
下載程序後可看到LED依次閃爍


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章