51单片机——GPIO 中断 定时器 PWM

一、GPIO概念与输入输出的分类

概念:Genral Purpose Input Output,通用输入输出,是与外界交互最基本的形式,可以独立的将

引脚配置为输入模式/输出模式。

分类:输出模式:控制引脚输出高电平/低电平(给定控制信号)

名称 功能
开漏输出 通过 PMOS 上拉管和 NMOS 下拉管交替导通,直接输出高低电平,驱动能力强
推挽输出 仅由 NMOS 下拉管构成,低电平直接导通,高电平需外接上拉电阻,支持线与功能。
复用开漏 引脚功能归属外设(如串口、SPI),由外设控制推挽结构输出对应电平信号
复用推挽 引脚功能归属外设,由外设控制开漏结构工作,高电平需依赖外部上拉电阻实现。

输入模式:检测引脚的电平(接收外部信号)

| 名称 | 功能 |
| 上拉输入 | 引脚内部接入上拉电阻,无外部信号时默认读取高电平,适配开关、按键等输入场景。 |
| 下拉输入 | 引脚内部接入下拉电阻,无外部信号时默认读取低电平,防止引脚悬空引入干扰。 |
| 浮空输入 | 引脚内部无上下拉电阻,电平状态完全由外部输入决定,多用于精准的外部信号采集。 |

模拟输入 引脚关闭数字电路,直接连接 ADC 采样模块,用于接收和转换连续变化的模拟电压信号。

二、独立按键

2.1原理图

2.2工作原理

采用上拉输入模式的按键电路,按键未按下时引脚默认高电平,按下时引脚与 GND 短路变为低电平,程序只需检测引脚是否为低电平即可判断按键是否按下

三、中断

3.1中断的概念

当CPU正在执行某个任务的时候,此时外界发生了一个紧急的事件,要求CPU能够暂停当前的任务,转而去执行这个更为紧急的事件,执行完这个紧急事件再回到刚才被打断的地方,继续执行,这个过程叫做中断。

3.2中断源

能够打断CPU执行当前任务的源头/事件

3.3中断的分类

外部中断:引脚电平的变化所引发的中断。

功能名称 对应引脚 功能说明
外部中断0 P32 低电平 / 下降沿触发中断
外部中断1 P33 低电平 / 下降沿触发中断,同 INT0 按键应用逻辑
定时器0 P34 定时器 / 计数器功能引脚,纯定时使用时无需外部接线
定时器1 P35 定时器 / 计数器功能引脚,串口波特率发生器常用,纯定时无需外部接线
串口通信 发送端 TX:P31 接收端 RX:P30 单片机串口收发核心引脚,一收一发完成串口数据通信

3.4 中断优先级

当CPU在执行一个任务的时候,此时可能有多个中断源同时发起中断请求,此时CPU

比较中断源的优先级,优先处理优先级高的中断

3.5中断嵌套

CPU在处理一个中断任务的时候,再去嵌套另外的一个中断任务(51单片机中最多允

许嵌套两层)

3.6中断处理流程

  • 中断源发出中断请求
  • 检查CPU是否允许中断及该中断源是否被屏蔽
  • 比较中断优先级
  • 保护现场
  • 执行中断处理函数(回调函数)
  • 恢复现场

3.7中断相关寄存器

(1)中断允许寄存器 IE寄存器

EA:

  • 置1:代表CPU允许所有中断请求
  • 置0:代表CPU屏蔽所有的中断请求

EX0:

  • 置1:允许外部中断0产生中断
  • 置0:禁止外部中断0产生中断

(2)定时器/计数器终端控制寄存器TCON寄存器

ITO:

  • 置1:代表外部中断0引脚(P32引脚)下降沿触发中断
  • 置0:代表外部中断0引脚(P32引脚)低电平触发中断

四、定时器

4.1定时器概念

  • 产生精准时间,不同外设对时间要求是精准的
  • 51单片机中有两个定时器,分别是Timer0和Timer1,是自增型定时器

4.2定时器工作原理

定时器内部有个16位的计数器,给定计数器一个初值,会按照1us的速率进行自增,加到65535溢出时向CPU发起中断请求,CPU响应定时器中断并执行中断处理函数

4.3定时寄存器

  • 将TMOD寄存器中的低4位清0
  • 将M0置1,M1清0,代表定时器0工作在16位定时器模式下

4.4 TCON定时控制寄存器

将TCON寄存器中的TR0这一位置1,代表打开定时器,开始计数。

将IE寄存器中的bit7和bit1置1,代表允许CPU响应所有中断 + 允许定时器0产生中断。

五、PWM

定义:脉冲宽度调制,能够让引脚产生一个方波,让引脚电平周期性的翻转。

周期:一个方波所经历的周期(从上升沿/下降沿到下一个上升沿/下降沿所经历的时间)。

占空比:高电平在一个PWM周期内所占的比例。

六、蜂鸣器

原理图

震荡源 声音(波)-> 音调 -> 波的频率发生了变化 -> 高音 (高频) 低音(低频)-> 音量 -> 振幅能量大小

  • 有源蜂鸣器:有源蜂鸣器内部有震荡源,上电后会持续发出一个固定频率的声音
  • 无源蜂鸣器:无源蜂鸣器内部没有震荡源,需要给定蜂鸣器一个震荡
相关推荐
代码游侠2 小时前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法
czhaii2 小时前
STC32G.H中文注释各寄存器特殊功能寄存器作用
单片机·嵌入式硬件
码农三叔2 小时前
(9-3)电源管理与能源系统:充电与扩展能源方案
人工智能·嵌入式硬件·机器人·能源·人形机器人
集芯微电科技有限公司2 小时前
15V/2A同步开关型降压单节/双节锂电池充电管理IC支持输入适配器 DPM 功能
c语言·开发语言·stm32·单片机·嵌入式硬件·电脑
零一iTEM3 小时前
TPS61088大功率升压模块
嵌入式硬件·硬件工程·学习方法
MAR-Sky3 小时前
ws2812幻彩灯珠使用stc/AI8G1K08控制
单片机·嵌入式硬件
宵时待雨3 小时前
STM32笔记归纳7:EXTI
笔记·stm32·单片机·嵌入式硬件
古译汉书4 小时前
部分.exe文件打开但是一直显示界面,点击任务栏持续无反应
开发语言·单片机·嵌入式硬件
恒锐丰小吕5 小时前
屹晶微 EG27517 高速低侧单通道驱动芯片技术解析
嵌入式硬件·硬件工程
三佛科技-134163842125 小时前
FT61E13x家族解析(FT61E131/3F/32/33/35)8位AD型MCU之间的区别
单片机·嵌入式硬件·物联网·智能家居·pcb工艺