news 2026/4/23 17:24:15

51单片机相关

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
51单片机相关

一、GPIO

GPIO:(通用输入输出)

功能:与外界交互的最基本的形式,可以独立的将引脚配置为输入\输出模式。

输入模式:检测引脚的电平(接收外部信号)

  • 上拉输入
  • 下拉输入
  • 浮空输入
  • 模拟输入

输出模式:控制引脚输出高电平/低电平(给定控制信号)

  • 开漏输出
  • 推挽输出
  • 复用开漏
  • 复用推挽

二、独立按键

1.原理图

2.工作原理

当按键未被按下时,引脚会呈现高电平,当按键被按下时,会造成引脚和GND短路到一

起,此时对应的引脚会呈现低电平。

判断按键是否被按下,只需要判断引脚是否为低电平即可。

三、中断

1.中断概念

当CPU正在执行某个任务的时候,此时外界发生了一个紧急的事件,要求CPU能够暂停当前的

任务,转而去执行这个更为紧急的事件,执行完这个紧急事件再回到刚才被打断的地方,继续执

行,这个过程叫做中断。

2.中断源

中断源:能够打断CPU执行当前任务的源头。

分类:外部中断:引脚电平的变化所引发的中断。

  • 外部中断0(INTO->p32引脚)
  • 外部中断1(INTO->p33引脚)
  • 定时器0
  • 定时器1
  • 串口

3.中断优先级

当CPU在执行一个任务的时候,此时可能有多个中断源同时发起中断请求,此时CPU

比较中断源的优先级,优先处理优先级高的中断。

4.中断嵌套及中断处理

中断嵌套:CPU在处理一个中断任务的时候,再去嵌套另外的一个中断任务(51单片机中最多允

许嵌套两层)。

中断处理:

  1. 中断源发出中断请求
  2. 检查CPU是否允许中断及该中断源是否被屏蔽
  3. 比较中断优先级(参考3中图片)
  4. 保护现场
  5. 执行中断处理函数(回调函数)
  6. 恢复现场

四、定时器

1. 定时器:
产生精准时间,不同外设对时间要求是精准的
51单片机中有两个定时器,分别是Timer0和Timer1,是自增型定时器
2. 定时器工作原理:
定时器内部有个16位的计数器,给定计数器一个初值,会按照1us的速率进行自增,
加到65535溢出时向CPU发起中断请求,CPU响应定时器中断并执行中断处理函数。
3. 定时器寄存器:

TMOD定时器模式配置寄存器

1. 将TMOD寄存器中的低4位清0

2. 将M0置1,M1清0,代表定时器0工作在16位定时器模式下

TCON定时器控制寄存器

五、PWM及蜂鸣器

1.PWM

脉冲宽度调制,能够让引脚产生一个方波,让引脚电平周期性的翻转

PWM周期:

一个方波所经历的周期(从上升沿/下降沿到下一个上升沿/下降沿所经历的时间)

PWM占空比:

高电平在一个PWM周期内所占的比例

2.蜂鸣器

原理图:

震荡源 声音(波)-> 音调 -> 波的频率发生了变化 -> 高音 (高频) 低音(低频)-> 音量 ->

振幅能量大小。

蜂鸣器分类:

有源蜂鸣器:有源蜂鸣器内部有震荡源,上电后会持续发出一个固定频率的声音

无源蜂鸣器:无源蜂鸣器内部没有震荡源,需要给定蜂鸣器一个震荡

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 22:04:04

【递归】判断是不是二叉搜索树

求解代码 之所以加上min和max,是因为二叉搜索树需要满足整棵左子树的所有节点都要小于根,整棵右子树的所有节点都要大于根。public boolean isValidBST (TreeNode root) {return isValidBST(root, null, null);}boolean isValidBST(TreeNode root, TreeN…

作者头像 李华
网站建设 2026/4/23 8:58:02

Matlab 基于Bayes-Adaboost可解释性分析的分类预测

目录 1、代码简介 2、代码运行结果展示 3、代码获取 1、代码简介 (Bayes-AdaboostSHAP)基于贝叶斯算法优化Adaboost 的数据多输入单输出SHAP可解释性分析的分类预测模型 由于Bayes-Adaboost在使用SHAP分析时速度较慢,程序中附带两种SHAP的计算文件(正常版和提…

作者头像 李华
网站建设 2026/4/23 8:57:54

低代码拖拽系统

简单来说,它的工作方式更像是你的一位“AI编程搭档”:你用文字描述需求,它来编写代码,低代码拖拽系统,本质上是一种通过可视化拖拽组件和模型配置来开发应用的方法和平台-8。其核心目标是通过复用和自动化,将重复的开发工作平台化,从而极大提升应用交付速度。 🧩 主流…

作者头像 李华