当前位置: 首页 > news >正文

硬件:51单片机的按键、中断、定时器、PWM及蜂鸣器

一、GPIO(通用输入输出口)

基本概念

GPIO(General Purpose Input/Output)是 51 单片机与外部设备交互的最基础接口,通过引脚的电平变化实现数据的输入和输出。

工作模式

  1. 输出模式:单片机通过引脚输出高电平(5V)或低电平(0V),实现对外部设备的控制。
  2. 输入模式:单片机通过检测引脚的电平状态,获取外部设备的信息。

形象比喻

可以将 GPIO 比作 "水龙头":

  • 输出模式如同控制水龙头开关,决定水流(电平信号)的通断
  • 输入模式如同观察水龙头是否有水流,检测外部是否有信号输入

二、按键

按键的原理

以按键 K1 为例,其两个引脚分别连接到 GND 和 P1_4 引脚。当按键被按下时,P1_4 引脚与 GND 短路,呈现低电平;未按下时,P1_4 引脚呈现高电平。

按键检测方法

判断按键是否被按下,只需检测对应引脚是否为低电平。对于 P1_4 引脚,判断逻辑为:

P1 & 00010000 == 0

即当 P1 端口与 0x10(二进制 00010000)进行与运算结果为 0 时,说明 P1_4 为低电平,按键被按下。

典型应用场景

在实时性要求高的车载中控系统中,按键可用于:

  • 油温、水温等参数的查看切换
  • 发动机转速显示控制
  • 仪表盘数据刷新
  • 安全座椅状态确认
  • 刹车信号检测

三、中断

中断基本概念

  1. 中断:CPU 在执行当前任务时,被更紧急的事件打断,转而去执行紧急任务,完成后再返回原任务继续执行的过程。
  2. 中断源:引发中断的事件或源头,51 单片机有 5 个中断源。
  3. 中断优先级:多个中断同时发生时,CPU 优先处理优先级高的中断。
  4. 中断嵌套:处理一个中断时,可被更高优先级的中断打断,51 单片机最多支持 2 层嵌套。

中断源分类

中断源类型对应引脚 / 模块说明
外部中断 0INT0(P3_2)由 P3_2 引脚电平变化触发
外部中断 1INT1(P3_3)由 P3_3 引脚电平变化触发
定时器 0定时器 0 模块由定时器 0 溢出触发
定时器 1定时器 1 模块由定时器 1 溢出触发
串口串口模块由串口收发完成触发

中断处理流程

  1. 中断源发出中断请求
  2. 检查 CPU 是否允许响应中断及该中断源是否被屏蔽
  3. 比较中断优先级,选择最高优先级中断
  4. 保护现场(保存当前执行状态)
  5. 执行中断服务函数(回调函数)
  6. 恢复现场,返回原任务继续执行

中断寄存器配置

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

    • EA(bit7)= 1:CPU 允许响应所有中断(总开关)
    • EX0(bit0)= 1:允许外部中断 0 产生中断
  2. TCON 寄存器(定时器控制寄存器)

    • IE0(bit1)= 1:外部中断 0 向 CPU 发起中断请求(CPU 响应后自动清 0)
    • IT0(bit0)= 1:外部中断 0 采用下降沿触发

四、定时器

定时器基本概念

定时器是产生精准定时的模块,51 单片机内部有两个定时器(timer0、timer1),均为 16 位自增型计数器。

时钟与定时关系

  • 51 单片机通常使用 12MHz 或 11.0592MHz 晶振
  • 经过 12 分频后,实际工作频率为 1MHz(12MHz/12)
  • 完成一条指令的时间为 1μs(1/1MHz)

定时器 0 实现 1ms 定时

1ms = 1000μs,需要计数 1000 次
定时器初值 = 65535 - 1000 = 64535(0xFC67)

定时器寄存器配置

  1. TMOD 寄存器(模式选择寄存器)

    • 低四位清 0
    • M0(bit0)= 1:定时器 0 工作在 16 位模式
  2. TCON 寄存器

    • TR0(bit4)= 1:允许定时器 0 开始计数
  3. IE 寄存器

    • EA(bit7)= 1:开启总中断
    • ET0(bit1)= 1:允许定时器 0 产生中断

