版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三 GPIO输出控制实验一、 实验目的熟悉LPC2000系列ARM7微控制器的GPIO输入控制。二、实验设备l 硬件:PC机 一台LPC2131教学实验开发平台 一套l 软件:Windows 98/XP/2000系统,ADS1.2集成开发环境。三、实验内容1. P0.7管脚控制EasyARM教学实验开发平台上的蜂鸣器报警。2. GPIO 输出实验流水灯实验实验预习要求:LPC2000 GPIO管脚的设置和控制。四、实验原理1.GPIO 输出实验,蜂鸣器控制在 EasyARM2131 开发板上,接有一个蜂鸣器,由P0.7 控制,通过跳线JP11 选择连接。蜂鸣器控制电路如所示。图 3-1 蜂
2、鸣器控制电路如果跳线JP11 选择蜂鸣器,当P0.7 输出低电平时,蜂鸣器鸣叫,当P0.7 输出高电平则停止鸣叫。程序设置PINSEL0 使P0.7 连接GPIO,并通过IO0DIR将其设置为输出状态,然后通过IO0CLR和IO0SET清零和置位P0.7 口,控制蜂鸣器,流程图见图 3-2。图 3-2 蜂鸣器控制实验流程图2 GPIO 输出实验流水灯实验单路LED 控制EasyARM2131 开发板上有8 个独立的LED,分别由8 个GPIO口控制,现在使用其中一路进行实验,使用的电路如图 3-3所示。图 3-3 单路LED 电路图当跳线 JP12 连接LED1 时,P1.18 采用灌电流方式
3、驱动LED1,当P1.18 输出低电平时,LED1 点亮,当P1.18 输出高电平时,LED1 熄灭。实验程序首先设置管脚连接GPIO,接着设置P1.18 口为输出模式,然后通过IO1CLR和IO1SET控制P1.18,驱动LED1 的亮灭。GPIO 输出实验流水灯实验EasyARM2131 开发板上的8 路LED(LED8LED1)分别可选择P125:18进行控制,电路如图 3-4 所示。图 3-4 8 路LED 控制电路当跳线JP12 全部选择LED8LED1 后,P1.25P1.18 分别控制这8 路LED,就可以进行流水灯实验。流水灯显示花样可以通过数组人为定义,亦可通过一定的算法计算
4、,程序清单所示为采用人为定义数组控制显示花样的实验程序,流程图如图 3-5 所示。图 3-5 流水灯花样显示流程图五、实验步骤实验内容1步骤 启动ADS1.2IDE集成开发环境,选择ARM Executable Image for lpc2131工程模板建立一个工程BeepCon_C。 在user组里编写主程序代码main.c。将EasyARM教学实验开发平台上的P0.7管脚与Beep跳线短接gde台ngtheng 444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
5、444444444444。 选择Project->Debug,启动AXD进行JLINK仿真调试。在工程窗口中选择DebugInRAM生成目标,然后编译连接工程(单击Make按钮)。如图所示。选择 DebugInRAM 生成目标时,编译连接生成的目标代码就是用于在片内RAM 调试。打开ADS开发环境下的【Edit】->【DebugInFLASH Settings.】,在”ARM fromELF”下Output format做如图选择,输出文件选择你的文件同一目录下,扩展名.HEX 全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。 单击Con
6、text Variable图标按钮(或者选择Processor Views->Variables)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。选择System Views->Debugger Internals 即可打开LPC2000系列ARM7微控制器的片内外寄存器窗口。 可以单步运行程序,可以设置/取消断点;或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。在FLASH 中调试在工程窗口中选择 DebugInFLASH 生成目标,然后编译连接工程(单击Make 按钮)。选择 DebugInFLASH 生成目标时,编译连接生成的目标代码就是用于在片
7、内FLASH 调试。编译连接通过后,按键盘的F5 键,启动AXD进行调试。注意,由于程序要烧写到片内FLASH,默认选项在每次装载FLASH 地址的调试文件时,将会擦除FLASH 并下载代码到FLASH 中。脱机运行使用 DebugInFLASH 生成目标,并进行调试后(使用JLINK 仿真器),程序即烧写到片内FLASH 中。将JLINK 电源断开,重新上电,程序将脱机运行;实验内容2实验步骤 启动ADS1.2IDE集成开发环境,选择ARM Executable Image for lpc2131工程模板建立一个工程LedDisp_C。 在user组里编写主程序代码main.c。 选用Deb
8、ugInRam生成目标,然后编译链接工程。 将EasyARM教学实验开发平台上的P1.18:25管脚对应与LED1:8跳线短接gde台ngtheng 666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666。 选择Project->Debug,启动AXD进行JLINK仿真调试。 全速运行程序,程序将会在main.c的主函数中停止。 单击Context Variable图标按钮(或者选择Processor Views->Variables
9、)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。选择System Views->Debugger Internals 即可打开LPC2000系列ARM7微控制器的片内外寄存器窗口。 可以单步运行程序,可以设置/取消断点;或者全速运行程序,停止程序运行,观察变量的值,判断LED1LED8控制是否正确。(3)实验参考程序GPIO输出控制实验的参考程序见3-1。程序清单1 Error! No text of specified style in document.GPIO输出控制实验1的参考程序/* 文件名:main.c* 功 能:蜂鸣器控制。对蜂鸣器进行控制,采用软件延时方法。*
10、使用I/O口直接控制,采用灌电流方式。* 说 明:将P0.7与Beep短接。*/#include "config.h"#define BEEPCON 1<<7/ P0.7引脚控制Beep,低电平蜂鸣/* 名 称:DelayNS()* 功 能:长软件延时。* 入口参数:dly延时参数,值越大,延时越久* 出口参数:无*/void DelayNS(uint32 dly) uint32 i; for(; dly>0; dly-) for(i=0; i<5000; i+); /* 名 称:main()* 功 能:控制蜂鸣器蜂鸣。*/int main(void
11、) PINSEL0 = 0x00000000; / 设置管脚连接GPIO IO0DIR = BEEPCON; / 设置I/O为输出 while(1) IO0SET = BEEPCON;/ BEEPCON = 1 DelayNS(200); IO0CLR = BEEPCON;/ BEEPCON = 0 DelayNS(200); return(0);程序清单 2#include "config.h"/* LED8LED1 8 个LED 分别由P1.25P1.18 控制 */const uint32 LEDS8 = (0xFF << 18); / P125:18控制
12、LED8LED1,低电平点亮/* 函数名称:DelayNS()* 函数功能:长软件延时* 入口参数:dly 延时参数,值越大,延时越久* 出口参数:无*/void DelayNS (uint32 dly) uint32 i;for ( ; dly>0; dly-)for (i=0; i<50000; i+);/* 函数名称:main()* 函数功能:流水灯显示实验。* 调试说明:连接跳线 JP12 至LED8LED1。*/* 流水灯花样,低电平点亮,注意调用时候用了取反操作 */const uint32 LED_TBL = 0x00, 0xFF, / 全部熄灭后,再全部点亮0x01
13、, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, / 依次逐个点亮0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, / 依次逐个叠加0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, / 依次逐个递减0x81, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x81, / 两个靠拢后分开0x81, 0xC3, 0xE7, 0xFF, 0xFF, 0xE7, 0xC3, 0x81 / 从两边叠加后递减;int main (void) uint8
14、 i;PINSEL1 = 0x00000000; / 设置管脚连接GPIOIO1DIR = LEDS8; / 设置LED 控制口为输出while (1) for (i=0; i<42; i+) /* 流水灯花样显示 */IO1SET = (LED_TBLi) << 18);DelayNS(20);IO1CLR = (LED_TBLi) << 18);DelayNS(20);return 0;参考程序3/* 文 件 名:main.c* 功 能:LED显示控制。* 通过GPIO直接控制8个LED产生流水灯效果* 说 明:P1.18:25管脚对应与LED1:8跳线短接,
15、把P0.16与KEY跳线短接,* 使用KEY1键来操作流水灯的运行方向*/#include "config.h"const uint32 LEDS8 = 0xFF << 18;/P125:18控制LED1LED8,低电平点亮const uint32 KEY = 1 << 16;/P0.16连接KEY1const uint32 DISP_TAB10 = 0x01, 0x02, 0x04, 0x08,0x10,0x20,0x40,0x80, 0xff, 0xff;const uint32 DISP_TAB210 = 0x80 , 0x40, 0x20,
16、0x10, 0x08,0x04, 0x02,0x01, 0xff, 0xff;/ 两个 LED 图案 码表/* 名 称: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; PINSEL0 = 0x00;/ P015:0 用作GPIOPINSEL1 =
17、 0x00;/ P031:16 用作GPIO PINSEL2 = PINSEL2 & (0x08);/ P125:16连接GPIOIO1DIR = LEDS8;/ 设置P125:18为输出口,控制LED7:0 while(1) if(IO0PIN&KEY)!=0) / 测试KEY 按键 for(i=0; i<8; i+)IO1CLR = DISP_TABi<<18;DelayNS(50);IO1SET = 0xffffffff; DelayNS(10); if(IO0PIN&KEY)=0) / 测试KEY 按键 for(i=0; i<8; i+)
18、IO1CLR = DISP_TAB2i<<18;DelayNS(50);IO1SET = 0xffffffff; DelayNS(10); return(0);参考程序 41./* 文件名:LEDCON.C* 功能:LED闪烁控制。对发光二极管LED4进行控制,采用软件延时方法。* 使用I/O口直接控制LED,采用灌电流方式。* 说明:将跳线器JP4_LED4短接。*/#include "config.h"#define LEDCON0x02000000/* P0.25引脚控制LED4,低电平点亮 */* 名称:DelayNS()* 功能:长软件延时* 入口参数:dly延时参数,值越大,延时越久* 出口参数:无*/void DelayNS(uint32 dly) uint32 i; for(; dly>0; dly-) for(i=0; i<50000; i+); /* 名称:main()* 功能:控制LED闪烁*/int main(void) PINSEL0 = 0x00000000;/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年一级建造师执业资格考试(公路工程管理与实务)综合能力测试题及答案(惠州)
- 2026年湖南政工专业职称考试(马克思主义中国化时代化成果)仿真试题及答案
- 2026年湖北省十堰市专业技术职称水平能力测试(公共基础知识)冲刺模拟试题及答案
- 2026年(党建基础知识)湖北省职称水平能力测试综合试题及答案
- 急性肺水肿的护理团队与能力建设
- 新疆喀什地区2025-2026学年八年级上学期期末考试语文试题(解析版)
- 恙虫病中枢神经系统损害护理
- 护理护理职业发展与继续教育
- 手部消毒与无菌着装规范
- 急腹症患者的护理发展
- 小型猪不停跳心内直视手术:麻醉与体外循环管理的深度剖析
- 施工方案编制的规范与标准要求
- 广东季华实验室管理部门招聘参考题库附答案
- AI赋能下北师大版小学数学四年级上册《确定位置》教学设计反思
- 2025年武汉辅警招聘考试真题含答案详解ab卷
- 煤矿后勤服务合同范本
- 实验室设备管理思路及方案
- 2025年高考新课标一卷物理真题卷及答案
- GB/T 30761-2025巴旦木坚果和果仁
- 矿山企业环保知识培训
- 《机械制图》电子教材
评论
0/150
提交评论