- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验四 GPIO 输入实验
一、实验目的
1、能够使用GPIO的输入模式读取开关信号。
2、掌握GPIO相关寄存器的用法和设置。
3、掌握用C语言编写程序控制GPIO。
二、实验环境
PC机 一台
ADS 1.2集成开发环境 一套
EasyARM2131教学实验平台 一套
三、实验内容
1.实验通过跳线 JP8 连接KEY1与P0.16,程序检测按键KEY1 的状态,控制蜂鸣器BEEP 的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。(调通实验后,改为KEY3键进行输入)。
2.当检测到KEY1有按键输入时点亮发光二极管LED4并控制蜂鸣器响,软件延时后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键没有输入。(键输入改为键KEY4,发光管改为LED6)。
3.结合实验三,当按下按键Key1时,启动跑马灯程序并控制蜂鸣器响,软件延时后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键再次按下。
四、实验原理
当P0 口用于GPIO输入时(如按键输入),内部无上拉电阻,需要加上拉电阻,电路图参见图 4.2。
进行 GPIO 输入实验时,先要设置IODIR 使接口线成为输入方式,然后读取IOPIN 的值即可。
图 4.2按键电路原理图
实验通过跳线 JP8 连接KEY1_P0.16,程序检测按键KEY1 的状态,控制蜂鸣器BEEP 的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。
在这个实验中,需要将按键KEY1 输入口P0.16 设为输入口而蜂鸣器控制口P0.7 设置为输出口。蜂鸣器电路如图 4.3 所示,当跳线JP6 连接蜂鸣器时,P0.7 控制蜂鸣器,低电平时蜂鸣器鸣叫。LED灯电路如图4.4所示,低电平时灯亮。
图 4.3 蜂鸣器控制电路
图 4.4 LED 控制电路
程序首先设置管脚连接寄存器PINSEL0 和PINSEL1,设置P0.16 为输入,设置P0.7,P1.21 为输出。然后检测端口P0.16 的电平,对P0.7, P1.21进行相应的控制,流程图如图 4.5 所示,实现程序见程序清单 4.1。
图 4.5 按键输入实验流程图
实验步骤、源代码及调试结果
内容1
实验步骤
① 启动ADS1.2IDE集成开发环境,选择ARM Executable Image for lpc2131工程模板建立一个工程BEEP_key。
② 在user组里编写主程序代码main.c。
③ 选用DebugInFLASH生成目标,然后编译链接工程。
④ 将EasyARM教学实验开发平台上的相应管脚跳线短接。
⑤ 选择Project-Debug,启动AXD进行JLINK仿真调试。
⑥ 全速运行程序,程序将会在main.c的主函数中停止。如下图所示:
⑦ 单击Context Variable图标按钮(或者选择Processor Views-Variables)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。选择System Views-Debugger Internals 即可打开LPC2000系列ARM7微控制器的片内外寄存器窗口。
通过变量窗口可以观察变量BEEP、KEY1等的值和ARM7微控制器的片内外寄存器窗口。如下图所示:
⑧ 可以单步运行程序,先按下Key1,观察IO0PIN寄存器的值,然后断开Key1,观察IO0PIN寄存器的值。可以设置/取消断点;或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。如下图所示:
图4.6 未按下Key1时IO0PIN的值 图4.7 按下Key1时IO0PIN的值
由上两图可知,当按下Key1时,IO0PIN寄存器的第16位由1变为0(F变为E),key1与P0.16相连,按下Key1时,P0.16管脚输出电平由1变为0,寄存器值变化,蜂鸣器响,说明控制是正确的。
现象描述:按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。
源代码:
#include config.h
const uint32 BEEP = 1 7; // P0.7 控制蜂鸣器
const uint32 KEY1 = 1 16; // P0.16 连接KEY1
(改为KEY3时,只需“const uint32 KEY1 = 1 16”改为“const uint32 KEY3 = 1 18”,其余不变。)
/**************************************
您可能关注的文档
最近下载
- (一模)2026届大湾区普通高中毕业年级联合模拟考试(一)数学试卷(含答案).pdf
- 延世韩国语单词第一册.pdf VIP
- 张佩兰溶栓讲稿课件.ppt
- 实验室生物安全程序文件.docx VIP
- 子公司治理制度.docx VIP
- 北师大版小学数学二年级上册第七单元《分一分与除法》大单元教学方案.docx VIP
- 2025出生医学证明管理培训.pptx VIP
- 2025年甘肃省定西市安定区称钩驿镇选聘村干部笔试备考题库及答案解析.docx VIP
- 2025广东惠州市龙门县平陵街道招聘村“两委”干部储备人选16人考试参考题库及答案解析.docx VIP
- GB50345-2012 屋面工程技术规范.pdf VIP
原创力文档


文档评论(0)