您好,欢迎来到六九路网。
搜索
您的当前位置:首页嵌入式系统实验—GPIO口试验

嵌入式系统实验—GPIO口试验

来源:六九路网


GPIO输出控制实验 1

1 、实验目的

(1) 掌握LPC2200专用工程模块的使用

(2) 掌握EASYJTAG仿真器的安装与使用

(3) 在开发平台上运行第一个程序

(4) 熟悉ARM7的GPIO控制

2 、实验设备

硬件: PC机 一台

MAGICARM2200-S教学实验开发平台 一套

软件: Windows98/XP/2000系统,ADS1.2集成开发环境

3 、实验内容

控制开发平台的蜂鸣器报警。

4、原理图:

5、源代码 :

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

* 文 件 名:main.c

* 功 能:蜂鸣器控制。对蜂鸣器B1进行控制,采用软件延时方法。

* 使用I/O口直接控制,采用灌电流方式。

* 说 明:短接蜂鸣器跳线JP7。断开CF卡跳线JP13、GPIO接口J17。

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

#include \"config.h\"

#define BEEPCON 0x00000080 // P0.7引脚控制B1,低电平蜂鸣

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

* 名 称:DelayNS()

* 功 能:长软件延时。

* 入口参数:dly 延时参数,值越大,延时越久

* 出口参数:无

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

void DelayNS(uint32 dly)

{ uint32 i;

for(; dly>0; dly--)

{

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

}

}

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

* 名 称:main()

* 功 能:控制蜂鸣器蜂鸣。

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

int main(void)

{

PINSEL0 = 0x00000000; // 设置管脚连接GPIO

IO0DIR = BEEPCON; // 设置I/O为输入输出模式

// 设置P0.7为输出

while(1)

{

IO0SET = BEEPCON; // BEEPCON = 1

DelayNS(15);

IO0CLR = BEEPCON; // BEEPCON = 0

DelayNS(15);

}

return(0);

}

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

GPIO输出控制实验 2

1 、实验目的

熟悉ARM的GPIO控制

2 、实验设备

硬件: PC机 一台

MAGICARM2200-S教学实验开发平台 一套

软件: Windows98/XP/2000系统,ADS1.2集成开发环境

3 、实验内容

控制LED显示

4 、原理图

5 、源代码 :

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

* 文 件 名:main.c

* 功 能:LED显示控制。

* 通过GPIO直接控制8个LED产生流水灯效果

* 说 明:短接LED跳线JP5。

* 这个警告可忽略,C22E: signed constant overflow

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

#include \"config.h\"

#define LED1 1<<16 // P1.16

#define LED2 1<<17 // P1.17

#define LED3 1<<18 // P1.18

#define LED4 1<<19 // P1.19

#define LED5 1<<20 // P1.20

#define LED6 1<<21 // P1.21

#define LED7 1<<22 // P1.22

#define LED8 1<<23 // P1.23

#define LEDCON 0x00ff0000

const uint32 DISP_TAB[8] = { 0xff01ffff, 0xff02ffff, 0xff04ffff, 0xff08ffff,

0xff10ffff, 0xff20ffff, 0xff40ffff, 0xff80ffff};

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

* 名 称:DelayNS()

* 功 能:长软件延时

* 入口参数:dly 延时参数,值越大,延时越久

* 出口参数:无

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

void DelayNS(uint32 dly)

{ uint32 i;

for(; dly>0; dly--)

{

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

}

}

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

* 名 称:main()

* 功 能:根据表DISP_TAB来控制LED显示。

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

int main(void)

{ uint8 i;

PINSEL1 = 0x00000000; // 端口配置为GPIO

IO1DIR = LEDCON; // 配置LED控制I/O方向为输出

while(1)

{

for(i=0; i<8; i++)

{

IO1CLR = DISP_TAB[i]; // 输出LED显示数据

DelayNS(10); // 延时

IO1SET = 0xffffffff; // 全部输出高电平

}

}

return(0);

}

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务