嵌入式系统GPIO输入输出实验报告

上传人:pu****.1 文档编号:558814007 上传时间:2022-11-01 格式:DOCX 页数:16 大小:477.91KB
返回 下载 相关 举报
嵌入式系统GPIO输入输出实验报告_第1页
第1页 / 共16页
嵌入式系统GPIO输入输出实验报告_第2页
第2页 / 共16页
嵌入式系统GPIO输入输出实验报告_第3页
第3页 / 共16页
嵌入式系统GPIO输入输出实验报告_第4页
第4页 / 共16页
嵌入式系统GPIO输入输出实验报告_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《嵌入式系统GPIO输入输出实验报告》由会员分享,可在线阅读,更多相关《嵌入式系统GPIO输入输出实验报告(16页珍藏版)》请在金锄头文库上搜索。

1、实验四GPIO输入实验一、实验目的1、能够使用GPIO的输入模式读取开关信号。2、掌握GPIO相关寄存器的用法与设置。3、掌握用C语言编写程序控制GPIQ二、实验环境PCM一台ADS1、2集成开发环境一套EasyARM213教学实验平台一套三、实验内容1、实验通过跳线JP8连接KEY1与P0、16,程序检测按键KEY1的状态,控制蜂鸣器BEEP的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。(调通实验后,改为KEY31进行输入)。2、当检测到KEY1有按键输入时点亮发光二极管LED4并控制蜂鸣器响,软件延时后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键没有输入。(键输入改为键KEY4发

2、光管改为LED6)3、结合实验三,当按下按键Key1时,启动跑马灯程序并控制蜂鸣器响,软件延时后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键再次按下。四、实验原理当P0口用于GPIO输入时(如按键输入),内部无上拉电阻,需要加上拉电阻,电路图参见图4、2。进行GPIO输入实验时,先要设置IODIR使接口线成为输入方式,然后读取IOPIN的值即可。KZT 二阈再3rKET3KEY4KEY3TUmsw 二POU用筋A.需要接1拉电卬pc 丫工 Krm 卫三T7 比KYG1D 叩L N七二KEY 二 h次用 FKEYl L 1K:孤匕口可:A PO.r CAP 12E 式: IS CAP1 3

3、| PO.1C CAP1.:H不备KT:J? P0J1 CAP1,J图4、2按键电路原理图实验通过跳线JP8连接KEY1_P0、16,程序检测按键KEY1的状态,控制蜂鸣器BEEP的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。在这个实验中,需要将按键KEY1输入口P0、16设为输入口而蜂鸣器控制口P0、7设置为输出口。蜂鸣器电路如图4、3所示,当跳线JP6连接蜂鸣器时,P0、7控制蜂鸣器,低电平时蜂鸣器鸣叫。LEW电路如图4、4所示,低电平时灯亮。C1图4、3蜂鸣器控制电路P1.1S)UDNP11伊中LZDS7pi:?;yLEEUWPl21li:R:1:pTT:三”党:sLHT1中P1Z4

