技术文档

单片机的输入模式 单片机学习:如何将GPIO口配置为上拉,下拉输入

小编 2025-08-08 技术文档 23 0

单片机学习:如何将GPIO口配置为上拉、下拉输入

1.什么是上拉电阻

在学习单片机的时候,我们经常遇到一组名词:上拉电阻和下拉电阻,通过学习我们知道上下拉电阻不仅能使当前电平稳定避免受到干扰,同时上拉电阻还能提高单片机的驱动能力。

阅读扩展:什么是单片机的上拉电阻?点击阅读。

2. 上拉电阻的几个典型应用

在使用中,用到上拉电阻的场合有这么几个典型:

按键输入检测;

IIC通讯;

通常,我们都习惯这样设计按键:按键按下时单片机检测到低电平,按键松开时检测到高电平,这个高电平就是通过上拉电阻实现的:

IIC是一种通讯方式,只需要通过SCL和SDA即可实现数据的传输,在典型的IIC器件手册上都会发现SCL和SDA引脚上,都会推荐接上拉电阻:

3. 如何配置为上拉输入模式

如果在设计硬件电路的时候,忘记了设计上下拉电阻,该怎么办呢?别着急,

32位的单片机,其GPIO口基本上都配有内部上下拉电阻,通过寄存器控制,可以将某个引脚设置为上下拉模式:

以STM32单片机为例。STM32单片机的每个GPIO口都可以独立设置为上拉或者下拉输入模式。

在将GPIO口设置为输入模式后,只需要将对应端口的PXODR设置为1即配置为上拉输入,将PXODR设置为0即配置为下拉输入。

如下是将STM32单片机的PA15设置为上拉输入模式的程序:

Altium Designer 专题:

Altium Designer 有批量自动分组摆放元器件的方法,点击查看。

Altium Designer PCB设计技巧之|如何根据电路板尺寸确定背景形状,点击查看。

PCB设计技巧|布板时如何批量隐藏/显示元器件标号,点击查看。

想要获取更多电子设计资料、单片机学习资料,请在百度搜索“振兴网”,搜索结果中点击第一条链接进入网站即可。

本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。

公众号:玩转嵌入式。嵌入式学习网振兴网:www.picmcu.com

51单片机简单的输入输出(LED和按键)

IO输出与输入 是单片机编程最基本的逻辑控制操作,我们以N76E003为例讲解最基本的编程。

如上图,P15为IO输出,输出高电平时,LED灯亮,输出低电平时,LED灭。

P04作为输入,因为没有外部上拉,所以此处需要配置为内部上拉,配置为准双向模式,并且使能内部上拉。测试时用杜邦线将P04短接到GND模拟按键触发(P04引脚低电平时),不短接到GND就是高电平,不触发。

当P04为低电平时,LED亮;当P04为高电平时,LED灭。通过简单的例程来测试输入输出控制。

#include "N76E003.h"

#include "Function_define.h"

#include "SFR_Macro.h"

#define LEDP15//高电平亮

#define KEYP04//按键,按下为低电平

void main(void)

{

/*设置P15为输出推挽模式 */

P15_PushPull_Mode;

/* 默认灯灭*/

P15 = 0;

/* 设置P04为准双向模式 */

P04_Quasi_Mode;

/*并且输出高电平,打开内部上拉功能 */

P04 = 1;

while(1)

{

/* 如果按键按下,点亮LED灯*/

if(KEY == 0)

{

LED = 1;

}

/* 否则熄灭LED */

else

{

LED = 0;

}

}

}

视频加载中...

以上的按键采用查询的方式,在主循环里每次循环都去扫描下P04的电平状态。

我们都知道,输入触发还可以通过中断事件来捕获,那么该怎么配置IO输入中断呢?同样我们以P04被拉低作为触发条件(从高电平到低电平,下降沿触发),当触发中断时,LED亮灭切换。

#include "typedef.h"

#include "N76E003.h"

#include "Function_define.h"

#include "SFR_Macro.h"

#define LEDP15//高电平亮

#define KEYP04//按键,按下为低电平

void PinInterrupt_ISR (void) interrupt 7

