【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码

      《嵌入式系统开发》系列专栏主要以LPC1100系列微控制器为硬件平台,详细介绍Cortex—-M0微控制器的原理与开发技术,基于keil仿真软件平台设计最小应用系统板和具有在板仿真器的口袋开发板以及相关例程。

      本文已收录于嵌入式系统开发系列专栏:嵌入式系统开发 欢迎订阅,持续更新。

本文目录

1. 任务要求:

2.前期准备:

2.1.打开C:\Keil\ARM\Boards\Keil\MCB1000\MCB1114\Blinky文件夹下的Blinky工程文件

 2.2.点击工程文件 options ->debug设置为use simulator 模拟器方式

 2.3.仿真运行,看一下仿真运行结果

3.LED灯闪烁代码如下:

  3.1 初始化:

   3.2 LED灯亮:

   3.3 LED灯灭:

    3.4 延时1s函数:

4.编译LED闪烁步骤

4.1.将不用到的移除

 4.2.复制粘贴代码于Blinky.c。

4.3.运行仿真并查看结果。

4.4.调出观察LED灯亮、灭窗口

5.编译通过的图片

6.调试运行结果的图片

6.1 LED 灭

6.2 LED 亮

         7.总结


1. 任务要求:

       在Keil MDK 4.74上编写一段程序,控制LPC1114微控制器的GPIO引脚PIO1_9上的LED灯亮(低电平亮)。进一步利用Delay_1s(void)函数实现定时1s,使LED灯状态反转,再延时1s,使LED灯状态反转,如此一直循环,实现LED灯闪烁。

       提示:主程序可以在Keil自带例程MCB1114/Blinky上修改,不一定要新建工程项目,但要删掉多余的代码和文件。

2.前期准备:

下载安装:Keil MDK-ARM 4.74 uVision4 开发工具:

https://www.keil.com/update/sw/mdk4/4.74 (链接到外部网站。)

并根据下面的教程注册社区版(可能这几天不能注册账号,已注册账号的可以申请License,不注册也不影响使用):

https://blog.csdn.net/weixin_43869518/article/details/123933764 (链接到外部网站。)

打开C:\Keil\ARM\Boards\Keil\MCB1000\MCB1114\Blinky文件夹下的Blinky工程文件,编译,点击工程文件 options ->debug设置为use simulator 模拟器方式,仿真运行,看一下仿真运行结果。

2.1.打开C:\Keil\ARM\Boards\Keil\MCB1000\MCB1114\Blinky文件夹下的Blinky工程文件

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第1张图片

 2.2.点击工程文件 options ->debug设置为use simulator 模拟器方式

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第2张图片

 【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第3张图片

 2.3.仿真运行,看一下仿真运行结果

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第4张图片

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第5张图片

运行结果为下:

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第6张图片

退出运行:

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第7张图片

3.LED灯闪烁代码如下:

  3.1 初始化:

void LED_Init(void) {

LPC_SYSCON->SYSAHBCLKCTRL |= (1UL << 6); /*enable clock for GPIO*/

LPC_GPIO1->DIR |= (1UL << 9); /*configure GPIO1_9 as output*/

}

   3.2 LED灯亮:

void LED_On(void) {

LPC_GPIO1->DATA &= ~ (1UL <<9); /* Turn on LED */

}

   3.3 LED灯灭:

void LED_Off(void) {

LPC_GPIO1->DATA |= (1UL <<9); / Turn off LED */

}

    3.4 延时1s函数:

void Delay_1s(void){ 

int i=SystemCoreClock/5;

while(--i);

}
/*完整代码如下*/
#include "LPC11xx.h"                            /* LPC11xx definitions        */
void LED_Init(void) {

LPC_SYSCON->SYSAHBCLKCTRL |= (1UL << 6); /*enable clock for GPIO*/

LPC_GPIO1->DIR |= (1UL << 9); /*configure GPIO1_9 as output*/

}
void LED_On(void) {

LPC_GPIO1->DATA &= ~ (1UL <<9); /* Turn on LED */

}
void LED_Off(void) {

LPC_GPIO1->DATA |= (1UL <<9); /* Turn off LED */

}
void Delay_1s(void){ 

int i=SystemCoreClock/5;

while(--i);

}

/*----------------------------------------------------------------------------
  MAIN function
 *----------------------------------------------------------------------------*/
int main (void) {   	/* Main Program               */
	
  LED_Init();                                   /* LED引脚初始化   */
	
  LED_On();                                     /* LED 亮   */
	
  while (1) {                                   /* Loop forever    */
    LED_On();                                   /* LED 亮   */
		Delay_1s();                             /* 延时   */
		LED_Off();                              /* LED 灭   */ 
		Delay_1s();                             /* 延时   */
  }
}

4.编译LED闪烁步骤

4.1.将不用到的移除

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第8张图片

 4.2.复制粘贴代码于Blinky.c。

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第9张图片

确定代码0 Error。 

4.3.运行仿真并查看结果。

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第10张图片

4.4.调出观察LED灯亮、灭窗口

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第11张图片

5.编译通过的图片

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第12张图片

6.调试运行结果的图片

6.1 LED

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第13张图片

6.2 LED 亮

【嵌入式系统开发】Keil 实现LED灯闪烁 详细教程及完整代码_第14张图片

7.总结

       该实验简单介绍了keil软件的使用方法,并通过一个简单的实验,运用DELAY函数,使LED灯状态反转,再延时1s,使LED灯状态反转,如此一直循环,实现LED灯闪烁。

      《嵌入式系统开发》系列专栏主要以LPC1100系列微控制器为硬件平台,详细介绍Cortex—-M0微控制器的原理与开发技术,基于keil仿真软件平台设计最小应用系统板和具有在板仿真器的口袋开发板以及相关例程。

      本文已收录于嵌入式系统开发系列专栏:嵌入式系统开发 欢迎订阅,持续更新。

你可能感兴趣的:(嵌入式系统开发,单片机,嵌入式硬件,idea)