51单片机中的定时器和中断等

一、GPIO 通用输入输出

GPIO:General Purpose Input/Output,通用目的输入输出,是单片机和外部硬件交互最基础的方式。

GPIO 模式

  1. 输入模式:检测引脚电平变化,用于按键检测、外部信号采集

    1. STM32:上拉输入、下拉输入、浮空输入、模拟输入
  2. 输出模式:输出高低电平控制外设

    1. STM32:推挽输出、开漏输出、复用推挽输出、复用开漏输出

按键原理:按键按下后引脚与 GND 短路,引脚变为低电平。

二、定时器(51 单片机)

作用:实现精准定时、延时,产生时序、PWM 方波。 51 定时器为16 位自增计数器 ,最大计数范围:0 ~ 65535

核心工作流程

  1. 给定时器寄存器赋初值 TH0TL0(TH 高 8 位,TL 低 8 位)

  2. 打开定时器,计数器按照固定频率向上自增 cnt++

  3. 计数到 65535 + 1定时器溢出,向 CPU 发起中断请求

  4. 从初值计数到溢出的时间,由计数速率、初值大小共同决定

机器周期计算

51 单片机机器周期 = 系统晶振频率 ÷ 12

  • 晶振12MHz12M /12 = 1MHz,机器周期 = \\boldsymbol{1\\mu s

  • 晶振11.0592MHz11.0592M /12 = 0.9216MHz,机器周期 ≈ \\boldsymbol{1.1\\mu s

定时计算公式 计数次数 = 需要定时的时间 ÷ 机器周期 定时器初值 = 65535 − 计数次数

示例:1ms 定时

  • 12MHz 晶振:1ms =1000μs,计数次数 = 1000;初值 = 65535‑1000 = 64535

  • 11.0592MHz:计数次数 = 909;初值 = 65535‑909 = 64626

定时器模式:

  • 16 位定时器模式;

  • 8 位自动重装模式(多用于串口波特率生成)

三、中断

中断概念

CPU 正在执行任务,被外部紧急事件打断;暂停当前任务,执行紧急事件;处理完毕后回到原来代码继续执行。

  • 中断源:可以打断 CPU 运行的事件来源。

  • 51 单片机 5 个中断源:外部中断 0 (P3.2)、外部中断 1 (P3.3)、定时器 0、定时器 1、串口中断。

    • 外部中断:引脚电平变化触发中断。

中断优先级 & 中断嵌套

  1. 中断优先级:多个中断同时到来,优先执行优先级更高的中断。

  2. 中断嵌套:处理一个中断的过程中,响应另一个中断;51 最多允许嵌套两层。

完整中断处理流程

  1. 中断源发出中断请求

  2. 判断:CPU 总中断开关 + 该中断的子开关是否打开(IE寄存器)

  3. 判断中断优先级

  4. 保护现场(保存寄存器)

  5. 执行中断服务函数

  6. 恢复现场,返回原来程序继续运行

中断向量:相当于标号 / 数组下标,CPU 依靠中断向量找到对应的中断服务函数。 IE寄存器:51 中断控制寄存器,EA(bit7)是 CPU 总中断开关。

四、PWM 脉冲宽度调制

PWM:脉冲宽度调制,引脚周期性输出高低电平方波。

  1. PWM 周期:一个完整方波的总时间(从一个上升沿到下一个上升沿)

  2. 占空比 :一个周期内,高电平时间占整个周期的百分比

用途:屏幕背光亮度调节、电机调速、驱动蜂鸣器发声。

五、蜂鸣器

  • 有源蜂鸣器:内部自带振荡源,通电直接发出固定频率声音。

  • 无源蜂鸣器:内部无振荡源,通电不会响;需要外部输入一定频率方波(定时器 + PWM)才能发声。

相关推荐
AAA代码批发商2 小时前
DAYS41 UART 串口通信 + DS18B20 单总线温度传感器
嵌入式硬件·51单片机
充哥单片机设计2 小时前
【STM32开源项目】智能窗户控制器
stm32·单片机·嵌入式硬件·毕业设计·智能窗户
祖力552 小时前
DS18B20数字温度传感器
51单片机·ds18b20·数字温度传感器
糖糖单片机设计15 小时前
基于 STM32 的公交车定位与报站系统
stm32·单片机·嵌入式硬件
祖力5515 小时前
快速学会51单片机基础
单片机·嵌入式硬件·51单片机
H_oRIZoN_16 小时前
Linux入门DAY41(51 单片机 串口与通信协议)
linux·运维·单片机
jianqiang.xue16 小时前
ESP-IDF保姆级入门41|产品级故障排查与稳定性优化全解:死机复位排查/内存泄漏定位/性能瓶颈分析/长期稳定性测试,掌握量产运维问题定位方法论
单片机·mcu·物联网·esp32
单片机仿真设计17 小时前
【proteus仿真】基于 STM32 的林区环境监控系统设计
stm32·单片机·proteus
Doraemomo19 小时前
IMX6ULL裸机开发——GPIO的使用
单片机·嵌入式硬件