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

51单片机 02

1. GPIO输出模式、输入模式

GPIO:通用目的输入输出引脚

1. 输出模式:给定单片机引脚电平,控制引脚输出高/低电平(LED控制、数码管控制、蜂鸣器控制)

2. 输入模式:检测引脚电平变化(用于检测外部电平信号 按键检测、检测ADC信号)

2. 中断概念

中断:CPU在处理某个任务时,被外界更为紧急的事件打断,要求CPU优先去处理这个更为紧急的事件;处理完紧急事件后,再回到之前被打断的地方继续向下执行

中断优先级:CPU总是先处理优先级高的中断,处理完优先级高的中断后再处理优先级低中断

3. 51单片中中断源类型及个数

中断源:打断CPU执行当前的任务源头/事件
中断源分类:外部中断0、外部中断1、定时器0、定时器1、串口

4.什么是外部中断

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

5. 中断处理流程

1. 中断源发出中断请求

2. 检查CPU是否允许中断(总开关 能够响应外部中断)及该中断源是否被屏蔽(子开关 能够产生对应的中断)

3. 比较中断优先级

4. 保护现场

5. 执行中断服务函数(回调函数)

6. 恢复现场

6. 51单片机中有几个定时器

3个。定时器/计数器/0/1(自增型定时器),定时器/计数器T2

7. 定时器工作模式

定时器/计数器0有4种工作模式:模式0(13位定时器/计数器),模式1(16位定时器/计数器模式),模式2(8位自动重装模式),模式3(两个8位定时器/计数器)。定时器/计数器1除模式3外,其他工作模式与定时器/计数器0相同,T1在模式3时无效,停止计数。

8. 定时器配置流程

1.配置定时器0/1工作模式:配置TMOD寄存器,16位定时器TMODbit0置为1.

2.设置定时器初值:

以16位定时器模式为例,TL0和TH0全用,16位计数器的最大值65535

51单片机实际工作频率为12MHZ/12 = 1MHZ

11.0592MZH/12 = 0.9MHZ

时间:1/1MHZ = 1us 1/0.9MHZ = 1.1us

计数次数:1000us/1us = 1000 1.1us/1us = 1100

定时器出初值:65535-1000 = 64535 65535-1100 = 63435

TL0=64535

TH0=64535>>8

3.打开定时器,开始计数。TCON寄存器bit4置为1

4.打开定时器中断和CPU总中断。IE寄存器中的bit1和bit7置为1.

9. 8位自动重装载定时器工作原理

定时器0/1在8位自动重装在载定时器模式下的工作原理如下:

核心原理是TL0(8位)TH0(8位)分工不同。

TL0(8位计数器255):计数脉冲每来一次,TL0就自动加1。

TH0(8位重装值寄存器255):用来预先存放重装数值(即计数初值)。在整个计数过程中,它本身不参与计数,数值保持不变。

当写入初值时TL0会从你写入的初始值开始,随着脉冲不断加1,直到计满溢出。溢出的瞬间会发生两件事:

  1. 硬件自动将TH0中的数值,瞬间复制到TL0中。这就是自动重装,无需CPU干预.

  2. 硬件将中断标志位TF0置1,向CPU发出中断请求.

10.PWM周期

PWM:脉冲宽度调制,能够让引脚产生一个方波,能够让引脚周期性产生电平变化

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

11. PWM占空比

PWM占空比:在一个周期内高电平所占的比例(LCD屏幕亮度调节、LED灯亮度调节、蜂鸣器)

12. 有源蜂鸣器、无源蜂鸣器。

有源蜂鸣器:内部存在震荡源,通电后可以发出持续固定频率的声音

无源蜂鸣器:不存在震荡源,需要给定对应引脚一个高低电平产生震荡(可以输出指定频率音调)

http://www.jsqmd.com/news/1178400/

相关文章:

  • BUUCTF MISC 隐写实战:从流量分析到坐标绘图,5类题目解题框架解析
  • 哈工大 OS 实验 4 排错指南:PCB、LDT 与内核栈指针的 3 处关键修改
  • MP2672A芯片与GD32VF103微控制器的电池管理系统设计
  • Windows 11企业版LTSC:老旧电脑性能优化与纯净系统部署指南
  • 基于YOLOv8的手语手势识别系统:从环境配置到实时检测完整指南
  • 3类主流局放监测技术对比:UHF/TEV/AE与脉冲电流法在10kV开关柜的实测差异
  • 计算机组成原理 5大核心部件:从冯·诺依曼到现代SoC的3种硬件结构演进
  • Spark 3.5.0 与 Hadoop 3.3.6 环境变量冲突排查:3 个常见配置错误与修复方案
  • 从神超局拆解竞技游戏中的决策自动化与心理博弈战术
  • Python zip()函数的工程价值:同步遍历、内存优化与数据契约
  • 你知道吗,有公司把LLM塞进了眼镜里了
  • STM32F031C6与MCP3551高精度ADC接口设计与优化
  • Fluent雾化仿真:TAB、KHRT、Wave破碎模型选择与参数优化指南
  • OpenCV RotatedRect 核心原理与实战:角度定义、顶点顺序及工程应用
  • 时光倒流器:Bilibili-Old如何让你重拾最爱的B站经典界面
  • Git 2.35.1 Windows 安装配置:3个关键选项解析与SSH密钥生成实战
  • AI编程提示词优化:为何Claude Code中少即是多
  • LL(1) 文法 vs LR(1) 文法:3 个关键差异与 2 种语法分析器实现选择
  • IntelliJ IDEA 2024.3 SSH 密钥连接:3步配置与 2 类常见权限错误排查
  • Deepseek代码生成模型:从原理到实战的完整开发指南
  • Unity组合模式实战:树形结构管理的终极解决方案
  • 基于YOLOv8的麻将识别检测系统:从数据集制作到UI开发全流程
  • Palworld Host Save Fix终极指南:简单3步解决服务器迁移角色丢失问题
  • 2026 年轻额盗窃不起诉辩护完整材料体系搭建
  • C++算法实践:从理论到工业级实现的四个维度与优化技巧
  • Agentic Coding:AGI时代的可验证开发范式
  • SuperGrok七天免费试用全攻略:从注册到核心功能体验
  • VSCode 1.90 + gdb 13.2 远程调试:3种复杂项目编译与调试配置方案对比
  • Java抢红包代码太绝了!100元10人随机分,公平到哭
  • 免费查AIGC网站推荐:中英文AIGC率一键检测