news 2026/8/9 21:32:38

自学linuxday46

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自学linuxday46

一、GPIO(通用输入输出)

  • 定义:单片机与外界交互的基础接口,引脚可独立配置为输入或输出模式。
  • 输出模式
    • 开漏输出:需外接上拉电阻输出高电平。
    • 推挽输出:直接输出高/低电平,驱动能力强。
    • 复用模式:引脚复用为外设功能(如串口、定时器)。
  • 输入模式
    • 上拉/下拉输入:内置电阻确保默认电平。
    • 浮空输入:无默认电平,易受干扰。
    • 模拟输入:用于连接模拟传感器(如ADC)。

二、独立按键

  1. 硬件原理

    • 未按下:引脚通过上拉电阻保持高电平($V_{CC}$)。
    • 按下:引脚与GND短路,电平拉低至$0$。
    • 判断逻辑:检测引脚是否为低电平($V < 0.3V_{CC}$)。
  2. 消抖处理

    if (KEY == 0) { // 检测低电平 delay_ms(10); // 延时消抖 if (KEY == 0) { // 执行按键动作 } }

三、中断

  1. 中断流程
    $$
    \text{中断请求} \rightarrow \text{优先级裁决} \rightarrow \text{保护现场} \rightarrow \text{执行ISR} \rightarrow \text{恢复现场}
    $$

  2. 寄存器配置示例(外部中断0):

    IT0 = 1; // 下降沿触发 EX0 = 1; // 允许外部中断0 EA = 1; // 全局中断使能

四、定时器

  1. 定时器初值计算
    若需定时$T$(微秒),晶振频率$f=12\text{MHz}$,则:
    $$
    \text{初值} = 65536 - \frac{T \times f}{12}
    $$

  2. 定时器0模式配置

    TMOD |= 0x01; // M1=0, M0=1 → 16位定时器 TR0 = 1; // 启动定时器0

五、PWM(脉冲宽度调制)

  • 参数定义
    • 周期$T$:高电平+低电平时间。
    • 占空比$D$:
      $$
      D = \frac{t_{\text{high}}}{T} \times 100%
      $$
  • 实现方法
    通过定时器中断调整引脚电平翻转时间。

六、蜂鸣器

  1. 驱动电路
    • 无源蜂鸣器需串联限流电阻(如$100\Omega$),避免过流。
  2. 音调生成
    音符频率$f$与定时器初值关系:
    $$
    \text{初值} = 65536 - \frac{10^6}{2f} \quad (\text{单位:}\mu\text{s})
    $$

综合应用示例

按键控制蜂鸣器音调

#include <REG52.H> sbit Buzzer = P1^0; // 蜂鸣器引脚 sbit KEY = P3^2; // 按键(外部中断0) void Timer0_Init() { TMOD = 0x01; // 定时器0,模式1 TH0 = 0xFC; TL0 = 0x18; // 1kHz中断初值 ET0 = 1; EA = 1; TR0 = 1; } void main() { Timer0_Init(); while(1); } void Timer0_ISR() interrupt 1 { TH0 = 0xFC; TL0 = 0x18; // 重载初值 Buzzer = !Buzzer; // 翻转电平 } void Key_ISR() interrupt 0 { if (KEY == 0) { TH0 = 0xF8; TL0 = 0x30; // 切换为500Hz } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/8 6:05:48

reaConverter Lite(图片转换软件

链接&#xff1a;https://pan.quark.cn/s/ac2c7f0caf75reaConverter Lite是一款简单易用的图片转换软件&#xff0c;几乎支持所有的图像格式&#xff0c;可以帮助用户将图片轻松地转换成想要的图片格式&#xff0c;还可以对图像进行大小&#xff0c;倒转等操作&#xff0c;界面…

作者头像 李华
网站建设 2026/8/5 5:03:18

系统文件转移工具

链接&#xff1a;https://pan.quark.cn/s/b730db44fb4b系统文件转移工具 由新起点大佬开发&#xff0c;能方便的帮助你转移系统盘重要资料&#xff0c;避免意外造成资料丢失。使用说明&#xff1a;一、转移目录根据配置文件优先设置&#xff0c;不存在根据系统当前用户.恢复配置…

作者头像 李华
网站建设 2026/8/8 20:26:21

滞后即危险,微软 Intune 的隐藏危机

Intune 作为微软的统一端点管理平台&#xff0c;是企业现代化 IT 管理的重要工具。支持 Windows、macOS、iOS、Android 等多种设备的注册、策略下发、合规性管理与系统更新&#xff0c;尤其擅长操作系统及微软自家软件的维护&#xff0c;帮助企业实现基础性的设备管理与安全合规…

作者头像 李华
网站建设 2026/7/31 9:09:11

深度学习计算机毕设之基于卷神经网络python-CNN深度学习识别混凝土是否有裂缝基于python-CNN深度学习识别混凝土是否有裂缝

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/31 9:09:11

如何优雅的实现在线人数统计功能?

在线人数统计这个功能相信大家一眼就明白是啥&#xff0c;这个功能不难做&#xff0c;实现的方式也很多&#xff0c;这里说一下我常使用的方式&#xff1a;使用Redis的有序集合(zset)实现。核心方法是这四个&#xff1a;zadd、zrangeByScore、zremrangeByScore、zrem。二、实现…

作者头像 李华