基于mini2440轮询控制LED(裸机代码)

#define GLOBAL_CLK 
#include "def.h"
#include "option.h"
#include "2440addr.h"     
#include "2440lib.h"
#include "2440slib.h"   

#define LED1_on  rGPBDAT = ((0xf<<5)^(1<<5))  	//GPB5=0
#define LED2_on  rGPBDAT = ((0xf<<5)^(1<<6))	//GPB6=0
#define LED3_on  rGPBDAT = ((0xf<<5)^(1<<7))  	//GPB7=0
#define LED4_on  rGPBDAT = ((0xf<<5)^(1<<8)) 	//GPB8=0
#define LED1_3_on  rGPBDAT = ((0xf<<5)^(5<<5))	//GPB5=0,GPB7=0
#define LED2_4_on  rGPBDAT = ((0xf<<5)^(5<<6)) 	//GPB6=0,GPB8=0
#define LED_off  rGPBDAT = (0xf<<5) //GPB5=1,GPB6=1,GPB7=1,GPB8=1
#define LED_on  rGPBDAT = ~(0xf<<5) //GPB5=0,GPB6=0,GPB7=0,GPB8=0


int Main()     /*GPG0 GPG3  GPG5  GPG6   GPG7   GPG11 设置为输入*/ 
{	rGPGCON = ((0<1)|(0<7)|(0<11)|(0<13)|(0<15)|(0<23));
	rGPBCON = ((1<10)|(1<12)|(1<14)|(1<16));//B口GPB5-6-7-8设为输出 
	LED_off;
	
    while( 1 )
    {

		if (rGPGDAT&(1<<0)) //如果K1没有被按下 
		{
			LED_off;
		}
		else
		{
			LED1_on;
		}
		if (rGPGDAT&(1<<3)) //如果K2没有被按下
		{
			LED_off;
		}
		else
		{
			LED2_on;
		}
		if (rGPGDAT&(1<<5)) //如果K3没有被按下
		{
			LED_off;
		}
		else
		{
			LED3_on;
		}
		if (rGPGDAT&(1<<6)) //如果K4没有被按下
		{
			LED_off;
		}
		else
		{
			LED4_on;
		}
		if (rGPGDAT&(1<<7)) //如果K5没有被按下
		{
			LED_off;
		}
		else
		{
			LED1_3_on;
		}
		if (rGPGDAT&(1<<11)) //如果K6没有被按下
		{
			LED_off;
		}
		else
		{
			LED2_4_on;
		}
    }
    return 0;
}
	

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值