实验指导书1 GPIO输入输出控制实验

合集下载

《嵌入式系统原理与应用》实验报告01-GPIO输出控制实验

《嵌入式系统原理与应用》实验报告01-GPIO输出控制实验
二、实验设备(环境)及要求
硬件:PC机;
软件:PC机操作系统windows XP,ADS1.2集成开发环境,Proteus软件。
3、实验内容与步骤
实验内容:
LPC2138外接3个按键,4个LED灯,实现不同流水灯的效果。
4、实验结果与数据处理
1.实验连接图
图1 实验原理图
2.程序代码
#include "config.h"
图3.3:模式3下蓝灯亮起
图3.4:模式3下绿灯亮起
5、分析与讨论
在这一次实验中,我学会了通过教程下载并安装了ADS和Proteus软件,同时根据录播,一步一步地熟悉两个软件的时候,同时也完成了利用仿真实验模拟了GPIO输出控制。初步掌握并理解了Proteus仿真软件的使用,对ARM7有了进一步的了解,为之后的学习打下了基础。
}
void LED_3(void)
{
IO0SET = 0x0001;
delay(1000);
IO0CLR = 0x0001;
IO0SET = 0x0040;
delay(1000);
IO0CLR = 0x0040;
IO0SET = 0x0008;
delay(1000);
IO0CLR = 0x0008;
delay(1000);
IO0CLR = 0x0008;
IO0SET = 0x0040;
delay(1000);
IO0CLR = 0x0040;
IO0SET = 0x0200;
delay(1000);
IO0CLR = 0x0200;
}
void LED_2(void)
{
IO0SET = 0x0200;

GPIO输入、输出控制实验代码

GPIO输入、输出控制实验代码
GPIO实验内容:(GPIO设置见课件5-7,5-9)
1.2.10_GPIO OUT1
2.2.11_GPIO OUT2
3.2.12_GPIO INPUT
4.输入输出综合实验(查询方式,1S由软件延时控制):
要求:每按一次KEY1键,同时要求LED1~LED8循环点亮。
1)初始状态或按下KEY1键(松开后保持),只点亮一只LED灯,每隔1秒右循环显示,移到LED8后回到LED1。
*名称:DelayNS()
*功能:长软件延时
*入口参数:dly延时参数,值越大,延时越久
*出口参数:无
****************************************************************************/
void DelayNS(uint32 dly)
#define LED2 1<<17// P2.17
#define LED31<<18// P2.18
#define LED41<<19// P2.19
#define LED51<<20 // P2.20
#define LED61<<21// P2.21
#define LED71<<22// P2.22
{ uint32 i;
for(; dly>0; dly--)
{
for(i=0; i<5000; i++);
}
}
void readKey()
{
while((IOPIN&KEY)==0)
{
while((IOPIN&KEY)==0);

实验1GPIO控制实验

实验1GPIO控制实验

实验1 GPIO控制实验1.1 实验目的¾了解S3C2440的GPIO的分组和特点¾了解S3C2440的GPIO的工作模式和寄存器配置方法¾了解S3C2440的GPIO硬件连接原理¾掌握S3C2440的GPIO的使用方法1.2 实验内容¾使用C语言配置GPIO口的相应寄存器¾编写C语言程序,通过GPIO有规律的输出高低电平来控制一组LED的亮灭1.3 实验设备¾PC机¾TE2440开发板(配套5V,2A直流电源)¾ULINK2仿真器(配套USB线)¾交叉串口线1.4 实验原理1 GPIO介绍GPIO(General-Purpose IO ports),通用的IO端口。

一般的微处理器芯片都提供通用的可编程IO端口,用户可以通过配置寄存器将其配置成输入、输出或者其他特殊功能模式。

通用IO端口一般都可以实现按位操作,即用户可以针对IO端口的每一位(以下简称IO位)进行操作。

S3C2440有130个多功能复用的IO端口,分为端口A~J,共9组,如下所示。

z端口A(GPA),23位输出口z端口B(GPB),11位输入/输出口z端口C(GPC),16位输入/输出口z端口D(GPD),16位输入/输出口z端口E(GPE),16位输入/输出口z端口F(GPF),8位输入/输出口z端口G(GPG),16位输入/输出口z端口H(GPH),11位输入/输出口z端口J(GPJ),13位输入/输出口其中,GPA只能用作输出口或者其他特殊功能,GPB-GPJ可以用作输入、输出或者其他特殊功能。

所有IO端口都有相应的配置寄存器,包括端口控制寄存器、端口数据寄存器和端口上拉寄存器,在程序运行之前必须对每个用到的IO端口进行配置。

¾端口控制寄存器S3C2440的端口控制寄存器分别为GPACON-GPJCON。

解读:GPACON寄存器中的每一位对应GPA端口的每一个IO位(对应一个引脚),当某位被设为0时,相应引脚为输出引脚,此时可以向GPA 端口写入数据来让对应的引脚输出高低电平。

实验01-STM32F103-GPIO输入输出实验

实验01-STM32F103-GPIO输入输出实验

最大输出速度为 10MHz
10
最大输出速度为 2MHz
11
最大输出速度为 50MHz
六、实验现象
把程序下载到神州Ⅱ号 STM32 开发板后,可以根据实验设计看到四个 LED(LD1-4) 单独或者轮流闪亮,实现流水灯的效果。
七、实验报告书写要求
说明:实验报告均按以下格式书写
1) 绘制程序流程图。 2) 写出程序清单。 3) 给出实验中用到的数据和实验结果。 4) 通过实验,分析你的收获、不足、问题。
三、实验电路原理图及其说明
在神州Ⅱ号 STM32 开发板中,一共有 5 个 LED 指示灯,其中一个是电源指示灯 LD5,其他的 4 个 LED (LD1、LD2、LD3 和 LD4)由 GPIO-PD 控制,4 个 LED 分别串了 470K Ω的电阻,起限流作用防止电流过大损坏 LED 和 GPIO 口。电路原理图如图 1 所示。
口可以自由编程,单 IO 口寄存器必须要按 32 位字被访问。STM32 的很多 IO 口都是 5V
兼容的,这些 IO 口在与 5V 电平的外设连接的时候很有优势。
STM32 的每个 IO 端口都有 7 个寄存器来控制:配置模式的 2 个 32 位的端口配置寄
存器 CRL 和 CRH、2 个 32 位的数据寄存器 IDR 和 ODR、1 个 32 位的置位/复位寄存器 BSRR、
五、实验原理
流水灯的关键实际上就是如何控制 STM32 处理器的 GPIO 接口,作为 IO 口,输出指 定的电平信号。
STM32 的 IO 口可以由软件配置成 8 种模式:模拟输入、输入悬空、输入下拉、输入
2
山东科技大学《微控制器原理》实验指导书
STM32F103-GPIO 基本输入输出实验

