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

一、GPIO 通用输入输出

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

GPIO 模式

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

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

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

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

二、定时器(51 单片机)

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

核心工作流程

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

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

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

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

机器周期计算

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

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

  • 晶振11.0592MHz:11.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)才能发声。

相关推荐
Code_Solitude4 小时前
开发板点灯实验源码
stm32·单片机·嵌入式硬件
炸膛坦客15 小时前
单片机开发工具篇:(十四)配置输出 .map 文件及其本地路径
c语言·单片机·嵌入式硬件
笨笨饿16 小时前
140_AI新手村MCP与Skills是干嘛的
开发语言·人工智能·python·stm32·单片机·嵌入式硬件·物联网
我叫洋洋18 小时前
Cadence CIS 元器件库合并实战:3000+ 焊盘、156 个符号零冲突并入自有库
数据库·单片机·嵌入式硬件·oracle·电路
ebiobiz19 小时前
极海 APM32 使用 Nimmake 编译指南
c++·python·单片机·嵌入式硬件·mcu
小神兵20 小时前
对电压源与电流源的的简单理解
单片机·嵌入式硬件·物联网
comyccccc21 小时前
三极管与MOS管工作原理全解析学习笔记
单片机·嵌入式硬件
FPGA小徐1 天前
运放电路:负载必须接地时,如何做电流采样(浮地负载 vs 接地负载)
单片机·嵌入式硬件
女神下凡1 天前
芯参谋(37):EEPROM_电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范
沐欣工作室_lvyiyi1 天前
基于云平台的输液智能监测控制系统设计与实现(论文+源码)
stm32·单片机·单片机毕业设计·电子信息工程毕业设计