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依次闪烁


  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值