第五章通用和复用功能IO口

合集下载

第五章GPIO和中断

第五章GPIO和中断
GPIO课程实验程序.doc
对C口的6个GPIO管脚进行操作,设计花 样流水灯
#include "stm32f10x.h“ #define LED_ALL GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2| GPIO_Pin_3| GPIO_Pin_4| GPIO_Pin_5 int main(void) { unsigned char j=0; chLsd=0xFF;
对于双向复用功能,端口位必须配置复用功能 输出模式(推挽或开漏)。
如果把端口配置成复用输出功能,则引脚和输出寄 存器断开,并和片上外设的输出信号连接。
如果软件把一个GPIO脚配置成复用输出功能,但是 外设没有被激活,它的输出将不确定。
模拟输入配置
GPIO寄存器的操作
SM32F10X硬件文档.PDF
GPIO_Mode值
例如:IO配置
GPIO_Mode_AIN = 0x0, 模拟输入 GPIO_Mode_IN_FLOATING = 0x04, 浮空输入 GPIO_Mode_Out_OD = 0x14, 表示配置相应管脚为GPIO开漏输出(真双向IO) GPIO_Mode_Out_PP = 0x10, 通用推挽输出模式 GPIO_Mode_AF_OD = 0x1C, 表示配置相应管脚为复用功能的开漏输出 GPIO_Mode_AF_PP = 0x18 复用功能的推挽输出模式
GPIOx_BSRR和GPIOx_BRR寄存器允许 对任何GPIO寄存器的读/更改的独立访问
端口位配置表
I/O端口位输出配置
复用功能配置
复用功能
对于复用的输入功能,端口必须配置成输入模 式(浮空、上拉或下拉)且输入引脚必须由外部 驱动
对于复用输出功能,端口必须配置成复用功能 输出模式(推挽或开漏)。

第5讲 通用IO口(xkj201611)4

第5讲 通用IO口(xkj201611)4
LOGO
数字I/O端口模块通过64个16位寄存器来设置所有I/O引脚的功能 这些寄存器大概可以分为以下六类
-复用控制寄存器GPxMUX,确定I/O引脚为基本功能,还是 通用I/O功能引脚
- 方向控制寄存器GPxDIR-用来控制I/O引脚的数据方向 -数据寄存器GPxDAT-用来控制I/O引脚的数据 - 设置寄存器GPxSET-用来设置输出引脚的数据(高电平有效) - 清除寄存器GPxCLEAR-用来清除输出引脚的数据(高电平有效) -切换寄存器GPxTOGGLE-用来切换输出引脚的数据(高电平有效) LOGO
no qualification (SYNC to SYSCLKOUT) QUALPRD = SYSCLKOUT/2 QUALPRD . = SYSCLKOUT/4 . QUALPRD = SYSCLKOUT/510
. .
. .
C28x GPIO MUX/DIR Registers
Address 70C0h 70C1h 70C2h 70C4h 70C5h 70C6h 70CCh 70CDh 70CEh 70D0h 70D1h 70D2h 70D4h 70D5h 70D8h 70D9h Register GPAMUX GPADIR GPAQUAL GPBMUX GPBDIR GPBQUAL GPDMUX GPDDIR GPDQUAL GPEMUX GPEDIR GPEQUAL GPFMUX GPFDIR GPGMUX GPGDIR Name GPIO A Mux Control Register GPIO A Direction Control Register GPIO A Input Qualification Control Register GPIO B Mux Control Register GPIO B Direction Control Register GPIO B Input Qualification Control Register GPIO D Mux Control Register GPIO D Direction Control Register GPIO D Input Qualification Control Register GPIO E Mux Control Register GPIO E Direction Control Register GPIO E Input Qualification Control Register GPIO F Mux Control Register GPIO F Direction Control Register GPIO G Mux Control Register GPIO G Direction Control Register

单片机的IO口配置与操作技巧

单片机的IO口配置与操作技巧

单片机的IO口配置与操作技巧单片机是一种集成电路,其中包含了处理器、存储器和各种输入输出接口。

其中,IO口是单片机最重要的部分之一,它可以用于连接和控制外部设备,实现数据输入和输出。

本文将介绍单片机IO口的配置和操作技巧,帮助读者更好地理解和应用单片机。

一、IO口的基本概念IO口是单片机与外部设备进行数据交互的接口,它可以用于输入数据或输出数据。

在单片机中,IO口通常由多个引脚(Pin)组成,每个引脚都可作为一个IO口使用。

二、IO口的配置方法1. 硬件配置IO口的硬件配置是指通过设置相关硬件连接器的方式来配置IO口的功能。

根据具体的单片机型号和规格,硬件配置方法可能会有所不同。

一般来说,可以通过连接跳线和选择器等方式将特定的引脚配置为IO口,并设置相应的电平逻辑,以实现输入输出功能。

2. 软件配置软件配置是通过单片机内部的寄存器来配置IO口的功能。

可以通过写入特定的数值或位操作来设置IO口的输入输出状态、电平逻辑和控制方式等。

通常,可以使用特定的编程语言或软件工具来实现软件配置。

三、IO口的操作技巧1. 输入操作当将IO口配置为输入状态时,可以使用读取寄存器的方式来获取外部设备传递的数据。