gpio实验报告

gpio实验报告

gpio实验报告GPIO实验报告引言:GPIO(General Purpose Input/Output)是通用输入/输出引脚的简称,是一种常用的数字接口技术。

在嵌入式系统和电子设计中,GPIO被广泛应用于与外部设备进行数据交互的过程中。

本实验报告将介绍GPIO的原理、应用以及实验过程和结果。

一、GPIO的原理和应用1.1 GPIO的原理GPIO是一种数字接口技术,通过控制电压的高低来实现数据输入和输出。

在嵌入式系统中,GPIO通常由微控制器或单片机提供,可以通过编程来控制GPIO 的状态。

GPIO引脚通常具有输入和输出两种模式,可以根据需要进行配置。

1.2 GPIO的应用GPIO在嵌入式系统和电子设计中有广泛的应用。

例如,可以使用GPIO将传感器的数据输入到微控制器,实现数据采集和处理;同时,也可以使用GPIO将微控制器的计算结果输出到执行器,实现控制功能。

此外,GPIO还可以用于控制LED灯、蜂鸣器等外部设备,实现各种交互效果。

二、实验过程和结果2.1 实验准备在进行GPIO实验之前,我们需要准备以下材料:- 一块可编程的嵌入式开发板- 杜邦线- LED灯- 电阻2.2 实验步骤1. 将LED灯的长脚连接到开发板的GPIO引脚上,短脚连接到电阻上,再将电阻的另一端连接到开发板的地线上。

