51单片机(2)

1.GPIO输出模式、输入模式

  • 输出模式:单片机主动控制引脚输出高电平或低电平,用于驱动LED、数码管、蜂鸣器等外设。

  • 输入模式:单片机检测引脚上的电平变化(高/低),用于读取外部信号,如按键是否按下、检测ADC(模数转换)信号等。

2. 中断

1.概念

中断是指CPU在处理某个任务时,被外界发生的更为紧急的事件打断,CPU暂停当前任务,优先去处理这个紧急事件,处理完后再回到之前被打断的地方继续向下执行。

2. 51单片机中中断源类型及个数

  1. 外部中断0(INT0)

  2. 定时器0(TIMER0)

  3. 外部中断1(INT1)

  4. 定时器1(TIMER1)

  5. 串口(UART)

3. 什么是外部中断

外部中断是由单片机外部引脚(INT0对应P3_2,INT1对应P3_3)上的电平变化(如下降沿、低电平或上升沿)所引发的中断。当引脚检测到设定的电平跳变时,会向CPU发出中断请求

4. 中断处理流程

  1. 中断源发出中断请求;

  2. 检查CPU是否允许中断(总开关)及该中断源是否被屏蔽(子开关);

  3. 比较中断优先级;

  4. 保护现场(保存当前CPU寄存器状态);

  5. 执行中断服务函数(回调函数);

  6. 恢复现场(回到之前被打断的地方继续执行)。

3. 定时器

1. 定时器工作模式

  • 16位自增计数器模式:计数范围 0 ~ 65535,计满溢出后产生中断请求。

  • 8位自动重装计数器模式:计数范围 0 ~ 255,溢出后硬件自动将预设初值重新装入计数器,常用于UART(串口)波特率生成。

2. 定时器配置流程

  1. 赋初值:根据需要的定时时间计算初值(初值 = 65535 - 计数次数),分别写入高8位(TH)和低8位(TL);

  2. 打开计数器:启动定时器开始计数;

  3. 按固定频率自增:计数器按照单片机机器周期(如1μs)不断递增;

  4. 溢出产生中断:计数器加到65535后再加1即溢出,此时向CPU发出定时器中断请求。

3. 8位自动重装载定时器工作原理

  • 计数器从 0 计数到 255,再加 1 时发生溢出。

  • 溢出时,硬件会自动将预先设置好的初值重新装入计数器,无需软件干预。

  • 这样能保证每次溢出周期固定,且装载速度快,常用于对时序精度要求较高的场景(如串口通信波特率生成)

4.PWM

1.PWM周期

PWM周期是指 一个完整方波所经历的时间,即从上升沿(或下降沿)到下一个上升沿(或下降沿)之间的时间间隔。

2.PWM占空比

PWM占空比是指 在一个PWM周期内,高电平所占的时间比例(用百分比表示)。占空比越大,输出平均电压越高,例如用于调节LED亮度(越高越亮)或蜂鸣器音量。

5. 有源蜂鸣器、无源蜂鸣器

  • 有源蜂鸣器:内部自带振荡源,只要接通电源(给定对应电平),即可发出持续固定频率的声音。

  • 无源蜂鸣器:内部没有振荡源,需要由外部单片机引脚提供高低电平变化的方波信号来产生震荡,从而发声。通过改变方波的频率,可以输出不同音调的声音。

相关推荐
李永奉12 小时前
杰理可视化SDK开发-【BUG】配置“TWS两边同时按消息使能”功能后,按键单击功能无效失灵
开发语言·单片机·嵌入式硬件·物联网·bug
执迷不悟82313 小时前
51单片机--中断/定时/PWM
单片机·嵌入式硬件·51单片机
A小调的码农15 小时前
OPENOCD+MSYS+VSCODE:从“灯不亮“到“终于亮了“
ide·vscode·stm32·单片机·编辑器
AI的探索之旅15 小时前
让 Claude Code 直接操刀画原理图和 PCB:VSCode 插件接外部 API 全流程
linux·ide·vscode·嵌入式硬件·编辑器
嵌入式-老费16 小时前
esp32开发与应用(用好ttl转485模块)
stm32·单片机·嵌入式硬件
謓泽17 小时前
【6.30】芯片 Bring-up 三步核心|从短路检查到 SPI 排障全拆解!
单片机·嵌入式硬件
2CM_Embed17 小时前
Quartus II 工程编译与 FPGA 下载流程记录
嵌入式硬件·fpga开发
OIDCAT17 小时前
国产USB转千兆网卡芯片CH398 VLAN应用
网络·嵌入式硬件·国产·usb转千兆网卡
KaifuZeng17 小时前
模电面试问题汇总四
单片机·嵌入式硬件·面试·模电
Industio_触觉智能17 小时前
RK3576开发板GPIO驱动入门教程,基于触觉智能开发板教学-上
嵌入式硬件·硬件工程·智能硬件·开发板·gpio·瑞芯微·rk3576