读取寄存器时需要注意数据的有效性和稳定性,可采用轮询、中断等方式进行读取。

2. 输出操作当将IO口配置为输出状态时,可以使用写入寄存器的方式将特定的数据发送至外部设备。

输出操作需要注意数据的正确性和稳定性,可以通过设置特定的输出保护电路来防止因输出电流过大而引起的电源电流波动等问题。

3. 状态检测与改变IO口的状态检测和改变可以通过读取和写入寄存器来实现。

当需要检测IO口的当前状态时,可以通过读取相应的寄存器来获取IO口的电平状态。

而当需要改变IO口的状态时,可以通过修改寄存器的数值或位操作来改变IO口的电平状态。

四、常见问题与解决方法1. 输入输出电平不稳定当IO口输入输出电平不稳定时,可能会导致外部设备无法正常工作。

io口复用原理

io口复用原理

io口复用原理
I/O 口复用原理是指在电子设备中,通过硬件或软件的方式,将一个I/O 端口用于多种不同的功能或通信协议。

I/O 口复用的原理基于以下几个方面:
1. 功能复用:通过复用I/O 口,可以在不同的时间或条件下,将其配置为不同的功能。

例如,一个I/O 口可以在某些时候作为输入端口,用于读取传感器数据,而在其他时候作为输出端口,用于控制外部设备。

2. 通信协议复用:I/O 口还可以复用为支持多种通信协议的端口。

例如,一个USB 接口可以通过复用支持多种USB 协议,如USB 2.0、USB
3.0 等。

3. 时间复用:通过时分复用(TDMA)或轮询的方式,可以在不同的时间段内将I/O 口分配给不同的功能或通信协议。

这样可以实现多个功能或协议共享同一个I/O 口。

4. 引脚复用:在一些集成电路中,I/O 引脚可以通过内部寄存器或配置选项进行复用。

通过设置相应的寄存器或选项,可以将一个引脚配置为不同的功能,如输入、输出、UART、SPI 等。

I/O 口复用的优势包括减少硬件成本、降低系统复杂度、提高系统灵活性和可扩展性等。

通过复用I/O 口,可以充分利用有限的引脚资源,实现更多的功能和通信协议。

单片机IO口复用

