news 2026/4/23 12:03:05

自学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/4/22 17:29:36

ACDSee Photo Studio

链接&#xff1a;https://pan.quark.cn/s/505869b33ec1 ACDSee2026旗舰版ACDSee Photo Studio 2026 Ultimate是面向摄影室工作室用的专业图像管理软件,ACDSee最新版包含标准版,专业版,旗舰版.ACDSee旗舰版配备HDR,焦点堆栈,混合克隆,自定义色彩调整创建功能,经改进的人脸识别功…

作者头像 李华
网站建设 2026/4/23 11:12:25

实现异步编程的8种方式

异步执行对于开发者来说并不陌生&#xff0c;在实际的开发过程中&#xff0c;很多场景多会使用到异步&#xff0c;相比同步执行&#xff0c;异步可以大大缩短请求链路耗时时间&#xff0c;比如&#xff1a;发送短信、邮件、异步更新等&#xff0c;这些都是典型的可以通过异步实…

作者头像 李华
网站建设 2026/4/23 9:26:49

深度学习毕设项目:基于python-CNN深度学习识别混凝土是否有裂缝基CNN深度学习识别混凝土是否有裂缝

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

作者头像 李华
网站建设 2026/4/22 22:33:25

那些年入百万的阿里P8大佬是如何精通微服务架构原理的?

阿里P8级架构师对微服务架构的精通&#xff0c;源于其对分布式系统本质的深刻理解、复杂场景的实战积累及持续的技术深度挖掘。一、架构演进与核心原理二、分布式关键技术攻坚三、稳定性与高可用设计四、工程方法与团队协作五、学习路径与方法论总结&#xff1a;P8级架构师的核…

作者头像 李华