嵌入式系统GPIO-输入输出实验报告
实验四 GPIO 输入实验
一、实验目的
1、能够使用GPIO的输入模式读取开关信号。
2、掌握GPIO相关寄存器的用法和设置。
3、掌握用C语言编写程序控制GPIO。
二、实验环境
PC机 一台
ADS 一套
EasyARM2131教学实验平台 一套
三、实验内容
JP8 ,程序检测按键KEY1 的状态,控制蜂鸣器BEEP 的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。(调通实验后,改为KEY3键进行输入)。
,软件延时后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键没有输入。(键输入改为键KEY4,发光管改为LED6)。
,当按下按键Key1时,启动跑马灯程序并控制蜂鸣器响,软件延时后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键再次按下。
四、实验原理
当P0 口用于GPIO输入时(如按键输入),内部无上拉电阻,需要加上拉电阻,电路图参见图 。
进行 GPIO 输入实验时,先要设置IODIR 使接口线成为输入方式,然后读取IOPIN 的值即可。
图
实验通过跳线 JP8 ,程序检测按键KEY1 的状态,控制蜂鸣器BEEP 的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。
在这个实验中,需要将按键KEY1 设置为输出口。蜂鸣器电路如图 所示,当跳线JP6 连接蜂鸣器时, 控制蜂鸣器,低电平时蜂鸣器鸣叫。,低电平时灯亮。
图 蜂鸣器控制电路
图 LED 控制电路
程序首先设置管脚连接寄存器PINSEL0 和PINSEL1, 为输入,, 为输出。 的电平,, ,流程图如图 所示,实现程序见程序清单 。
图 按键输入实验流程图
实验步骤、源代码及调试结果
内容1
实验步骤
① ,选择ARM Executable Image for lpc2131工程模板建立一个工程BEEP_key。
② 。
③ 选用DebugInFLASH生成目标,然后编译链接工程。
④ 将EasyARM教学实验开发平台上的相应管脚跳线短接。
⑤ 选择Project->Debug,启动AXD进行JLINK仿真调试。
⑥ 全速运行程序,。如下图所示:
⑧ 可以单步运行程序,先按下Key1,观察IO0PIN寄存器的值,然后断开Key1,观察IO0PIN寄存器的值。可以设置/取消断点;或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。如下图所示:
未按下Key1时IO0PIN的值 按下Key1时IO0PIN的值
由上两图可知,当按下Key1时,IO0PIN寄存器的第16位由1变为0(F变为E),,按下Key1时,,寄存器值变化,蜂鸣器响,说明控制是正确的。
现象描述:按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。
源代码:
#include ""
const uint32 BEEP = 1 << 7; // 控制蜂鸣器
const uint32 KEY1 = 1 << 16; // 连接KEY1
(改为KEY3时,只需“const uint32 KEY1 = 1 << 16”改为“const uint32 KEY3 = 1 << 18”,其余不变。)
/*******************************************************************************************
** 函数名称:
嵌入式系统GPIO-输入输出实验报告 来自淘豆网m.daumloan.com转载请标明出处.