单片机IO口复用
TH0 = (65536-1000)/256; TL0 = (65536-1000)%256; TR0 = 1; }
void Key_Dispaly_Driver() //按键检测和数码管显示放一起 {
static uint8 num=0; //顺序扫描 static uint8 Key1TimeCont=0;//key1 去抖延时计数 static uint8 Key2TimeCont=0;//key2 去抖延时计数 static uint8 Key3TimeCont=0;//key3 去抖延时计数 static uint8 Key4TimeCont=0;//key4 去抖延时计数 static uint8 KeyLock=0;
结束语:上面程序有些已经注释了,本人也是看到公司的一个蒸汽流量计的显示电路就是用 此电路来实现数码管和按键公用 IO 口。所以自己就编了个程序来实现其键盘和显示的功能, 如有不对的地方,还望指正。本人是菜鸟,一直很喜欢电子,虽然现在从事的不是这方面的 工作。
void Key_Dispaly_Driver();
void Timer0_Init() {
TMOD |= 0x01; TH0 = (65536-1000)/256; TL0 = (65536-1000)%256; EA = 1; ET0 = 1; TR0 = 1; }
//定时 1ms
void main() {
P0 = 0xFD;
break;
case 4:
SEG_C = 0;
P0 = Tab[SegShow3];
break;
case 5:
SEG_C = 1;
P0 = 0xFB;
break;
case 6:
SEG_D = 0;

第五章 IO端口、输入捕捉

第五章   IO端口、输入捕捉
• 注: 为了将PORTB 引脚用作数字I/O,ADPCFG 寄 存器中的相应位必须置为“1”(即使关闭了A/D 模块 也应如此)。
• 图5-2: 共用的端口结构框图
• 5.3.1 I/O 与多个外设复用
• 对于有些dsPIC30F 器件,尤其是那些带有少量 I/O 引脚数较少的器件,其每个I/O 引脚可能要 复用多种外设功能。图5-2 所示为两个外设与同 一个I/O 引脚复用的示例。
• 和TRISx 寄存器以及该端口引脚将读作0
5.3 外设复用
• 当某个外设使能时,与其相关的引脚将被禁止作为通 用I/O 引脚使用。可以通过输入数据路径读该I/O 引脚, 但该I/O 端口位的输出驱动器将被禁止。
• 与另一个外设共用一个引脚的I/O 端口总是服从于该外 设。外设的输出缓冲器数据和控制信号提供给一对多 路开关。该多路开关选择是外设还是相关的端口拥有 输出数据的所有权以及I/O 引脚的控制信号。图11-2 显示了端口如何与其他外设共用,以及与外设连接的 相关I/O 引脚。
• 参照图5-2,外设多路开关的结构将决定外设输 入引脚是否可以通过使用PORT 寄存器用软件控 制。
• 当图中所示的概念化的外设在功能被使能时,会断开 I/O 引脚与端口数据的连接。一般而言,下列外设允许 通过PORT 寄存器手动控制它们的输入引脚:
• 外部中断引脚 • 定时器时钟输入引脚 • 输入捕捉引脚 • PWM 故障引脚 • 大多数串行通信外设在使能时,将完全控作0 • bit 13 ICSIDL:输入捕捉模块在空闲时停止控制位 • 1 = 输入捕捉模块在CPU 空闲模式将停止 • 0 = 输入捕捉模块在CPU 空闲模式将继续工作 • bit 12-8 未用:读作0 • bit 7 ICTMR:输入捕捉定时器选择位 • 1 = 捕捉事件时捕捉TMR2 的内容 • 0 = 捕捉事件时捕捉TMR3 的内容 • 注: 可供选择的定时器可能会和上述不同。 更多详细

嵌入式系统设计(基于ST32F4) 课件 5 GPIO结构及应用

嵌入式系统设计(基于ST32F4) 课件    5 GPIO结构及应用

嵌入式系统设计
电子信息与计算机工程系 成都理工大学工程技术学院
5.3 GPIO典型应用步骤及常用库函数
5.3.2 GPIO常用函数
头文件:stm32f4xx_gpio.h 源文件:stm32f4xx_gpio.c
1、1个初始化函数:
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
5.3 GPIO典型应用步骤及常用库函数
嵌入式系统设计
电子信息与计算机工程系 成都理工大学工程技术学院
5.3 GPIO典型应用步骤及常用库函数
5.3.1 GPIO典型应用步骤
使用库函数实现片上外设的控制,一般需要以下几步:
1、使能相应片上外设的时钟(非常重要),设计到的文件有
头文件:stm32f4xx_rcc.h 源文件:stm32f4xx_rcc.c 使用的主要函数:
每个GPIO有16个引脚,每个引脚都可以单独配置。
嵌入式系统设计
电子信息与计算机工程系 成都理工大学工程技术学院
5.1 GPIO 结构原理
1. GPIO 功能描述
根据应用需求,可通过软件将通用I/O (GPIO) 端口对应的各个引脚位分 别配置为多种模式: ● 输入浮空-上电默认模式 ● 输入上拉 ● 输入下拉 ● 模拟功能 ● 具有上拉或下拉功能的开漏输出 ● 具有上拉或下拉功能的推挽输出 ● 具有上拉或下拉功能的复用功能推挽 ● 具有上拉或下拉功能的复用功能开漏
嵌入式系统设计
电子信息与计算机工程系 成都理工大学工程技术学院
5.2 GPIO相关寄存器
嵌入式系统设计
电子信息与计算机工程系 成都理工大学工程技术学院

单片机IO口介绍

单片机IO口介绍

单片机IO口介绍单片机(microcontroller)是一种集成电路芯片,具有运算、存储和控制功能。

它是嵌入式系统中最常用的处理器之一、在单片机中,IO (Input/Output)口是用来进行输入输出操作的接口。

IO口通常包括数字IO口和模拟IO口两种类型。

下面将详细介绍单片机IO口的功能和应用。

1.数字IO口:数字IO口是单片机与外部设备进行数字信号交换的接口。

数字IO口可以进行输入和输出操作,具有以下特点:-输入功能:可以通过读取外部设备的状态或信号,并将其转换为数字信号输入到单片机中进行处理。

例如,传感器的信号输入和按键的输入等。

-输出功能:可以通过将数字信号输出到外部设备,控制其工作状态。

例如,LED的控制、驱动电机或继电器等。

数字IO口通常以引脚(pin)的形式存在于单片机芯片上。

一个引脚包括输入端和输出端,可以根据需要进行配置。

数字IO口操作简单、速度快、精度高,常用于控制和通信等方面。

2.模拟IO口:模拟IO口是单片机与外部设备进行模拟信号交换的接口。

模拟IO口可以进行模拟输入和输出操作,常用于采集和控制模拟信号。

-模拟输入功能:可以从外部信号源中获取模拟信号,并将其转换为数字信号输入到单片机中进行处理。

例如,温度传感器、声音传感器等。

-模拟输出功能:可以将数字信号转换为模拟电压、电流等形式,输出到外部设备中。

例如,通过PWM(脉冲宽度调制)信号控制电机的转速。

模拟IO口通常通过ADC(模数转换器)和DAC(数模转换器)实现。

ADC将模拟信号转换为数字信号,DAC将数字信号转换为模拟信号。

模拟IO口的使用相对复杂,需要进行模数转换和数模转换,但在一些需要对模拟信号进行处理和控制的应用中起到关键作用。

3.应用场景:IO口在单片机系统中广泛应用于各种应用场景。

以下是一些常见的应用场景:-传感器接口:通过IO口连接传感器,读取传感器的输出信号,进行数据采集和处理。

例如温度、湿度、光照等传感器的接口。

很全的51单片机IO端口详解(带图)

很全的51单片机IO端口详解(带图)

80C51的I/O端口结构及应用特性一,I/O端口的结构1,锁存器加引脚的典型结构80C51的I/O端口都有内部总线实现操作控制。

P0-P3四个I/O 口都可以做普通I/O口,因此,要求具有输出锁存功能。

内部总线有事分时操作,因此每个I/O端口都有相应的锁存器。

然而I/O端口又是外部的输入/输出通道,必须有相应的引脚,故形成了I/O端口的锁存器加引脚的典型结构。

2,I/O口的复用功能(1)I/O口的总线复用。

80C51在使用并行总线扩展时,P0口可作为数据总线口和低8位地址总线口,这是,P0为三态双向口。

P0口输出总线的地址数据信号,P2口输出高8位地址信号。

(2)I/O口的功能复用。

I/O口的P3为功能复用的I/O端口。

端口有复用输出的控制端;引脚也有复用输入的控制端。

3,准双向结构P0,P1,P2,P3口做普通I/O口使用时,都是准双向口结构。

准双向口的典型结构见P1口位结构图。

准双向口的输入操作和输出操作本质不同,输入操作时读引脚状态;输出操作时对口锁存器的写入操作。

有口锁存器和引脚电路可知:当有内部总线对只1或只0时,锁存器的0、1状态立即反应到引脚上。

但是输入操作(读引脚)时,如果口锁存器的状态为0,引脚被嵌位在0状态,导致无法读出引脚的高电平输入。

二,I/O端口的应用特性1,引脚的自动识别。

无论P0,P2口的总线复用,还是P3口的功能复用,内部资源会自动选择,不需要通过指令的状态选择。

2,口锁存器的读、该、写操作。

许多涉及到I/O端口的操作,只是涉及口锁存器的读出、修改、写入的操作。

这些指令都是一些逻辑运算指令、置位/清除指令、条件转移指令以及将I/O口作为目的地址的操作指令。

3,读引脚的操作指令。

如果某个I/O口被指定为源操作数,则为读引脚的操作指令。

例如,执行MOV A,P1时,P1口的引脚状态传送到累加器中,执行MOV P1,A是,指令则将累加器的内容传送到P1口锁存器中。

4,准双向口的使用。

第5章 GPIO及其编程9

第5章 GPIO及其编程9
每个引脚的功能必须在启动主程序之前进行定义。如 果一个引脚没有使用复用功能,那么它可以配置为 I/O口。
注意:端口A除了作为功能口外,只能够作为输出口 使用。
大部分端口都是复用的,需要使用端口控制寄存器来决 定每个引脚使用哪个功能。
①端口控制寄存器(GPACON-GPHCON) : 定义引 脚的功能。 如果GPF0~GPF7和GPG0~GPG7用于 掉电模式的唤醒信号,它们必须被配置成中断模式。
rGPBDAT= rGPBDAT &(~ (1<<7)); //GPB7输出低电平,LED3亮
DelaySecond(x);
rGPBDAT= rGPBDAT | (1<<7); // GPB7输出高电平,LED3灭
rGPBDAT= rGPBDAT &(~ (1<<8)); //GPB8输出低电平,LED4亮
R1 R2 R3 R4
K1 K2 K3 K4
VDD33V
LED1
R5
LED2
R6
LED3
R7
LED4
R8
图8-2 按键与LED显示电路连接图
GPB5 GPB6 GPB7 GPB8
10
2. 通用I/O端口的程序设计
通用I/O端口的设计流程如下: ①确定使用的I/O端口是输入或输出功能。 ②根据1)配置相应端口的控制寄存器GPnCON,并 根据需要设置端口的上拉电阻寄存器GPnUP。 ③设置输出端口的初始值;根据程序的功能要求编写 程序。 程序设计如下:
②端口数据寄存器(GPADAT-GPHDAT): 用于IO 功能。如果端口被配置成输出端口,可以向GPnDAT 中的相关位写入数据;如果端口被配置成输入端口, 可以从GPnDAT中的相关位读入数据。