2. 打开开发板的开发环境,创建一个新的项目。

3. 在项目中编写代码,配置GPIO引脚为输出模式。

4. 在代码中控制GPIO引脚的电平,使LED灯点亮。

5. 将代码下载到开发板上,观察LED灯是否亮起。

2.3 实验结果经过实验,我们成功地控制了GPIO引脚,使LED灯点亮。

这验证了GPIO的工作原理和应用。

三、实验总结通过本次实验,我们了解了GPIO的原理和应用,并成功地进行了实验验证。

GPIO作为一种常用的数字接口技术,在嵌入式系统和电子设计中具有重要的作用。

掌握GPIO的使用方法,可以实现与外部设备的数据交互和控制功能。

GPIO的使用实验报告

GPIO的使用实验报告

GPIO的使用实验报告本实验报告以“GPIO的使用”为主题,介绍了GPIO的基本概念、使用方法和在实际应用中的一些案例。

报告总共分为四个部分:介绍部分、实验原理、实验过程和实验结果分析。

一、介绍部分GPIO是General Purpose Input/Output的简称,中文名称为通用输入输出。

它是处理器芯片与外部电路之间的一个接口,可以通过编程来控制和读取电平状态。

通常情况下,GPIO的引脚既可以作为输入引脚,也可以作为输出引脚。

二、实验原理三、实验过程1. 设置GPIO引脚模式:在Python中,可以使用RPi.GPIO库来控制GPIO引脚。

首先需要导入RPi.GPIO库,然后使用GPIO.setmode(GPIO.BCM)来设置编码方式为BCM。

