基于LPC1768嵌入式系统设计实验报告

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

嵌入式实验报告

学院:

专业:

班级:

姓名:

学号:

指导老师:

实验一系统节拍定时器实验

【实验目的】

(1)掌握LPC1768芯片的使用

(2)在开发平台上开发第一个程序

(3)熟悉lpc1768的GPIO控制

【实验内容】

控制开发平台的蜂鸣器周期性(1秒)交替鸣叫。

【实验原理】

【原理图】

【实验步骤】

1使用Realview MDK创建一个新的工程,经过一系列配置后

2新建一个文件,点击File 菜单下的New。输入代码,点击保存

3 对工程进行配置完成以后,编译、链接、下载到开发板上

程序代码

#include "LPC17xx.h"

/**************************************************************** *****************************************

宏定义

***************************************************************** ****************************************/

#define BEEP (1ul <<26)

uint32_t GulSystick = 0;

uint32_t GucDelay1S = 0;

/****************************************************************

*****************************************

** Function name: myDelay

** Descriptions: 软件延时

** input parameters: 无

** output parameters: 无

** Returned value: 无

*****************************************************************

****************************************/

//void myDelay (uint32_t ulTime)

//{

// uint32_t i;

//while (ulTime--) {

// for (i = 0; i < 5000; i++);

//}

//}

/****************************************************************

*****************************************

** Function name: GPIOInit

** Descriptions: GPIO初始化

** input parameters: 无

** output parameters: 无

** Returned value: 无

*****************************************************************

****************************************/

void GPIOInit( void )

{

LPC_PINCON->PINSEL1 &= ~(0x3 << 20); /* 将P0.26初始化为GPIO功能 */

LPC_GPIO0->FIODIR |= BEEP; /* 将P0.26方向设置为输出 */

LPC_GPIO0->FIOSET |= BEEP; /* 将P0.26初始化输出高电平 */

}

/****************************************************************

*****************************************

** Function name: SysTick_Handler

** Descriptions: 系统节拍定时器中断服务函数

** input parameters: 无

** output parameters: 无

** Returned value: 无

*****************************************************************

****************************************/

void SysTick_Handler(void)

{

if (GulSystick++ >= 99)

{ /* 配置一秒的延时

*/

GulSystick = 0;

GucDelay1S = 1;

}

}

/****************************************************************

*****************************************

** Function name: main

** Descriptions: 系统节拍定时器例程。短接P0.26与BEEP,启

动程序,蜂鸣器隔1秒交替鸣叫

** input parameters: 无

** output parameters: 无

** Returned value: 无

*****************************************************************

****************************************/

int main (void)

{

SystemInit(); /* 系统初始化,切勿删除 */

GPIOInit();

SysTick_Config(100000000/100);

while (1)

{

while(GucDelay1S == 0);

GucDelay1S = 0;

LPC_GPIO0->FIOSET |= BEEP;

while(GucDelay1S == 0);

GucDelay1S = 0;

LPC_GPIO0->FIOCLR |= BEEP;

}

}

引脚功能选择寄存器1(PINSEL1 - 0x4002 C004)

PINSEL1寄存器控制端口0高半部分的位功能。仅当引脚选择使用GPIO功能时,

FIO0DIR寄存器中的方向控制位才有效。对于其它功能来说,方向是自动控制的。

对于100引脚封装,引脚功能选择寄存器1的位功能描述如表所述。

相关文档
最新文档