当前位置:文档之家› 实验指导书1 GPIO输入输出控制实验

实验指导书1 GPIO输入输出控制实验

实验一GPIO输入输出控制实验GPIO输入输出控制实验11.实验目的(1)进一步掌握ADS 1.2集成开发环境的使用方法。

(2)掌握LPC2200专用工程模板的添加和使用。

(3)掌握EasyJTAG仿真器的安装和使用。

(4)能够在MagicARM2200教学实验开发平台上运行第一个程序(无操作系统)。

(5)熟悉LPC2000系列ARM7微控制器的GPIO控制。

(6)了解应用程序的固化方法。

2.实验设备●硬件:PC机一台MagicARM2200教学实验开发平台一套●软件:Windows98/XP/2000系统,ADS 1.2集成开发环境3.实验内容控制MagicARM2200教学实验开发平台上的蜂鸣器报警。

先使用片外RAM(MT45W4MW16芯片)进行调试,调试通过后将程序固化到片外FLASH(SST39VF160芯片),然后脱机运行。

4.实验预习要求(1)认真复习LPC2000系列ARM7微控制器的GPIO控制机制以及LPC2000管脚连接模块等内容。

(2)了解MagicARM2200教学实验开发平台的硬件结构,注意蜂鸣器的相关控制电路。

(3)了解MagicARM2200教学实验开发平台上的跳线。

(4)仔细阅读附带文档《ADS集成开发环境及仿真器应用》或其它相关资料,了解ADS 1.2集成开发环境、LPC2200专用工程模板、EasyJTAG仿真器的应用。

5.实验原理如图1.1所示,MagicARM2200实验箱主板上蜂鸣器使用PNP三极管Q12进行驱动控制,当控制P0.7输出低电平时,Q12导通,蜂鸣器蜂鸣;当控制P0.7输出高电平时,Q12截止,蜂鸣器停止蜂鸣;若把JP22断开,Q12截止,蜂鸣器停止蜂鸣。

由于P0.7口与(LPC2200的)SPI功能部件的SSEL0复用,所以此引脚上接一上拉电阻R86,防止在使用硬件SPI总线时由于SSEL0引脚悬空导致SPI操作出错。

J 1_P o r t图错误!文档中没有指定样式的文字。

.1 蜂鸣器控制电路6.实验步骤(1)连接EasyJTAG 仿真器和MagicARM2200教学实验开发平台,然后安装EasyJTAG 仿真器的驱动程序(若已经安装过,此步省略)。

(2)为ADS1.2增加LPC2200专用工程模板(若已增加过,此步省略)。

(3)启动ADS 1.2,使用ARM Executable Image for MaigcARM2200工程模板建立一个工程BeepCon_C 。

(4)在user 组中的main.c 中编写主程序代码。

(5)选用DebugInExram 生成目标,如图1.2所示,然后编译连接工程。

图1.2 选择生成目标(6)将MagicARM2200教学实验开发平台上的跳线器JP22短接,JP20断开,见图 。

图 1.3 蜂鸣器连接电路(7)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试(需要正确设置仿真器,参考产品光盘附带文档《ADS集成开发环境及仿真器应用》)。

注意:使用DebugInExram生成目标时,使用片外RAM进行仿真调试,建议AXD设置Halt Mode选择Halt program,Aux Option选择Erase Flash when need。

在AXD中设置仿真器参考如图所示。

图1.4 片外RAM调试的仿真器设置(8)若JTAG连接出错,或AXD主窗口没有显示Startup.S源程序,按文档《ADS集成开发环境及仿真器应用》介绍的方法进行处理。

(9)全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。

(10)单击Context Variable图标按钮(或者选择【Processor Views】->【Variables】)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。

选择【System Views】->【Debugger Internals】即可打开LPC2000系列ARM7微控制器的片内外设寄存器窗口。

(11)可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。

(12)当仿真调试通过后关闭AXD,在ADS 1.2集成开发环境中选用RelOutChip生成目标,然后编译连接工程。

(13)将MagicARM2200教学实验开发平台上的JP22跳线短接,JP20跳线断开。

(14)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。

此时EasyJTAG 仿真器将会把程序下载到片外FLASH上(需要正确设置仿真器,见图。

具体参考文档《ADS 集成开发环境及仿真器应用》)。