单片机教程单片机IO的使用

单片机教程单片机IO的使用

IO口的位操作
位设置
通过将某一位设置为1或0,可以 控制该位对应的硬件设备的工作
状态。
位清除
将某一位清零,通常用于关闭某个 硬件设备。
位反转
将某一位取反,实现硬件设备的状 态切换。
IO口的配置寄存器
1 2
配置寄存器的功能
配置寄存器用于设置IO口的模式、输出类型、输 出速度等参数,以满足不同的硬件设备控制需求。
按键输入
01
```c
02
void main() {
03
unsigned char keyState = 0; // 按键初始状态为未 按下
按键输入
while (1) {
if
(GPIO_ReadInputDataBit(GPIOx,
GPIO_Pin_x) == 0) { // 检测按键是否被按下
if (keyState == 0) { // 如果之前未按下,则进 入处理函数
特性。
02
LED灯的连接方式
LED灯通常与单片机的一个GPIO(通用输入输出)端口连接,通过控
制该GPIO端口的电平高低来控制LED灯的亮灭。
03
LED灯的控制代码
在单片机程序中,可以通过设置GPIO端口的寄存器值来控制LED灯的
亮灭,例如在C语言中,可以使用以下代码实现LED灯的闪烁
LED灯控制
• delay(1000);
LED灯控制
} } ```
按键输入
按键输入的原理
按键输入通常通过单片机的中断或轮询方式实现,当按键被按下时,会触发一个电平变化 或中断事件。
按键输入的连接方式
按键通常与单片机的一个GPIO端口连接,当按键被按下时,该GPIO端口的电平会发生跳 变。

第5.1节 通用输入输出口(GPIO)

