




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三 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 蜂鸣器控制电路如果跳线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 采用灌电流方式驱动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,就可以进行流水灯实验。流水灯显示花样可以通过数组人为定义,亦可通过一定的算法计算,程序清单所示为采用人为定义数组控制显示花样的实验程序,流程图如图 3-5 所示。图 3-5 流水灯花样显示流程图五、实验步骤实验内容1步骤 启动ADS1.2IDE集成开发环境,选择ARM Executable Image for lpc2131工程模板建立一个工程BeepCon_C。 在user组里编写主程序代码main.c。将EasyARM教学实验开发平台上的P0.7管脚与Beep跳线短接gde台ngtheng 444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444。 选择Project-Debug,启动AXD进行JLINK仿真调试。在工程窗口中选择DebugInRAM生成目标,然后编译连接工程(单击Make按钮)。如图所示。选择 DebugInRAM 生成目标时,编译连接生成的目标代码就是用于在片内RAM 调试。打开ADS开发环境下的【Edit】-【DebugInFLASH Settings.】,在”ARM fromELF”下Output format做如图选择,输出文件选择你的文件同一目录下,扩展名.HEX 全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。 单击Context Variable图标按钮(或者选择Processor Views-Variables)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。选择System Views-Debugger Internals 即可打开LPC2000系列ARM7微控制器的片内外寄存器窗口。 可以单步运行程序,可以设置/取消断点;或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。在FLASH 中调试在工程窗口中选择 DebugInFLASH 生成目标,然后编译连接工程(单击Make 按钮)。选择 DebugInFLASH 生成目标时,编译连接生成的目标代码就是用于在片内FLASH 调试。编译连接通过后,按键盘的F5 键,启动AXD进行调试。注意,由于程序要烧写到片内FLASH,默认选项在每次装载FLASH 地址的调试文件时,将会擦除FLASH 并下载代码到FLASH 中。脱机运行使用 DebugInFLASH 生成目标,并进行调试后(使用JLINK 仿真器),程序即烧写到片内FLASH 中。将JLINK 电源断开,重新上电,程序将脱机运行;实验内容2实验步骤 启动ADS1.2IDE集成开发环境,选择ARM Executable Image for lpc2131工程模板建立一个工程LedDisp_C。 在user组里编写主程序代码main.c。 选用DebugInRam生成目标,然后编译链接工程。 将EasyARM教学实验开发平台上的P1.18:25管脚对应与LED1:8跳线短接gde台ngtheng 666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666。 选择Project-Debug,启动AXD进行JLINK仿真调试。 全速运行程序,程序将会在main.c的主函数中停止。 单击Context Variable图标按钮(或者选择Processor Views-Variables)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。选择System Views-Debugger Internals 即可打开LPC2000系列ARM7微控制器的片内外寄存器窗口。 可以单步运行程序,可以设置/取消断点;或者全速运行程序,停止程序运行,观察变量的值,判断LED1LED8控制是否正确。(3)实验参考程序GPIO输出控制实验的参考程序见3-1。程序清单1 Error! No text of specified style in document.GPIO输出控制实验1的参考程序/* 文件名:main.c* 功 能:蜂鸣器控制。对蜂鸣器进行控制,采用软件延时方法。* 使用I/O口直接控制,采用灌电流方式。* 说 明:将P0.7与Beep短接。*/#include config.h#define BEEPCON 10; dly-) for(i=0; i5000; i+); /* 名 称:main()* 功 能:控制蜂鸣器蜂鸣。*/int main(void) 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 0; dly-)for (i=0; i50000; i+);/* 函数名称:main()* 函数功能:流水灯显示实验。* 调试说明:连接跳线 JP12 至LED8LED1。*/* 流水灯花样,低电平点亮,注意调用时候用了取反操作 */const uint32 LED_TBL = 0x00, 0xFF, / 全部熄灭后,再全部点亮0x01, 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 i;PINSEL1 = 0x00000000; / 设置管脚连接GPIOIO1DIR = LEDS8; / 设置LED 控制口为输出while (1) for (i=0; i42; 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跳线短接,把P0.16与KEY跳线短接,* 使用KEY1键来操作流水灯的运行方向*/#include config.hconst uint32 LEDS8 = 0xFF 18;/P125:18控制LED1LED8,低电平点亮const uint32 KEY = 1 0; dly-) for(i=0; i5000; i+); /* 名 称:main()* 功 能:根据表DISP_TAB来控制LED显示。*/int main(void) uint8 i; PINSEL0 = 0x00;/ P015:0 用作GPIOPINSEL1 = 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; i8; i+)IO1CLR = DISP_TABi18;DelayNS(50);IO1SET = 0xffffffff; DelayNS(10); if(IO0PIN&KEY)=0) / 测试KEY 按键 for(i=0; i8; i+)IO1CLR = DISP_TAB2i0; dly-) for(i=0; i50000; i+); /* 名称:main()* 功能:控制LED闪烁*/int main(void) PINSEL0 = 0x00000000;/ 设置所有管脚连接GPIO PINSEL1 = 0x00000000; IO0DIR = LEDCON;/ 设置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阜阳界首市教师招聘考试真题2024
- 扁鹊考试题及答案
- 考试题及答案数学
- 切线考试题及答案
- 系统解剖学模拟练习题(含参考答案)
- 眼科基础知识模考试题与参考答案
- 高级养老护理员理论测试试题含答案
- 中学数学教学设计与案例分析知到智慧树答案
- 2025版三方公司环保设备更新借款合同
- 2025独家销售合同:智能家居系统区域独家代理协议
- 中学政治九年级《坚持改革开放》说课课件
- 2025届广州市高三年级阶段训练(8月市调研摸底) 数学试卷(含答案)
- 制造业企业质量管理能力评估规范
- 《中国民航发展史》课件-第一章 中国民用航空的萌芽与初步发展
- 2024年(学习强国)思想政治理论知识考试题库与答案
- 地球物理勘探合同范本
- 《飞机结构与系统》课件-机翼结构
- 渠道维护工考试题库考点
- DL-光伏发电站电能质量检测技术规程
- 游戏传媒策划方案
- 变压器油色谱分析(详细超值版)
评论
0/150
提交评论