实验一 Keil4基本用法及流水灯实验指导书

更新时间:2024-03-24 18:45:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 Keil4基本用法及流水灯

【实验目的】

1、 学习Keil4的基本方法;

2、 掌握在开发过程中程序工程模板的建立和使用; 3、 掌握LPC1768的GPIO口的用法。

【实验要求】

1、 了解LPC系列处理器GPIO口的功能原理; 2、 了解程序设计中多模块编程的方法;

【实验原理】

一、LPC系列处理器GPIO口的原理

二、实验板上的LED

1.原理图

实验板上LED的硬件连接参见下图。

参见教材中有关GPIO口的章节,重点要掌握GPIO口的初始化、数据的输入和输出;

本实验通过LPC1768的IO口控制8个LED的亮灭。

2.说明

1

实验板上的8个LED利用GPIO口直接控制。图中的8个LED引脚(LD11~LD4)分别对应P2.0~P2. 7。8根信号线经过74LV244W驱动以后连接到发光二极管LED上,引脚输出高电平则LED点亮,输出低电平则LED熄灭。 三、程序工程模板说明

1. 工程目录说明

在程序开发中,尤其是涉及到的代码较多时,应该将不同的代码分别存放,这样做的好处是系统代码结构清楚,查找、管理和代码移植都容易。实验板提供的程序工程模板中,主要有以下几个目录:

1) Common:这个目录存放了几乎各个实验都要使用的公用代码、IAR配置宏和链接器命令文件。

2) App:这个目录存放了自己的应用程序。

2.工程模板的建立

1) 建立一个名叫led的目录,将以上四个目录拷贝到该目录中; 2) 在该目录中创建一个名叫led的工程;

3) 在工程选项中右键,选择“Add Group…”,添加三个组:Common、Target和User。 4) 在Common组中选择“Add Files…”将Common\\src目录中的四个文件添加进工程; 5) 在Target组中添加目标板驱动程序,本例中只需要添加fio.c; 6) 在User组中自己新建一个源程序,本例中取名为led_test.c; 7) 按照IAR EWARM设置章节中的内容对工程进行设置。

以上的程序开发流程应当牢记,以后我们的每个实验都采用这个流程进行。

四、驱动程序说明

1. fio.c说明

在本例中使用到的目标板驱动程序为fio.c,它提供了4个函数:

1) GPIOInit( ):对GPIO口的初始化,三个参数分别为端口组号、端口类型和端口方向; 2) LedsInit( ):对4个Led的初始化操作;

3) LedOn( ):点亮一个Led。参数为led灯的编号。如果给出的参数大于4,则按取余以后算出的值点亮;

4) LedOff( ):熄灭一个Led。 2.fio.h说明

fio.h是fio.c的配套头文件,内容主要有:SCS寄存器中GPIOM设置的参数、各GPIO寄存器的地址、几个参数宏、fio.c中的几个函数的extern外部函数声明。 【实验内容与步骤】

一、了解Keil4软件基本用法:

(1)在Keil4中新建一个工程文件的步骤:详见参考文档“Keil_uvision_4基本使用教程”; (2)在Keil4中打开一个现成的工程文件,对其进行环境设置、编译、链接及生成可执行文

2

件,并下载到1768实验板进行调试、运行,详见参考文档“Keil4基本用法.doc”。 二、编程

1、编译、链接和调试;

阅读给出的参考程序,编译、链接,生成可执行文件,并下载到1768实验板,运行,查看LED灯闪烁情况; 2、修改程序:

修改参考程序控制LED闪烁形式和频率的程序部分,实现LED的各种不同移动、闪烁效果。 【实验习题】

修改源程序,实现LED的反向移动、闪烁效果。

#include \#include \

/*---------------------------------------------------------------------------- MAIN function

*----------------------------------------------------------------------------*/ int main (void) {

uint32_t i,j; uint8_t location;

LED_init();

while(1) {

for(location=0;location<8;location++) {

LED_On (7-location); /* Turn on the LED. */ for(i=0;i<65530;i++)

for(j=0;j<100;j++);

LED_Off (7-location); /* Turn off the LED. */ for(i=0;i<65530;i++)

for(j=0;j<100;j++);

} } 【实验总结】

经过这次实验,复习了Keil4的基本方法,掌握了LPC1768的GPIO口的用法。

3

本文来源:https://www.bwwdw.com/article/ve68.html

Top