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周期内所占的比例。

六、蜂鸣器

原理图

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

  • 有源蜂鸣器:有源蜂鸣器内部有震荡源,上电后会持续发出一个固定频率的声音
  • 无源蜂鸣器:无源蜂鸣器内部没有震荡源,需要给定蜂鸣器一个震荡
相关推荐
lingzhilab2 小时前
零知IDE——零知ESP32 + INA219电流传感器实现18650锂电池智能充放电监测系统
ide·单片机·json
秋深枫叶红2 小时前
嵌入式第四十六篇——51单片机基础——UART通信
嵌入式硬件·学习·51单片机
独处东汉2 小时前
AI辅助Stm32l031项目开发调试板子printf
stm32·单片机·嵌入式硬件
2301_772204282 小时前
嵌入式——51单片机的基本知识
单片机·嵌入式硬件·51单片机
ytttr87312 小时前
基于STM32和W5500芯片的Modbus TCP协议栈实现
stm32·嵌入式硬件
上大科技蔡生13 小时前
CS5715:2.7V~26V宽输入,单节锂电池适用,最高36V输出,省掉电感电流检测电阻,软启动时间可调,异步升压DCDC控制器
单片机·嵌入式硬件·dcdc
CQ_YM13 小时前
51单片机(1)
单片机·嵌入式硬件·51单片机
qq_4017004113 小时前
单片机之ADC(模拟数字转换器)
单片机·嵌入式硬件
无事好时节14 小时前
51 单片机GPIO / 按键 / 中断 / 定时器 / PWM
单片机·嵌入式硬件