版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南昌大学实验报告实验三GPIO输出控制实验实验目的掌握DeviceARM2410专用工程模板的使用;掌握WigglerJTAG仿真器的安装和使用;能够在MagicARM2410实验箱上运行第一个程序(无操作系统);熟悉S3C2410A处理器的I/O配置方法及GPIO输出控制。实验要求控制MagicARM2410实验箱上的LED1〜LED4显示及蜂鸣器报警。先使用片外SDRAM进行调试,调试通过后将程序固化到片外NORFLASH中,脱机运行程序。实验仪器硬件:PC机1台 MagicARM2410教学实验开发平台1台软件:Windows98/2000/XP操作系统 ADS1.2集成开发环境实验原理1、S3C2410A具有117个通用I/O口,分为A〜H等8个端口,由于每个I/O都有第2功能,甚至第3功能,所以需要通过设置GPxCON寄存器来选择GPx口I/O的功能,其中x可以为A、B、C、D、E、F、G、H,表示相应的I/O端口;TheS3C241DAhas117multi-functionalinput/outputportpins.Theportsare:一PortA(GPA):23-outputport—PortB(GPB):ri-inpuV'outputport一PortC(GPC):16-input;outputport一PortD(GPD):l6-input;outputport一PortE(GPE):1G-inpuVoutputport一PortF(GPF):S-inpufoutputport一PortG(GPG):16-inpuV'outputport一PortH(GPU):U-inpuVoutputportEachportcanbeeasilyconfiguredbysoftwareton^eetvarioussystemconfigurationsanddesignrequirements.Youhavetodefinewhichfunctionofeachpinisusedbeforestartingthemainprogram.Ifapinisnotusedformultiplexedfunctions,thepincanbeconfiguredasI/Oports.Initialpinstatesareconfiguredseamlesslytoavoidproblems.2、当I/O设置为GPIO输出模式(Output模式)时,可以通过写GPxDAT控制相应I/O口输出高电平或低电平。GPxDAT为1的位对应I/O输出高电平,为0的位对应I/O输出低电平;
RegisterAddressR/WDescriptionResetValue(3PECON0x56000040R/WConfigurethepinsofportE0x0GPEDAT0x56000044R/WThedataregisterforportEUndefinedGPEUP0x56000048R/Wpull-updisableregisterforportE0x0GPECONBitDescriptionGPE15[3130]00=Input10=IICSDA01=Output(opendminoutput)11=ReservedGPE14[29:28]00=Input10=IICSCL01=Output(opendrainoutput)11=ReservedGPE13[27:26]00=Input10=SPICLK001=Output11=ReservedGPE12[25:24]00=Input10=SPIMOSIO01=Output11=ReservedGPE11[23:22]00=Input10=SPIMISOO01=Output11=Reserved3、实验电路图。1411K18B1Q138550R142470VDD33J,BEEPVDD33三BUZZER——Q_||.Q9礼;8050 R10^KR1831411K18B1Q138550R142470VDD33J,BEEPVDD33三BUZZER——Q_||.Q9礼;8050 R10^KR183LED1LED2LED3Q10、8050 R1031KR143470R1041K8050LED4GPE11GPH10GPE12S3C2410AGPH4GPH6— |hQ11X8050 R1024K实验步骤:调试程序为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。连接WigglerJTAG仿真器和MagicARM2410实验箱,然后安装WigglerJTAG仿真器(若已经安装过,此步省略)。启动ADS1.2,使用ARMExecutableImageforDeviceARM2410工程模板建立一个工程LEDCON。
在工程src组中的main.c中编写实验代码。HJjT17171371选用DebugRel生成目标,然后编译链接工程。HJjT171713713因LEDCON.>cp□回区140Debug5.el二]涵®邊家宀BFilmiELinkOrdtjrT:=ltgetsFileCodeData0槿+Plhead审+Ujstartup帘+C~itarget审+Oconsole零+厂~|J■匚ddri化嗒-QsrcmairL.c11£订半 0 06)将MagicARM2410实验箱上的蜂鸣器跳线JP9短接,将启动方式选择跳线JP8短接,然后按RST键复位系统。选择【Project】->【Debug】,启动AXD进行JTAG仿真调试(需要正确设置仿真器,参考<〈…实验指导>>第2章的内容)。全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。单步运行程序,或者全速运行程序,判断蜂鸣器及LED1〜LED4的控制是否正确。固化程序仿真调试通过后,关闭AXD。在ADS1.2集成开发环境中选用Release生成目标,并设置生成LEDCON.hex文件(或者LEDCON.bin文件),然后编译链接工程。将启动方式选择跳线JP8断开,然后按RST键复位系统。使用FlashProgrammer软件将LEDCON.hex烧写到片外NORFLASH,或者使用WR_NORFlash工程将LEDCON.bin烧写到片外NORFLASH。将WigglerJTAG仿真器拔出,断开与MagicARM2410实验箱的连接,然后给MagicARM2410实验箱下电,然后再重新上电,观察程序是否能脱机运行。实验程序/***********************************************************************************************************Description:MagicARM2410实验箱的基础实验---GPIO输出控制实验。** 使用GPIO控制LED1〜LED4及蜂鸣器,先蜂鸣器响一声,全部闪烁5** 次,然后指示0〜F的16进制数值。#include"config.h"//定义LED控制口(输出高电平时点亮LED)#defineLED1_CON(1<<11)/*GPE11口*/#defineLED2_CON(1<<12)/*GPE12口*/#defineLED3_CON(1<<4)/*GPH4口*/#defineLED4_CON(1<<6)/*GPH6口*///定义蜂鸣器控制口#defineBEEP(1<<10)/*GPH10口*/#defineBEEP_MASK(~BEEP)/***********************************************************************************************************Functionname:DelayNS**Descriptions:长软件延时。** 延时时间与系统时钟有关。**Input:dly延时参数,值越大,延时越久**Output:无********************************************************************************************************voidDelayNS(uint32dly){uint32i;for(;dly>0;dly--)for(i=0;i<50000;i++);}***********************************************************************************************************Functionname:RunBeep**Descriptions:控制蜂鸣器Be一声音。**Input:无**Output:无********************************************************************************************************,voidRunBeep(void){rGPHDAT=rGPHDAT&BEEP_MASK; //BEEP=0DelayNS(5);rGPHDAT=rGPHDAT|BEEP; //BEEP=1DelayNS(5);}***********************************************************************************************************Functionname:LED_DispAllOn**Descriptions:控制LED1〜LED4全部点亮。**Input:无**Output:无********************************************************************************************************,voidLED_DispAllOn(void){rGPEDAT=rGPEDAT|(0x03<<11);rGPHDAT=rGPHDAT|(0x05<<4);},***********************************************************************************************************Functionname:LED_DispAllOff**Descriptions:控制LED1〜LED4全部熄灭。**Input:无**Output:无********************************************************************************************************voidLED_DispAllOff(void){rGPEDAT=rGPEDAT&(~(0x03<<11));rGPHDAT=rGPHDAT&(~(0x05<<4));},***********************************************************************************************************Functionname:LED_DispNum**Descriptions:控制LED1〜LED4显示指定16进制数值。LED4为最高位,LED1为最**低为,点亮表示该位为1。**Input:dat 显示数值(低4位有效)**Output:无********************************************************************************************************,voidLED_DispNum(uint32dat){dat=dat&0x0000000F; //参数过滤//控制LED4、LED3显示(d3、d2位)if(dat&0x08)rGPHDAT=rGPHDAT|(0x01<<6);elserGPHDAT=rGPHDAT&(~(0x01<<6));if(dat&0x04)rGPHDAT=rGPHDAT|(0x01<<4);elserGPHDAT=rGPHDAT&(~(0x01<<4));b//控制LED2、LED1显示(d1、d0位)rGPEDAT=(rGPEDAT&(~(0x03<<11)))|((dat&0x03)<<11);}/***********************************************************************************************************Functionname:main**Descriptions:初始化I/O,然后控制LED显示。**Input:无**Output:系统返回值0********************************************************************************************************,intmain(void){inti;//初始化I/OrGPECON=(rGPECON&(~(0x0F<<22)))|(0x05<<22); //rGPECON[25:22]=0101b,设置GPE11、GPE12为GPIO输出模式rGPHCON=(rGPHCON&(~(0x33<<8)))|(0x11<<8); //rGPHCON[13:8]=01xx01b,设置GPH4、GPH6为GPIO输出模式rGPHCON=(rGPHCON&(~(0x03<<20)))|(0x01<<20); //rGPHCON[21:20]=01,b设置GPH10为GPIO输出模式//LED显示控制while(1){RunBeep();//蜂鸣器响一声//LED全闪烁5次for(i=0;i<5;i++){LED_DispAllOff();//LED全熄灭DelayNS(5);LED_DispAllOn();//LED全点亮DelayNS(5);}//控制LED指示0〜F的16进制数值for(i=0;i<16;i++){LED_DispNum(i);//显示数值iDelayNS(5);}}return(0);}/**********************************
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年小学生饮食安全教育知识
- 2026年现代教育技术基础知识
- 2026年会计初级职称考试笔试仿真题解析
- 2026年碳指数设计师高级笔试模拟题
- 2026年小学语文学科知识与拓展
- 昆山历史中考试卷及答案
- 广东福建cad大赛试题及答案
- Unit 1 Don't touch the machines,please!教学设计小学英语四年级下册外研版(一起)
- 八年级物理下册 7.2 弹力 力的测量教学设计(附当堂检测题及备课参考资料)(新版)北师大版
- 应收账款清缴催办函8篇范本
- 湘潭大学运动控制系统试题库
- 高级政工师考试题库
- 煤矿事故避灾和自救互救基本知识培训课件
- 北师大版五年级数学下册总复习课件
- 广东省建筑施工安全管理资料统一用表2021年版(原文格式版)
- 义务教育数学新课程标准选择题题库测试卷精选450题(2022版)含答案
- (7.7.1)-双肾及输尿管点压痛、肾区叩击痛检查
- 压型金属板安装检验批质量验收记录
- 土地与房屋征收(拆迁)法律实务课件
- 农村自留地转让协议书
- 石油建设安装工程预算定额说明及工程量计算规则
评论
0/150
提交评论