第5.1节 通用输入输出口(GPIO)

电气信息类专业课程DSP原理及应用——跟我动手学TMS320F2833xDSP原理及应用第5.1节通用输入/输出口(GPIO)通用输入/输出口(GPIO)TMS320F2833x系列DSP包含多达88个独立可编程复用的GPIO口。

•引脚以它们的通用I/O名称来命名(GPIO0~GPIO87)。

这些引脚可以被单独地选为数字I/O进行操作,简称为GPIO;或者被连接到不超过三个外设I/O信号中的一个信号上(通过GPxMUXn寄存器)。

•如果引脚工作在数字I/O模式,可通过寄存器配置引脚方向(通过GPxDIR寄存器),也可以限制输入信号的脉宽以消除不必要的噪声(通过GPxQSELn、GPACTRL和GPBCTRL寄存器)。

•三组32位的输入/输出端口。

端口A包含GPIO0~GPIO31,端口B包含GPIO32~GPIO63,端口C包含GPIO64~GPIO87。

GPIO模式选择控制•引脚功能分配、输入信号限制和外部中断源(XINT1~XINT7,XNMI)都是由GPIO配置控制寄存器来控制的。

•可以分配引脚来将器件从HALT和STANDBY低功耗模式唤醒,也可以使能/禁用内部的上拉电阻功能。

GPxCTRL GPIOx限制控制寄存器GPxQSELn GPIOx限制选择寄存器nGPxMUXn GPIOx复用寄存器nGPxDIR GPIOx方向寄存器GPAPUD GPIOx上拉禁用寄存器GPIOXINTxSEL XINTx源选择寄存器GPIOXNMISEL XNMI源选择寄存器GPIOLPMSEL LPM唤醒源选择寄存器GPIO配置步骤•①规划引脚功能,即规划引脚作为通用输入或输出I/O口,或复用为特殊功能外设引脚。

•②使能或禁止内部上拉功能(通过配置GPxPUD相应位)。

•③对输入引脚进行限制(通过配置GPxCTRL、GPxQSELn)。

•④配置引脚的功能(通过配置GPxMUXn)。

•⑤对于通用数字I/O口,配置引脚的方向(通过配置GPxDIR)。

IO口

IO口

//让 P1.0输出高电平 GPIO_setOutputHighOnPin( MSP430_BASEADDRESS_PORT1_R__, GPIO_PORT_P1,GPIO_PIN0 ); //让 P1.0输出低电平 GPIO_setOutputLowOnPin ( MSP430_BASEADDRESS_PORT1_R, GPIO_PORT_P1,GPIO_PIN0 );
}
看门狗定时器
◆ 看门狗定时器,主要作用:
用于在“程序跑飞”时,WDT就会产生溢出,从而产生系 统复位,CPU需要重新运行用户程序,这样程序就可以又回 到正常运行状态。
◆ MSP430 看门狗模块具有以下特性:
8 种软件可选的定时时间 看门狗工作模式 定时器工作模式 带密码保护的 WDT 控制寄存器 时钟源可选择 为降低功耗,可停止 时钟失效保护
PxIES的配置: Bit = 1: 下降沿使相应中断标志置位; Bit = 0: 上升沿使相应中断标志置位。
12

PxIFG 中断标志寄存器(仅中断端口P1和P2)
该寄存器用来表示对应引脚是否产生了由PxIES设定 的电平跳变。
如果在GIE置位,引脚对应的中断使能寄存器PxIE位 置位,则会向CPU请求中断处理。
P1.0 LED 19

示例2--利用按键改变LED的亮灭,按键对应的 引脚配置为中断方式。
#include <msp430f6638.h> void main (void) { // 关闭看门狗 WDTCTL = WDTPW | WDTHOLD; P4DIR |= 0x08; // 选择P4.3为输出 P2DIR &= ~0x40; // 选择P2.6为输入 P2IE |= 0x40; // 使能P2.6中断 P2IES |= 0x40; // 选择P2.6为上升沿中断 // 进入低功耗,打开全局中断 _BIS_SR (LPM3_bits + GIE); VCC MSP430F6638

IO接口的作用功能定义标准版文档

IO接口的作用功能定义标准版文档

中断矢量 0003H 000BH 0013H 001BH 0023H 002BH
中断优先级 最高优先级
最低优先级
IP
(0B8H)


PT2 PS PT1 PX1 PT0 PX0
PX0/PX1:INT0/1优先级控制位: =0 时属低优先级; =1 时属高优先级。
PT0/PT1/PT2:T0/1/2中断优先级控制位: =0 时属低优先级; =1 时属高优先级。
1、线选寻址:用一条或几条地址线对外寻址
P2.7
MCS-51单片机 P2.5 P0口
P2.6
D7-0 /CE Q7-0
/CE AD7-0 A10 A9 A8 RAM (2K)
Q7-0 /CE D7-0
P2.5 做 RAM 片选线
(0000H—07FFH)
P2.2,P2.1,P2.0与P0口共同寻址 2K字节存储单元
二、CPU识别中断申请的依据C:PU识别中断申请的依据:
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
地2 数址据线的在输地入址/总输线出中传的送序方名式决C定P具体U地址在每个机器周期的S5P2期间,会自动查
询各个中断申请标志位,若查到某标志位被置
位,将启动中断机制。
TCON:Timer控制寄存器,是管理定时器工作的 SFR(其中低4位管外部中断)
数据协议/格式不同 所需功率/电平不匹配 所需测控点数量不匹配
二、接口与端口
本课程中讲到的接口可以是→器件→电路板卡 →设备/装置→ ……
口地址 → 可寻址的寄存器/端口 地址由选用的地址线条数与地址线名决定
地址线条数n决定:寻址范围 = 2n MCS-51寻址范围 = 216 = 65536 = 64K字节 地址线在地址总线中的序名决定具体地址 一个端口可能有多个口地址; 一个口地址只能唯一地指向某个端口。