接着可以使用GPIO.setup(函数来设置引脚的输入/输出模式。

例如,GPIO.setup(17, GPIO.OUT)将引脚17设置为输出模式。

2. 控制输出引脚:使用GPIO.output(函数可以控制引脚的电平状态。

例如,GPIO.output(17, GPIO.HIGH)将引脚17设置为高电平,GPIO.output(17, GPIO.LOW)将引脚17设置为低电平。

3. 读取输入引脚:使用GPIO.input(函数可以读取引脚的电平状态。

例如,state = GPIO.input(17)将引脚17的电平状态赋值给变量state。

四、实验结果分析在实验中,我们先将引脚设置为输出模式,然后控制引脚输出高低电平,观察LED等外部设备的亮灭情况。

接着将引脚设置为输入模式,读取引脚的电平状态,判断外部设备的开关状态。

通过这些操作,我们可以了解到GPIO的基本使用方法和在实际应用中的一些场景。

总结:本次实验通过树莓派和GPIO库控制了GPIO引脚的输入和输出。

实验结果表明,我们可以通过编程实现对GPIO引脚的控制,进而控制外部设备的工作状态,实现了与外部电路的交互。

1_GPIO输出控制实验

1_GPIO输出控制实验
控制MagicARM270实验箱上的LED1~LED4显示及蜂 鸣器报警。控制蜂鸣器响一声,然后让所有LED灯闪烁 5次,接着再控制LED指示0~F的16进制数值,依此不 断地循环。
将程序固化到片外NOR Flash(TE28F128J3芯片),脱机 运行程序。
广州致远电子有限公司
MagicARM270教学实验开发平台
MagicARM270教学实验开发平台
5.实验原理
GPDRx寄存器是来设置I/O为输出或输入模式,设置值 为1的位对应的I/O为输出模式,为0的位对应的I/O为 输入模式。当I/O设置为GPIO输出模式(Output模式)时, 可以通过写GPCRx控制相应I/O口输出低电平(写1的位 有效),或者写GPSRx控制相应I/O口输出高电平(写1的 位有效)。
广州致远电子有限公司
MagicARM270教学实验开发平台
6.实验步骤
(5) 选用DebugInFLASH生成目标,并设置生成flash.bin 文件,然后编译链接工程。
广州致远电子有限公司
MagicARM270教学实验开发平台
6.实验步骤
(6) 使 用 JFlashMM 软 件 将 flash.bin 烧 写 到 片 外 NOR FLASH,操作方法请参考<<MagicARM270实验理论指导 书>>第5章“ADS集成开发环境应用及JTAG烧写方法” 的说明。 (7)将MagicARM270实验箱上SW1的开关3拔到“LED”端 (即开关断开),将SW1的开关4拔到“BEEPC”端(即开 关连接),然后按RST键复位系统。 (8)观察程序是否能脱机运行,观察蜂鸣器及LED1~ LED4的控制是否正确。
广州致远电子有限公司
MagicARM270教学实验开发平台

GPIO的使用实验报告

GPIO的使用实验报告

实验二通用GPIO的使用(4学时)
一、实验目的
1、掌握C51芯片I/O接口的性能特点。

2、掌握STM32芯片I/O接口的性能特点。

3、对于C51芯片,使用P0、P1口做I/O接口,实现输入和
输出控制。

4、对于STM32芯片掌握GPIO的功能设定方法,使用
GPIO完成输入与输出的电路驱动
二、实验内容
1. P1口做为输出口控制“单只数码管循环显示0~9”。

2. 编写一段程序,并修改硬件电路,用P1.0-P1.6口控制
LED,P1.7控制LED的亮与灭(P1.7接按键,按下时LED 亮,不按时LED灭)。

3、用STM32芯片I/O接口实现流水灯的控制。

三、思考题
1、为什么P0作为I/O接口时,要接上拉电阻?
答:因为P0口作为I/O接口时内部是漏极开路型。

2、在实验内容2中,如果P0某个管脚接按键,该如何修改硬件和软件?
3、设计一单片机控制电路,用八只开关分别控制八只LED 的亮灭。

四、实验结果分析
对于问题2
四、结论
这次对单片机GPIO口的实验,我们分别做了51单片机和STM32f103r6对GPIO端口的应用,再通过protues的仿真验证,证明我们的思路是正确的。

由于在这次实验中没有吧protues8.6版本安装好,导致实验过程中出现了了一些延误,没能按照老师课堂的进度,但在实验课过后过后,及时复习和查资料,解决了这个问题。

实验过程中不足的有,对于实验仍处于生搬硬套的阶段,无法将老师理论课所讲与实验结合在一起,对于写代码的能力有待提高。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一GPIO输入输出控制实验GPIO输入输出控制实验11.实验目的(1)进一步掌握ADS 1.2集成开发环境的使用方法。

(2)掌握LPC2200专用工程模板的添加和使用。

(3)掌握EasyJTAG仿真器的安装和使用。

(4)能够在MagicARM2200教学实验开发平台上运行第一个程序(无操作系统)。

(5)熟悉LPC2000系列ARM7微控制器的GPIO控制。

(6)了解应用程序的固化方法。

2.实验设备●硬件:PC机一台MagicARM2200教学实验开发平台一套●软件:Windows98/XP/2000系统,ADS 1.2集成开发环境3.实验内容控制MagicARM2200教学实验开发平台上的蜂鸣器报警。

先使用片外RAM(MT45W4MW16芯片)进行调试,调试通过后将程序固化到片外FLASH(SST39VF160芯片),然后脱机运行。

4.实验预习要求(1)认真复习LPC2000系列ARM7微控制器的GPIO控制机制以及LPC2000管脚连接模块等内容。

(2)了解MagicARM2200教学实验开发平台的硬件结构,注意蜂鸣器的相关控制电路。

(3)了解MagicARM2200教学实验开发平台上的跳线。

(4)仔细阅读附带文档《ADS集成开发环境及仿真器应用》或其它相关资料,了解ADS 1.2集成开发环境、LPC2200专用工程模板、EasyJTAG仿真器的应用。

5.实验原理如图1.1所示,MagicARM2200实验箱主板上蜂鸣器使用PNP三极管Q12进行驱动控制,当控制P0.7输出低电平时,Q12导通,蜂鸣器蜂鸣;当控制P0.7输出高电平时,Q12截止,蜂鸣器停止蜂鸣;若把JP22断开,Q12截止,蜂鸣器停止蜂鸣。

由于P0.7口与(LPC2200的)SPI功能部件的SSEL0复用,所以此引脚上接一上拉电阻R86,防止在使用硬件SPI总线时由于SSEL0引脚悬空导致SPI操作出错。

J 1_P o r t图错误!文档中没有指定样式的文字。

.1 蜂鸣器控制电路6.实验步骤(1)连接EasyJTAG 仿真器和MagicARM2200教学实验开发平台,然后安装EasyJTAG 仿真器的驱动程序(若已经安装过,此步省略)。

(2)为ADS1.2增加LPC2200专用工程模板(若已增加过,此步省略)。

(3)启动ADS 1.2,使用ARM Executable Image for MaigcARM2200工程模板建立一个工程BeepCon_C 。

(4)在user 组中的main.c 中编写主程序代码。

(5)选用DebugInExram 生成目标,如图1.2所示,然后编译连接工程。

图1.2 选择生成目标(6)将MagicARM2200教学实验开发平台上的跳线器JP22短接,JP20断开,见图 。

图 1.3 蜂鸣器连接电路(7)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试(需要正确设置仿真器,参考产品光盘附带文档《ADS集成开发环境及仿真器应用》)。

注意:使用DebugInExram生成目标时,使用片外RAM进行仿真调试,建议AXD设置Halt Mode选择Halt program,Aux Option选择Erase Flash when need。

在AXD中设置仿真器参考如图所示。

图1.4 片外RAM调试的仿真器设置(8)若JTAG连接出错,或AXD主窗口没有显示Startup.S源程序,按文档《ADS集成开发环境及仿真器应用》介绍的方法进行处理。

(9)全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。

(10)单击Context Variable图标按钮(或者选择【Processor Views】->【Variables】)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。

选择【System Views】->【Debugger Internals】即可打开LPC2000系列ARM7微控制器的片内外设寄存器窗口。

(11)可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确。

(12)当仿真调试通过后关闭AXD,在ADS 1.2集成开发环境中选用RelOutChip生成目标,然后编译连接工程。

(13)将MagicARM2200教学实验开发平台上的JP22跳线短接,JP20跳线断开。

(14)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。

此时EasyJTAG 仿真器将会把程序下载到片外FLASH上(需要正确设置仿真器,见图。

具体参考文档《ADS 集成开发环境及仿真器应用》)。

图1.5 片外FLASH调试的仿真器设置(15)按MagicARM2200教学实验开发平台上的RST复位键,观察程序是否能脱机运行。

(16)实验结束后,在AXD中设置仿真器为片外RAM调试方式的设置,以便于后面实验的正确操作。

7.实验参考程序GPIO输出控制实验1的参考程序见程序清单1.1。

程序清单1.1 GPIO输出控制实验1参考程序/***************************************************************************** 文件名:main.c* 功能:蜂鸣器控制。

对蜂鸣器B1进行控制,采用软件延时方法。

* 使用I/O口直接控制,采用灌电流方式。

* 说明:将跳线器JP22短接,JP20断开。

****************************************************************************/#include "config.h"#define BEEPCON 0x00000080 // P0.7引脚控制B1,低电平蜂鸣/***************************************************************************** 名称:DelayNS()* 功能:长软件延时。

* 入口参数:dly 延时参数,值越大,延时越久* 出口参数:无****************************************************************************/void DelayNS(uint32 dly){ uint32 i;for(; dly>0; dly--){for(i=0; i<5000; i++);}}/***************************************************************************** 名称:main()* 功能:控制蜂鸣器蜂鸣。

****************************************************************************/int main(void){; // 设置管脚连接模块连接至GPIO; // 设置BEEPCON IO口为输出方式while(1){; // BEEPCON = 0 蜂鸣器发声DelayNS(15); // 延时; // BEEPCON = 1蜂鸣器不发声DelayNS(15); // 延时}return(0);}8.思考(1)(基础实验)在实验参考程序中,如何控制蜂鸣器报警的速度?(2)(基础实验)如果把程序中的“#define BEEPCON 0x00000080”改成“#define BEEPCON 0x000000C0”,请问以下语句IO0DIR = BEEPCON;IO0CLR = BEEPCON;能否使蜂鸣器发声?为什么?GPIO 输入输出控制实验21.实验目的熟悉LPC2000系列ARM7微控制器的GPIO 控制。

2.实验设备● 硬件:PC 机 一台 MagicARM2200教学实验开发平台 一套● 软件:Windows98/XP/2000系统,ADS 1.2集成开发环境 3.实验内容使用GPIO 口控制8个LED 跑马灯显示。

4.实验预习要求(1)认真复习GPIO 控制机制以及LPC2000管脚连接模块内容。

(2)了解MagicARM2200教学实验开发平台的硬件结构,注意键盘及LED 显示电路。

(3)仔细阅读文档《ADS 集成开发环境及仿真器应用》或其它相关资料,了解ADS 1.2集成开发环境、LPC2200专用工程模板、EasyJTAG 仿真器的应用。

5.实验原理如图1.6所示,MagicARM2200实验箱主板上还有8个独立的发光二极管LED1~LED8,分别由P2.16~P2.23输出控制,控制I/O 输出高电平时对应的LED 熄灭,输出低电平时对应的LED 点亮,电路如图错误!文档中没有指定样式的文字。

.所示。

一般LED 的压降约为1.7V ,LED 点亮时的电流)(0034.04707.13.3A R V V I LED DD LED ≈-=-=,即3.4mA ,而LPC2290的I OL (I/O 低电平输出电流)最小值为4mA ,可以使用I/O 直接驱动。

这部分电路可以通过JP23跳线断开与LPC2200的连接。

图错误!文档中没有指定样式的文字。

.6 独立LED 控制电路6.实验步骤(1)启动ADS 1.2,使用ARM Executable Image for MaigcARM2200工程模板建立一个工程LEDCon_C 。

(2)在user 组中的main.c 中编写主程序代码。

(3)选用DebugInExram 生成目标,然后编译连接工程。

(4)将MagicARM2200教学实验开发平台上跳线器JP23全部短接,JP15跳线全部断开,见图1.(5)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。

(6)单步运行程序,通过LED1~LED8的显示判断输出是否正确。

全速运行程序,观察LED1~LED8的显示。

图 1.7 LED连接电路7.实验参考程序GPIO输出控制实验2的参考程序见程序清单1.。

程序清单1.2 GPIO输出控制实验2参考程序/***************************************************************************** 文件名:main.c* 功能:LED显示控制。

* 通过GPIO直接控制8个LED产生跑马灯效果* 说明:将跳线JP23全部短接,JP15跳线全部断开。

* 这个警告可忽略,C2892E: signed constant overflow****************************************************************************/#include "config.h"#define LED1 1<<16 // P2.16#define LED2 1<<17 // P2.17#define LED3 1<<18 // P2.18#define LED4 1<<19 // P2.19#define LED5 1<<20 // P2.20#define LED6 1<<21 // P2.21#define LED7 1<<22 // P2.22#define LED8 1<<23 // P2.23#define LEDCON 0x00ff0000const uint32 DISP_TAB[8] = { 0xff01ffff, 0xff02ffff, 0xff04ffff, 0xff08ffff,0xff10ffff, 0xff20ffff, 0xff40ffff, 0xff80ffff };/***************************************************************************** 名称:DelayNS()* 功能:长软件延时* 入口参数:dly 延时参数,值越大,延时越久* 出口参数:无****************************************************************************/ void DelayNS(uint32 dly){ uint32 i;for(; dly>0; dly--){for(i=0; i<5000; i++);}}/***************************************************************************** 名称:main()* 功能:根据表DISP_TAB来控制LED显示。

相关文档
最新文档