mini2440裸机程序--完善点亮LED(c…

过了一段时间,随性就把把LED灯程序完善了一下,包括流水灯和以二进制形式点亮两个子程序。
建立的MDK工程列表如下:


mini2440裸机程序--完善点亮LED(c语言)

*********************************************************************
LED.C文件
*********************************************************************
#include"led.h"

void Led_Init(void)   //led灯初始化函数
{
GPBCON&=(~(3<<10|3<<12|3<<14|3<<16));
GPBCON|=(1<<10|1<<12|1<<14|1<<16);//将芯片IO5,6,7,8口设置为输出:01
GPBUP&=(~(1<<5|1<<6|1<<7|1<<8));//上拉电阻可用
GPBDAT|=(1<<5|1<<6|1<<7|1<<8);
}


void Led_Flash(void)     //LED流水灯
{
LED1_ON();
Delay();
LED1_OFF();
Delay();

LED2_ON();
Delay();
LED2_OFF();
Delay();

LED3_ON();
Delay();
LED3_OFF();
Delay();

LED4_ON();
Delay();
LED4_OFF();
Delay();
}


void Led_Bin(void) //LED灯以二进制形式亮灯
{
int i;
for(i=0xe;i>=0;i--)   //注意i的赋值,因为主程序中执行Led_Flash()完后,
  //led灯为全灭,因此不用重复灭了,故复制0x0e:亮LED1
{          
GPBDAT&=(i<<5);
Delay();
GPBDAT|=(1<<5|1<<6|1<<7|1<<8);
Delay();
}
}



void Delay(void)
{
int a,b;
for(a=0;a<=1000;a++)
{
for(b=0;b<10000;b++);
}
}
*********************************************************************
LED.h文件
*********************************************************************

#ifndef _LED_H_
#define _LED_H_

#include

#define LED1_ON() {GPBDAT&=(~(1<<5));}
#define LED2_ON() {GPBDAT&=(~(1<<6));}
#define LED3_ON() {GPBDAT&=(~(1<<7));}
#define LED4_ON() {GPBDAT&=(~(1<<8));}

#define LED1_OFF() {GPBDAT|=(1<<5);}
#define LED2_OFF() {GPBDAT|=(1<<6);}
#define LED3_OFF() {GPBDAT|=(1<<7);}
#define LED4_OFF() {GPBDAT|=(1<<8);}

void Led_Init(void);   //led灯初始化函数
void Led_Flash(void);     //LED流水灯
void Led_Bin(void);     //LED灯以二进制形式亮灯
void Delay(void);


#endif

*********************************************************************
main.C文件
*********************************************************************
#include"led.h"

int main()
{
Led_Init();   //LED1234四个LED灯引脚初始化函数
while(1)
{
Led_Flash();
Led_Bin_Add();
}
}

用minitools下载,运行可以看到结果。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值