第五章GPIO及外部中断的使用

第五章GPIO及外部中断的使用

功能描述
模拟输入 浮点输入 下拉输入 上拉输入 开漏输出 推挽输出 复用开漏输出 复用推挽输出
实例: 定义引脚PB0、PB1推挽输出,最大速率10MHz
GPIO_InitTypeDef GPIO_InitStructure;
//定义结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //开启GPIOB时 钟
第五章 GPIO及外部中断的使用
5.1 综述
STM32F10x系列端口:26、37、51、80、112个多功能 双向5V兼容的快速I/O口,所有I/O都可以映射到16个外部 中断。
STM32F10xxx系列中,每个通用I/O(GPIO)端口都有 7 个 寄 存 器 : 两 个 32 位 配 置 寄 存 器 ( GPIOx_CRL , GPIOx_CRH ) , 两 个 32 位 数 据 寄 存 器 ( GPIOx_IDR 和 GPIOx_ODR ) , 一 个 32 位 置 位 / 复 位 寄 存 器 ( GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR) 和一个32位锁存器(GPIOx_LCKP)。
5.2.1 函数GPIO_Init
3)GPIO_Mode 设置选中引脚的工作状态
GPIO_Mode可取值 GPIO_Mode_AIN GPIO_Mode_IN_FLOATING GPIO_Mode_IPD GPIO_Mode_IPU GPIO_Mode_Out_OD GPIO_Mode_Out_PP GPIO_Mode_AF_OD GPIO_Mode_AF_PP
返回值

先决条件 无
被调用函数 无
两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH)

单片机IO口介绍

单片机IO口介绍

单片机IO口介绍单片机(Microcontroller)是一种集成了微处理器、存储器和各种I/O接口的芯片。

其中,I/O口是单片机与外部设备进行数据交换的通道,它是单片机最重要的功能之一、本文将详细介绍单片机的I/O口。

一、I/O口的基本概念在单片机中,I/O口是单片机与外部设备进行数据交换的接口。

它通过I/O线与外部设备相连接,可以实现数据的输入和输出。

单片机的I/O口可以分为通用I/O口和特殊功能I/O口两种类型。

通用I/O口是单片机常用的一种I/O口,它可以通过软件编程实现不同的功能,包括数字输入、数字输出和模拟输入输出等。

通用I/O口可以根据实际需求进行设置,提供灵活的数据交换方式。

特殊功能I/O口是单片机固定的一些特殊功能接口,通常用于特定的应用,如定时器、比较器、串行通信等。

特殊功能I/O口具有特殊的功能和特殊的操作要求,需要根据具体的应用进行设置。

二、通用I/O口的工作原理通用I/O口是单片机最常用的一种I/O口,它可以通过软件编程实现不同的功能。

通用I/O口的工作原理如下:1.输入模式:通用I/O口可以设置为输入模式,接收来自外部设备的输入信号。

在输入模式下,通用I/O口通常通过上拉或下拉电阻来实现输入的稳定性,并通过软件读取输入信号的状态。

2.输出模式:通用I/O口可以设置为输出模式,向外部设备输出信号。

在输出模式下,通用I/O口可以输出高电平或低电平信号,并通过软件控制输出的状态。

通用I/O口的状态可以通过软件进行设置和读取,可以实现灵活的数据交换。

通用I/O口的应用非常广泛,可以用于控制开关、驱动显示、读取按键等。

三、特殊功能I/O口的工作原理特殊功能I/O口是单片机固定的一些特殊功能接口,通常用于特定的应用。

特殊功能I/O口具有特殊的功能和特殊的操作要求,需要根据具体的应用进行设置。

下面介绍一些常见的特殊功能I/O口。

1.定时器/计数器:定时器/计数器是特殊功能I/O口中最常用的一个。

第五章 通用输入输出端口(GPIO)

第五章 通用输入输出端口(GPIO)

