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

嵌入式学习 51单片机(2)

GPIO基础与应用

概念

  • GPIO(通用输入/输出)是单片机与外部交互的基础接口,支持两种工作模式:
    • 输出模式:通过设定引脚电平(高/低)控制外部设备(如LED)。
    • 输入模式:检测引脚电平变化(如按键状态)。

类比

  • 输出模式类似控制水龙头开关,输入模式类似观察水流状态。

按键检测原理

硬件连接

  • 按键K1一端接地(GND),另一端接单片机引脚(如P1_4)。按下时,引脚被拉低(低电平)。

检测逻辑

  • 通过读取引脚电平判断按键状态:
    if ((P1 & 0x10) == 0) {  // 检测P1_4是否为低电平(0x10 = 0001 0000)// 按键按下处理
    }
    

应用场景

  • 车载中控系统需实时检测油温、水温、转速等传感器信号,按键作为输入触发响应。

中断机制详解

核心概念

  • 中断是CPU响应紧急事件的机制,暂停当前任务处理中断,完成后恢复原任务。

中断源类型(51单片机):

  1. 外部中断(INT0/P3_2、INT1/P3_3)
  2. 定时器中断(Timer0/Timer1)
  3. 串口中断

中断处理流程

  1. 中断请求触发。
  2. 检查中断使能及优先级。
  3. 保护现场(寄存器状态)。
  4. 执行中断服务函数(ISR)。
  5. 恢复现场,继续原任务。

寄存器配置

  • IE寄存器
    • EA=1(全局中断使能)
    • EX0=1(外部中断0使能)
  • TCON寄存器
    • IT0=1(下降沿触发)
    • IE0=1(中断请求标志,硬件自动清零)

定时器原理与配置

定时器作用

  • 产生精确时序,用于外设控制(如PWM、蜂鸣器驱动)。

51单片机定时器

  • 16位自增计数器(Timer0/Timer1),基于晶振频率(如12MHz分频至1MHz,指令周期1μs)。

1ms定时配置

  1. TMOD寄存器
    • 低4位清零,M0=1(16位模式)。
  2. 初值计算
    • 1ms = 1000μs → 初值 65536 - 1000 = 64535(0xFC17)。
  3. 启动定时器
    • TR0=1(TCON寄存器)。
  4. 中断使能
    • ET0=1(定时器0中断使能)。

示例代码

TMOD &= 0xF0;  // 清零低4位
TMOD |= 0x01;  // 16位模式
TH0 = 0xFC;    // 初值高8位
TL0 = 0x17;    // 初值低8位
TR0 = 1;       // 启动定时器
EA = 1;        // 全局中断
ET0 = 1;       // 定时器0中断


PWM与蜂鸣器控制

PWM基础

  • 周期:方波重复时间(频率倒数)。
  • 占空比:高电平时间占比,控制设备功率(如电机速度)。

蜂鸣器类型

  • 有源蜂鸣器:内置振荡源,通电即发声。
  • 无源蜂鸣器:需外部PWM驱动,通过频率调节音调,占空比调节音量。

驱动示例

// 生成1kHz PWM(周期1ms,占空比50%)
void Timer0_ISR() interrupt 1 {TH0 = 0xFC;      // 重装初值TL0 = 0x17;Buzzer = ~Buzzer; // 电平翻转
}

应用提示

  • 高频率(>20kHz)可用于超声波模块,低频(1-5kHz)驱动蜂鸣器。

http://www.xdnf.cn/news/19803.html

相关文章:

  • 【C++】string类完全解析与实战指南
  • centos 压缩命令
  • (二)文件管理-基础命令-mkdir命令的使用
  • Linux应用(1)——文件IO
  • 部署jenkins并基于ansible部署Discuz应用
  • 嵌入式|RTOS教学——FreeRTOS基础3:消息队列
  • Unity之Spine动画资源导入
  • 小游戏公司接单难?这几点原因与破局思路值得看看
  • 聚焦诊断管理(DM)的传输层设计、诊断服务器实现、事件与通信管理、生命周期与报告五大核心模块
  • RTSP流端口占用详解:TCP模式与UDP模式的对比
  • 面向深层语义分析的公理化NLP模型:理论可行性、关键技术与应用挑战
  • 大语言模型领域最新进展
  • 如何将JPG图片批量转为PDF?其实可用的方法有很多种
  • TC-2024《Fuzzy Clustering guided by Spectral Rotation and Scaling》
  • shell-awk命令详解(理论+实战)
  • 通过IDEA写一个服务端和一个客户端之间的交互
  • 解决通过南瑞加密网关传输文件和推送视频的失败的问题
  • PyTorch 面试题及详细答案120题(116-120)-- 综合应用与实践
  • 专项智能练习(音频基础)
  • 水泵运行组态监控系统御控物联网解决方案
  • 基于SpringBoot的旅游管理系统
  • 03 - HTML常用标签
  • Nano Banana 的 100 种用法 - AI 图像生成完整提示词宝典
  • 超低延迟RTSP播放器的技术挑战与跨平台实现之道
  • 【GitOps】Argo CD部署应用程序
  • 嵌入式|RTOS教学——FreeRTOS基础2:任务调度
  • 【mac】如何在 macOS 终端中高效查找文件:五种实用方法
  • 怀古感今慎独自省慎思
  • 中科米堆CASAIM自动化三维测量设备测量汽车零部件尺寸质量控制
  • 安全、计量、远程控制,多用途场景下的智慧型断路器