图1.5 片外FLASH调试的仿真器设置(15)按MagicARM2200教学实验开发平台上的RST复位键,观察程序是否能脱机运行。

(16)实验结束后,在AXD中设置仿真器为片外RAM调试方式的设置,以便于后面实验的正确操作。

7.实验参考程序GPIO输出控制实验1的参考程序见程序清单1.1。

程序清单1.1 GPIO输出控制实验1参考程序/***************************************************************************** 文件名:main.c* 功能:蜂鸣器控制。

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

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

* 说明:将跳线器JP22短接,JP20断开。

****************************************************************************/#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){; // 设置管脚连接模块连接至GPIO; // 设置BEEPCON IO口为输出方式while(1){; // BEEPCON = 0 蜂鸣器发声DelayNS(15); // 延时; // BEEPCON = 1蜂鸣器不发声DelayNS(15); // 延时}return(0);}8.思考(1)(基础实验)在实验参考程序中,如何控制蜂鸣器报警的速度?(2)(基础实验)如果把程序中的“#define BEEPCON 0x00000080”改成“#define BEEPCON 0x000000C0”,请问以下语句IO0DIR = BEEPCON;IO0CLR = BEEPCON;能否使蜂鸣器发声?为什么?GPIO 输入输出控制实验21.实验目的熟悉LPC2000系列ARM7微控制器的GPIO 控制。

2.实验设备● 硬件:PC 机 一台 MagicARM2200教学实验开发平台 一套● 软件:Windows98/XP/2000系统,ADS 1.2集成开发环境 3.实验内容使用GPIO 口控制8个LED 跑马灯显示。

4.实验预习要求(1)认真复习GPIO 控制机制以及LPC2000管脚连接模块内容。

(2)了解MagicARM2200教学实验开发平台的硬件结构,注意键盘及LED 显示电路。

(3)仔细阅读文档《ADS 集成开发环境及仿真器应用》或其它相关资料,了解ADS 1.2集成开发环境、LPC2200专用工程模板、EasyJTAG 仿真器的应用。

5.实验原理如图1.6所示,MagicARM2200实验箱主板上还有8个独立的发光二极管LED1~LED8,分别由P2.16~P2.23输出控制,控制I/O 输出高电平时对应的LED 熄灭,输出低电平时对应的LED 点亮,电路如图错误!文档中没有指定样式的文字。

.所示。

一般LED 的压降约为1.7V ,LED 点亮时的电流)(0034.04707.13.3A R V V I LED DD LED ≈-=-=,即3.4mA ,而LPC2290的I OL (I/O 低电平输出电流)最小值为4mA ,可以使用I/O 直接驱动。

这部分电路可以通过JP23跳线断开与LPC2200的连接。

图错误!文档中没有指定样式的文字。

.6 独立LED 控制电路6.实验步骤(1)启动ADS 1.2,使用ARM Executable Image for MaigcARM2200工程模板建立一个工程LEDCon_C 。

(2)在user 组中的main.c 中编写主程序代码。

(3)选用DebugInExram 生成目标,然后编译连接工程。

(4)将MagicARM2200教学实验开发平台上跳线器JP23全部短接,JP15跳线全部断开,见图1.(5)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。

(6)单步运行程序,通过LED1~LED8的显示判断输出是否正确。

全速运行程序,观察LED1~LED8的显示。

图 1.7 LED连接电路7.实验参考程序GPIO输出控制实验2的参考程序见程序清单1.。

程序清单1.2 GPIO输出控制实验2参考程序/***************************************************************************** 文件名:main.c* 功能:LED显示控制。

* 通过GPIO直接控制8个LED产生跑马灯效果* 说明:将跳线JP23全部短接,JP15跳线全部断开。

* 这个警告可忽略,C2892E: signed constant overflow****************************************************************************/#include "config.h"#define LED1 1<<16 // P2.16#define LED2 1<<17 // P2.17#define LED3 1<<18 // P2.18#define LED4 1<<19 // P2.19#define LED5 1<<20 // P2.20#define LED6 1<<21 // P2.21#define LED7 1<<22 // P2.22#define LED8 1<<23 // P2.23#define LEDCON 0x00ff0000const 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显示。

相关主题