0x0000 70C1 1
GPAQUAL 0x0000 70C2 1
GPBMUX
0x0000 70C4 1
GPBDIR
0x0000 70C5 1
GPBQUAL 0x0000 70C6 1
GPDMUX
0x0000 70CC 1
GPDDIR
0x0000 70CD 1
GPDQUAL 0x0000 70CE 1
while(1) {
GpioDataRegs.GPASET.all =0xAAAA; GpioDataRegs.GPACLEAR.all =0x5555; delay_loop(); GpioDataRegs.GPACLEAR.all =0xAAAA; GpioDataRegs.GPASET.all =0x5555;
while(1)
{ GpioDataRegs.GPADAT.all =0xAAAA; delay_loop();
GpioDataRegs.GPADAT.all delay_loop(); } }
=0x5555;
使用SET/CLEAR寄存器反转触发I/O引脚
void Gpio_example2(void) {
端口设置
void Gpio_select(void)
{
Uint16 var1;
Uint16 var2;
Uint16 var3;
var1= 0x0000;
// sets GPIO Muxs as I/Os
var2= 0xFFFF;
// sets GPIO DIR as outputs
var3= 0x0000;
//所有中断,标志清零。
IER = 0x0000; //关闭CPU中断,清除所有CPU中断标志;

第五章通用和复用功能IO口

第五章通用和复用功能IO口

第五章通用和复用功能IO口1.引言通用和复用功能IO口是现代数字电路设计中的重要组成部分。

它们允许电路与外部设备进行通信和控制,实现数据的输入、输出和处理。

在本章中,我们将介绍通用和复用功能IO口的基本原理和应用。

通用功能IO口是一种通用的输入/输出接口,可以通过软件来配置不同的功能。

它可以被用作输入口,用来读取外部设备的状态;也可以被用作输出口,用来控制外部设备的运行。

通用功能IO口通常由一组引脚组成,每个引脚都可以配置为不同的功能。

通过编程的方式,我们可以根据需要来选择引脚的功能,并进行相应的输入和输出操作。

复用功能IO口是一种多功能的输入/输出接口,可以通过硬件设置来选择不同的功能。

它通常由一个多路器和多个外设模块组成。

多路器的作用是选择不同的外设模块进行连接,从而实现不同的输入和输出功能。

使用复用功能IO口,可以有效地减少芯片上的引脚数量,提高系统的可扩展性和灵活性。

4.通用功能IO口的应用通用功能IO口广泛应用于各种数字电路设计中。

它可以连接各种外设设备,如按钮、开关、传感器、LED灯等。

通过编程的方式,我们可以读取外设的状态,并根据需要来控制外设的运行。

通用功能IO口还可以连接到其他数字电路中,实现数据的输入、输出和处理。

例如,它可以与存储器、处理器、通信接口等进行连接,实现数据的存储、处理和传输。

5.复用功能IO口的应用复用功能IO口广泛应用于嵌入式系统和通信系统中。

它可以连接各种外设设备,如显示器、触摸屏、以太网接口、USB接口等。

通过硬件设置,我们可以选择不同的外设模块进行连接,并根据需要来实现不同的输入和输出功能。

复用功能IO口还可以连接到其他模块中,实现数据的传输和处理。

例如,它可以与显示模块、通信模块等进行连接,实现图形的显示、数据的传输等。

6.小结通用和复用功能IO口是现代数字电路设计中的重要组成部分。

它们允许电路与外部设备进行通信和控制,实现数据的输入、输出和处理。

通过软件和硬件的配置,我们可以选择引脚的功能,并进行相应的输入和输出操作。

IO口基本结构及应用一数码管显课件

IO口基本结构及应用一数码管显课件
I/O端口的输入输出特性
❖AT89C52有32根输入/输出线,组成4个8位并 行 输 入 / 输 出 接 口 , 分 别 称 为 P0 口 、 P1 口 、 P2口和P3口。这4个接口可以并行输入或输 出8位数据;也可按位使用,即每一根输入/输 出线都能独立地用作输入或输出。
❖每个端口都由锁存器、输出驱动器、输入缓 冲器组成。
fgb
e
c
d
dp c om c om
L N3161AS
6
1
共阴
共阳
6
1
L N3161BS c om c omLeabharlann afgbe
c
d
dp
a b c d e f g dp
2
2
3
3
7
7
a
b
c
d
e
f
g
dp
com com
a
b
c
d
e
f
g
dp
IO口基本结构及应用一—数码管显
10
四联数码管结构
这里每一个数码管的段 码A—F是连接在一起 的,每个数码管的公共 端是独立的。
I/O端口的结构——P0口
❖P0口有两种功能——地址/数据分时复用总线 和通用I/O接口
IO口基本结构及应用一—数码管显
I/O端口的结构——P2口
❖P2口有两种功能——通用输入输出接口和地 址总线
IO口基本结构及应用一—数码管显
I/O口的基本应用
在89系列单片机的应用中,通常要进行信息显示, 而显示器件大多是采用LED数码管或LCD。对LED和 LCD器件来说,它们的接口方法是不同的。因为 LED—般所需的电流较大。而且,对于数码管显示器 而言,在显示时要求给出和显示数字对应的7段或8段 显示码;对于LCD器件来说,现在已经配置了专门的 驱动电器,在进行信息显示时,往往把信息写入驱动 电路的存储器中。由于存储器和LCD显示屏是一种映 射关系,故只要写入其存储器的信息适当,则可以在 LCD中显示出对应的正确信息。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3)设置GPIO输出高低电
平控制LED灯的亮灭
举例说明,分析流水灯例程—了解库开发流程
要实现功能
选定与LED硬件 相连的引脚
选定GPIO的 特定功能
控制LED亮灭
相应状态
PD6\PD3 输出功能 设置GPIO引脚 电平的高低
对应的寄存器 配置
引脚在D上, 选择x=d
配置寄存器 GPIOx-CRL
设置数据寄 存器
举例说明,分析流水灯例程—了解库开发流程
3、编写用户文件 (1)初始化库函数 GPIO_Init
在这个函数内部,把输入的这些参数按照一定 的规则转化,进而写入寄存器,实现了配置GPIO端口 的功能
举例说明,分析流水灯例程—了解库开发流程
3、编写用户文件 (2)控制I/O口高低电平 GPIO_SetBits 置1,led亮 GPIO_ResetBits
举例说明,分析流水灯例程—了解库开发流程
3、编写用户文件 (3)led.h头文件 (4)main文件分析
举例说明,分析流水灯例程—了解库开发流程
4、总结
1)为了控制led,要使用GPIO外设 2)了解GPIO外设的功能,如何使用 3)知道GPIO的地址映射,挂载在APB2 4)了解ST官方库对寄存器的封装 5)了解时钟树,查看GPIOC时钟来源,PCLK2 6)在stm32f10x_conf.h文件中用到的头文件stm32f10x_gpio.h 和stm32f10x_rcc.h 7)添加用户文件led.c文件 8)编写驱动初始化函数LED_GPIO_Config(void)
#define PERIPH_BASE
(APB2PERIPH_BASE + 0x0800) (APB2PERIPH_BASE + 0x0C00) (APB2PERIPH_BASE + 0x1000) (APB2PERIPH_BASE + 0x1400)
((uint32_t)0x40000000)
举例说明,分析流水灯例程—了解库开发流程
第五章 通用和复用功能I/O
5.1 GPIO的工作原理
一、引脚介绍 二、STM32 GPIO主要功能 三、IO口的基本结构
5.2 编程举例
5.3 GPIO复用功能
一、引脚介绍
5.1 GPIO的工作原理
通用IO口,又称为GPIO(General-Purpose IO ports )CPU的一个接口模块,为一些协议比较简 单的外部设备/电路提供了一种控制手段。
举例说明,分析流水灯例程—了解库开发流程
2、STM32时钟设置 在startup_stm32f10x_hd.s中运行systemInit(), 这个函数定义在system_stm32f10x.c,他的作用是设 置系统时钟, 之后调用SetSysClock( )设置具体的系统时钟
举例说明,分析流水灯例程—了解库开发流程
1地址映射 stm32f10x.h
#define GPIOD_BASE
(APB2PERIPH_BASE + 0x1400)
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define PERIPH_BASE
((uint32_t)0x40000000)
#define GPIOA_BASE #define GPIOB_BASE #define GPIOC_BASE #define GPIOD_BASE
ቤተ መጻሕፍቲ ባይዱ
PE口 16脚
PC口 16脚
PA口 16脚
PD口 16脚
PB口 16脚
STM32F103包含5个端口: PA口 、PB口、PC口、 PD口、 PE口。
一、引脚介绍:以STM32F103VET6为例 5.1 GPIO的工作原理
补充举例说明,分析流水灯例程—了解库开发流 程
1)选择GPIO端口
2)选择GPIO端口功能
➢ 多数GPIO管脚都与数字或模拟的外设共用。所有 的GPIO管脚都有大电流通过能力。
➢ 在需要的情况下,I/O管脚的外设功能可以通过一 个特定的操作锁定,以避免意外的写入I/O寄存器 。
➢ 在APB2上的I/O脚提供高达18MHz的翻转速度。
一、引脚介绍:以STM32F103x为例
5.1 GPIO的工作原理
3、编写用户文件 配置gpio口的相关操作:初始化结构体 库函数
GPIO_InitTypeDef GPIO_InitStructure; typedef struct 库文件利用关键字typedef定义的新类型 { uint16_t GPIO_Pin; GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode; }GPIO_InitTypeDef;
STM32单片机 最多有7个16位的并行 I/O端口:PA、 PB、PC、PD、PE、PF、PG。
STM32F103单片机 只有5个16位的并行 I/O端口:PA、 PB、PC、PD、PE。(实验板型号:TM32F103VET6)
一、引脚介绍
➢ 每个GPIO管脚都可以由软件配置成输出(推拉或开 路)、输入(带或不带上拉或下拉)或其它的外设功能 口。
1地址映射
STM32固件库对寄存器的封装
#define GPIOA
((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOB
((GPIO_TypeDef *) GPIOB_BASE)
#define GPIOC
((GPIO_TypeDef *) GPIOC_BASE)
#define GPIOD
寄存器操作 int main(void) {
GPIOB->CRL=0x3<<20; //配置PB5为推挽输出,50MHZ
while(1) { GPIOB->ODR=0x0; Delay(0xAFFFF); GPIOB->ODR=0x20; Delay(0xAFFFF); } }
举例说明,分析流水灯例程—了解库开发流程
((GPIO_TypeDef *) GPIOD_BASE)
#define GPIOE
((GPIO_TypeDef *) GPIOE_BASE)
typedef struct {
__IO uint32_t CRL;-----0x00 __IO uint32_t CRH;-----0x04 __IO uint32_t IDR;------0x08 __IO uint32_t ODR; __IO uint32_t BSRR; __IO uint32_t BRR; __IO uint32_t LCKR; } GPIO_TypeDef;
相关文档
最新文档