实验四C LED跑马灯实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四C LED跑马灯实验

一、实验目的

●了解S3C2410的I/O及其相关设置;

●继续熟悉ARM开发环境。

二、实验设备

●硬件:

TX2440A实验板;

测控与显示扩展板;

PC机;

J-Link V8仿真器;

●软件:

PC机操作系统(WINDOWS XP);

ARM Developer Suite v1.2;

J-link ARM V4.081;

三、实验内容

●了解DM2410实验板I/O接口原理。

●利用ADS编译环境,用C语言编写跑马灯主程序。

四、实验说明

S3C2410有多达117位的I/O口可以提供方便的扩展。分为8组端口如下:— Port A (GPA): 23-output port

— Port B (GPB): 11-input/output port

— Port C (GPC): 16-input/output port

— Port D (GPD): 16-input/output port

— Port E (GPE): 16-input/output port

— Port F (GPF): 8-input/output port

— Port G (GPG): 16-input/output port

— Port H (GPH): 11-input/output port

所有的端口都是复用的,因为是复用的端口所以在应用I/O口之前应该对端口进行设置,使之成为需要的模式,这个模式是由八个I/O控制寄存器GPxCON设置,其中的x就是A-H,每个端口还有数据寄存器GPxDAT,和上拉寄存器GPxUP。

五、实验步骤

1、仔细阅读实验说明部分,熟悉S3C2410的I/O口及其控制;

2、建立工作目录如:D:\armlab

3、启动ADS1.2,使用ARM Executable Image工程模板建立一个工程led

4、将本“实验4流水灯目录”下的“LED”目录下的两个文件夹“system、uart”拷贝到新建立的工程目录“D:\armlab\led”下

5、建立文件组“inc”

鼠标右键点击屏幕,弹出

6、添加system\inc目录下的文件至当前工程中,并拖入到文件组“inc”下,不要添加

“mmu.h”文件。

7、添加system\src目录下的文件至当前工程中,并拖入到文件组“src”下, 不要添加“mmu.c”文件。

8、添加uart目录下的文件至当前工程中,uart.h拖入到文件组“inc”下,uart.c拖入到文件组“src”下。

9、建立源文件“Main.c”

10、按文件“实验四B ADS+AXD+JLINK仿真调试TX2440A(保留出厂程序方式)”要求设置项目及AXD,并编译改错。

11、连接PC机、J-link仿真器和实验板。

12、调试运行程序观察程序运行。自行修改程序观察各变量、寄存器等的作用。

13、程序运行后在扩展板上的LED灯将轮流显示(跑马等),打开终端仿真器secureCRT 可以接受实验板输出信息。

六、参考例程

实验中当端口输出为0时,相应的LED亮,输出1时,相应的LED灭。源程序如下://==================================================================== // 工程名称:LED.mcp

// 功能描述:用GPIO控制四个LED

// IDE环境:ADS v1.2

// 组成文件:main.c

// 硬件连接:LED1 -- GPF0

// LED2 -- GPF1

// LED3 -- GPF2

// LED4 -- GPF3

// 维护记录:2009-9-22 V1.0

//=================================================================

//=============================================================

// 文件名称:main.c

// 功能描述:定义了主函数

// 维护记录:2009-9-22 V1.0

//=============================================================

//====================================================

// 包含头文件区

//====================================================

#include "2440addr.h"

#include "2440lib.h"

#include "option.h"

#include "def.h"

#include "uart.h"

#define LED1ON 0xFE //LED1点亮值为0xFE(低电平点亮)

#define LED2ON (LED1ON<<1) //LED2点亮值为LED1左移1位

#define LED3ON (LED1ON<<2) //LED3点亮值为LED2左移1位

#define LED4ON (LED1ON<<3) //LED4点亮值为LED3左移1位

extern unsigned int PCLK;

void Main(void)

{

SetSysFclk(FCLK_400M); //设置系统时钟400M

ChangeClockDivider(2, 1); //设置分频1:4:8

CalcBusClk(); //计算总线频

Uart_Select(0);

Uart_Init(0, 115200);

Uart_Printf("LED TEST!\n");

rGPFCON = (rGPFCON | 0xFFFF) & 0xFFFFFF55; //GPF0--GPF3设置为output rGPFUP = rGPFUP & 0xFFF0; //使能GPF上拉电阻

rGPFDAT = 0x0F; //GPF低4位初始化为1

while(1)

{ U art_Printf("LED1 ON!\n");

rGPFDAT = LED1ON; //点亮LED1

Delay(1000);

相关文档
最新文档