4、2二口.二::17工三加20 上4_PG上25 P125 见8田elA2GA3A4c4A5ciM 3出 GAECS图4、4LED控制电路程序首先设置管脚连接寄存器PINSEL0与PINSEL1,设置P0、16为输入,设置P0、7,P1、21为输出。然后检测端口P0、16的电平,对P0、7,P1、21进行相应的控制,流程图如图4、5所示,实现程序见程序清单4、1。P07(P0J6也用:飞GFIO图4、5按键输入实验流程图设泞07为输I部志P0.16为输入状态五、实验步骤、源代码及调试结果内容1实验步骤启动ADS1、2IDE集成开发环境,选择ARMExecutableImagefoNpc2131X

5、程模板建立一个工程BEEP_key在user组里编写主程序代码main、c。选用DebugInFLASFft成目标,然后编译链接工程。将EasyARM教学实验开发平台上的相应管脚跳线短接。选择Project-Debug启动AXD进行儿INK真调试。全速运行程序,程序将会在main、c的主函数中停止。如下图所示:ARM79-0-0ADownload&ARMsetupworkshiydn41srcStart一丁ARM790-D:DownloadsARMseWpwork通过变量窗口可以观察变量BEEPKEY1等的值与ARM7微控制器的片内外寄存器窗口。如下图所示DebuggerInternalsIn

6、ternalVariablesVariableNameValue6Ei二因4target_fpii0x0000000123ctig_史匕3二支。DOOOOC与icebreaker_工cjcOAOAOAOe_noctoiOwSOAOA170ta_Q_jrir.oryOkQODSOOCIO?3y3Xem_re3EtOhOOOOOOOOARM79_0-VariablesLocalGloMCla5sVeriableVaLiie_3tderr_stdzn_3tdin_ci.air;E_3匚d口U七_stdcuc_najneBEEFKEY1Dbu?InfennaLionunavail3ebu5Tinava

7、ilZebujixcrniati.cunavaLlDebuginformatio-nunavail口日匕口jiQfccaELainavailDe口uginfct工己二LonunavaLl口症59FF01?2HES9FFC1::可以单步运行程序,先按下Key1观察IO0PIN寄存器的值,然后断开Key1观察IO0PIN寄存器的值。可以设置/取消断点;或者全速运行程序,停止程序运行,观ARM790 - WatchTab 1 Tab 2 | Tab 3 | Tab 4 IKa tch_Value* (imsign-ed lcngCiE72FFF7F察变量的值,判断蜂鸣器控制就是否正确。如下图所示AR

8、M79,OWatchTab1|T5b2|Tab3|Tab4由上两图可知,当按下Key1时,IO0PIN寄存器的第16位由1变为0(F变为E),key1与P016相连,按下Key1时,P0、16管脚输出电平由1变为0,寄存器值变化,蜂鸣器响,说明控制就是正确的。现象描述:按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。源代码:#includeconfig、hconstuint32BEEP=17;/P0、7控制蜂鸣器constuint32KEY1=116;/P0、16连接KEY1(改为KEY3时,只需“constuint32KEY1=116”改为“constuint32KEY3=1Debug启动AXD进

9、行JLINK真调试。全速运行程序,程序将会在main、c的主函数中停止。如下图所示: 单击Context Variable图标按钮(或者选择Processor Views-VariableS)X开变量观察窗口,通过此窗口可以观察局部变量与全局变量。选择SystemViews-DebuggerInternals即可打开LPC2000系列ARM7微控制器的片内外寄存器窗口。通过变量窗口可以观察变量BEEPKEY1等全局变量、i等本地变量与ARM7微控制器的片内外寄存器窗口。如下图所示左图所示为ARM7微控制器的片内 寄存器窗口。Local GlobalClast |VariableI Value_

10、atderrJJebuginrorirationunav _3 tder ame *ebuginf cr-iE ax icntinava_5tdin屿门中_Edin_n.ame Etbuqinf&nnationunavfi_5EdOUDjebuginfcritacicnimavd_stdcuit;_icre ijebugInEcnraticrLun-av3EEFJXE59FF018ZEY1as.E55FFniaLEDS 40xE59FFG19ARM79,O - VariablesARM79_0 - VariablesLocal | Global Class |VdriaklValiCkQ 白口

11、 0 口铝re3ultGxoooooo 6b图4、9本地变量图4、8全局变量可以单步运行程序,先按下Key1观察IO0PIN寄存器的值,然后断开Key1观察IO0PIN寄存器的值。可以设置/取消断点;或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制就是否正确。如下图所示:ARM79.O-WatchTab1Tab2|Tab3|Tab4KavehValue1(unsiiedlong*)(Ok72FFFFEFARM79_0-WatchTabiTab2|TabS|Tab4|图4、10未按下KEY1时IO0PIN的值的值图4、11按下KEY1后IO0PIN对比图4、10与4、11,发现按下K

12、EY1后,IO0PIN寄存器的第16位由1变为0;而KEY1对应管脚P0、16,当按下时输入低电平,这说明KEY1的控制就是正确的。ARM 79,0 - WatchTab 1 Tab 2 Tab 2 Tab 4FanchValue* (unsigned long*) (0m72FFF7上图所示为运行 “IO0CLR = BEEP 后IO0PIN寄存器的值,与图4、10对比, 发现第8位由1变为0,BEEP对应P0、7管脚,这说明BEEP勺控制就是对的。现象描述:当按下KEY1时,蜂鸣器鸣响,LED4亮;当松开KEY1后,蜂鸣器静音,LED4源代码如下:#includeconfig、hconstuint32BEEP=17;/P0、7控制蜂鸣器constuint32KEY1=116;/P0、16连接KEY1(改为KEY4按键时,只需把上句代码改为constuint32KEY4=119淇余不变)constuint32LEDS4=121;P121控制LED4低电平点亮(改为LED6时,只需把上句代码改为“constuint32LED6=12祺余

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号