{

if(PIF == (1<<4))/* Pin4 */

{

LED = !LED;/* LED控制取反*/

}

PIF = 0x00; /* 清除中断标志 */

}

void main(void)

{

P15_PushPull_Mode;/*设置P15为输出推挽模式 */

LED = 0;/* 默认灯灭*/

P04_Quasi_Mode;/* 设置P04为准双向模式 */

P04 = 1;/*并且输出高电平,打开内部上拉功能 */

Enable_INT_Port0;/*配置P0端口 中断*/

Enable_BIT4_FallEdge_Trig;/*下降沿触发*/

PIF = 0;/* 清除中断标志*/

set_EPI;/* 使能IO输入中断*/

set_EA;/* 使能总中断 */

while(1)

{

}

}

在新唐003芯片,输入中断这里,所有IO输入中断都共享一个中断入口 。进入中断里再判断是哪一个引脚触发的。

另外,不得不说,新唐挖了个坑,同一时刻 只能有一个端口使能中断 ,要么P0口,要么P1口,或者P2.0/P3.0引脚。所以在设计电路时特别要注意,不要将用于中断的IO布置在不同端口(输入中断唤醒功能在低功耗应用时经常用到)。切记,切记,切记!

还有P20引脚只能用作输入,并且是与RST外部复位复用的,使用时要先配置,使用时当心。

(END)

感谢观看

相关问答

单片机的输入 和输出的都是什么?

单片机的输入和输出的是因为它的输出结构类似于推挽结构,它是一种由两个三极管(或者其他管等)分别受到一个信号的控制,这信号的互补的,就是说只有一个三极管...

单片机 IO 输入模式 口悬空时干扰?

到底怎么回事,低电平时正常工作,高电平时也被判断成了低电平,加上拉电阻加电容都可解决问题,也可软件上采取些措施,像按键消抖一样到底怎么回事,低电平时正常...

单片机 有几个 输入 输出接口?

单片机通常具有多个输入输出接口,具体数量取决于单片机的型号和规格。常见的单片机如8051、AVR、PIC等,一般都具有多个通用输入输出引脚,可以用于连接外部设备...

如何判别一款 单片机的 哪些脚是 输入 、输出模拟信号的,哪些是 输入 、输出数字信号的?

任何一个芯片都会有对应的引脚图纸的,别人是没法知道的,只有看厂家提供的图纸连续的信号叫模拟信号,不连续的信号叫数字信号方波即高低电平,是数字信号,正...

单片机 有几个 输入 输出接口,分别叫什么?

经典51系列的I/O口(输入输出接口)一般是四组,分别P0~P3,其中每组8个端,如P0.0~P0.7。(具体的你可以查相应的器件手册)经典51系列的I/O口(输入输出接口)一般...

单片机的 I/O接口能 输入 或输出模拟信号吗? - 鬼皇一号 的回答...

单片机的I/O接口,如果该I/O口有AD功能就可以,以模拟量信号输入,如果该I/O口有PWM功能就可以,以PWM调制信号输出,或者通过滤波以模拟量信号输出,现在...

单片机 中集成了 输入 设备吗?

是。单片机主要是指以超大规模集成电路作为主要的核心以及基础,将输入数据处理、定时计数等多个功能进行相互的融合,共同的集成与电路芯片之上,从而构建起高...

51 单片机 引脚 输入 设置?

根据51引脚的定义,对该引脚置1,可以作为输入使用。而51单片机的所有IO引脚,在启动后默认都是1。因此,如之前没有对此引脚进行过置0操作的话,可以直接读该引...

接近开关如何接入 单片机的输入 口?

接近开关可以通过以下方式接入单片机的输入口:1.接近开关可以通过将其输出信号连接到单片机的输入口来实现与单片机的通信。2.接近开关通常是通过输出一个电平...

单片机 在进行程序文件 输入 时需要注意哪些?

检查单片机是否正常工作,按如下方法进行。1.确定单片机供电正常,不同的单片机供电是不同的。2.确定晶振是否正常工作,可以用示波器观测相应引脚,看有没有...

猜你喜欢