ARM学习之GPIO实验

/***************************************************
Project: GPIO实验之流水灯
  Writer:  SHOW      
  Time:  2011/10/12 
  Hareware: mini2440 , J-link.

     硬件连接:LED1~LED4 对应 GPB5~GPB8.

                        Function:实现四个LED灯循环点亮。

  Direction:1.需要设置的寄存器GPBCON,GPBDAT。                 
***************************************************/
#include "2440addr.h"
#include "2440lib.h"
#include "option.h"
#include "def.h" 
#include "uart.h"


#define LED1_OFF (1<<5)
#define LED2_OFF (1<<6)
#define LED3_OFF (1<<7)
#define LED4_OFF (1<<8)


void delay(unsigned int x);
void Init_GPIO(void);    
void LED_Control(void);

void Main(void) 
{

Init_GPIO();

while(1)
{
LED_Control();
}

}

void delay(unsigned int x)
{
int i;
for( ;  x != 0; --x )
for(i=0; i!=400; ++i);
}

void Init_GPIO(void)
{


rGPBCON = 0;
rGPBCON |= (1<<10) | (1<<12) | (1<<14) | (1<<16); // 设置GPB5~GPB8 为输出口。
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);// 初始化熄灭。

}

void LED_Control(void)
{
rGPBDAT &= ~LED1_OFF;  //  为了不影响寄存器其他位,送0要与寄存器相与。送1要与寄存器相或。
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);

rGPBDAT &= ~LED2_OFF;
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);

rGPBDAT &= ~LED3_OFF;
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);

rGPBDAT &= ~LED4_OFF;
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值