配置流程

  1. 配置 TMOD 寄存器,设置为 16 位定时器模式
  2. 向 TH0 和 TL0 装入初值 64535(0xFC67)
  3. 置位 TR0,启动定时器计数
  4. 开启总中断和定时器 0 中断
  5. 编写定时器 0 中断服务函数

五、PWM 与蜂鸣器

PWM(脉冲宽度调制)

  • PWM 周期:一个方波的完整周期(从上升沿到下一个上升沿的时间)
  • PWM 占空比:一个周期内高电平所占的比例
  • 作用:通过产生周期性的电平翻转,实现对外部设备的精确控制

蜂鸣器

  1. 有源蜂鸣器:内置震荡源,通电后发出固定频率的声音

  2. 无源蜂鸣器:无内置震荡源,需要外部提供震荡信号才能发声

  3. 声音特性

    • 音调:由频率决定(高频为高音,低频为低音)
    • 音量:由振幅决定(振幅越大,音量越大)

文章转载自:

http://8U21EZxj.gwsdt.cn
http://QFbijCBV.gwsdt.cn
http://XOL5fe1H.gwsdt.cn
http://f1C5mKR6.gwsdt.cn
http://knQwsUOw.gwsdt.cn
http://AbsD6dqM.gwsdt.cn
http://sBKWwFaK.gwsdt.cn
http://KeMW2lQG.gwsdt.cn
http://AJexH8X4.gwsdt.cn
http://HkyVc6gG.gwsdt.cn
http://TIRclU4M.gwsdt.cn
http://d8VIblGE.gwsdt.cn
http://GCWnGHQx.gwsdt.cn
http://s0PRmS6r.gwsdt.cn
http://mSNJNrdV.gwsdt.cn
http://d2VtaXbx.gwsdt.cn
http://9yjS7v6A.gwsdt.cn
http://tXtae3AO.gwsdt.cn
http://DpziVLdr.gwsdt.cn
http://UdI5TETF.gwsdt.cn
http://03AKRwwi.gwsdt.cn
http://bEOnbHW9.gwsdt.cn
http://bkp5Wyqi.gwsdt.cn
http://58FoJQUt.gwsdt.cn
http://C5r6ydGn.gwsdt.cn
http://McEv0UYL.gwsdt.cn
http://wDPoclec.gwsdt.cn
http://mmVisDHr.gwsdt.cn
http://IDFCzttk.gwsdt.cn
http://S7sXx9Ls.gwsdt.cn
http://www.dtcms.com/a/365945.html

相关文章:

  • Spring Boot HTTP状态码详解
  • 性能测试-jmeter8-脚本录制
  • 揭秘23种设计模式的艺术与技巧
  • < 自用文 主机 USC 记录:> 发现正在被攻击 后的自救
  • Protocol Buffers:数据世界的秘语之书,手把手教学环境搭建
  • mysql高级进阶(存储过程)
  • 认识HTML
  • CDN的工作原理是什么?为什么要用高防 CDN?
  • 数据结构:双向链表
  • 分割回文串手绘图
  • 电脑城老板不会告诉你的装机秘籍:建造者模式让你的代码高配起飞!
  • @Autowired原理(三)
  • 【Qt中信号槽连接connect有接收者和无接收者的区别】
  • LeetCode 20.有效的符号算法解析及栈的相关知识
  • FTL文件格式的原理与应用(AI)
  • 【工具变量】上市公司绿色供应链管理示范企业DID数据(2010-2024年)
  • AUTOSAR进阶图解==>AUTOSAR_TPS_ARXMLSerializationRules
  • Linux学习-硬件
  • 2025年IT行业入门级证书选择与分析
  • 从竞态到原子:pread/pwrite 如何重塑高效文件 I/O?
  • 深入浅出:YOLOv8性能评估指标与电科金仓2025AI新成果
  • SuperMap GIS基础产品FAQ集锦(20250819)
  • C++----模板特化以及模板声明与定义分离问题
  • 2025 大学生必考 IT 行业证书
  • BigemapPro中的坐标定位于与拾取
  • NuttX编译流程与config.h生成解析
  • STM32G4 电流环闭环
  • Springboot3+SpringSecurity6Oauth2+vue3前后端分离认证授权-授权服务
  • 后端框架(SpringBoot):自动配置的底层执行流程
  • 2025年经管专业人士证书选择与分析