输入输出1

GPIO

定义:GemalPupose put Output,通用目的输入输出

输出模式:给定引脚电平,控制引脚高低电平的变化

推挽输出

开漏输出

复用推挽

复用开漏

输出模式:检测引脚电平变化

上拉输入

下拉输入

浮空输入

模拟输入

按键模块(低开高关,P1引脚高4位)

判断逻辑:低电平按下,高电平未按下

电路图

对应引脚

K1------P14

K2------P15

K3------P16

K4------P17

int ret; if(( P1&(1<<4) ) == 0)

条件判断成立则按键K1按下,反之则未按下

中断

概念:当CPU执行某个任务时,外界发生了一个紧急事件,要求CPU放下当前的任务,转而去执行这个更为紧急的事件,执行完紧急事件后再回到原来被打断的地方继续向下执行

中断源:打断CPU执行当前任务的源头/事件

51单片机有五个中断源

外部中断0,外部中断1,定时器0,定时器1,串口

1.外部中断

定义:引脚电平变化引发的中断

外部中断引脚:32,33

中断源优先级

数字越小,优先级越高

当几个中断源同时向CPU请求中断,CPU去执行中断任务时,会去比较多个中断的优先级优先去执行优先级更高的中断

51单片机中最多允许中断嵌套两层
中断处理流程

  1. 中断源发出中断请求
  2. 检测 CPU是否响应中断(总开关),以及该中断源是否被屏蔽(子开关)
  3. 比较中断优先级
  4. 保护现场
  5. 执行中断服务函数
  6. 恢复现场

寄存器配置

下降沿一瞬间触发

配置过程

将外部中断0引脚置1,配置IE寄存器,CPU能够响应所有中断+外部

中断向量表:本质就是一个数组,数组中存放的是中断服务函数入口地址

中断向量:本质上是一个标号,可以通过标号在中断向量表中找到中断服务函数的入口地址

定时器

精准的定时

timer0 计数器0

timer1 计数器1

两种定时器工作模式:

1.16位模式定时器,65535自增型定时器;

加至溢出,发送时钟中断信号

时长相关参数:初始值,自加频率,clock时钟(工作频率)

clock时钟(工作频率):12Mhz,11.0592Mhz

分频器:12Mhz/12 = 1Mhz

时间:1/1Mhz = 1us;1/0.9216Mhz = 1.085us

1ms定时

1ms=1000us

1000/1.085 =922

初值:65535-1000=64535 65535-922=64613;

8位自动重装载(10)

PWM

PWM:脉冲宽度调制

能够使引脚产生一个方波PWM可以让引脚电平周期性进行翻转

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

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

蜂鸣器

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

无源蜂鸣器

电路图

高电平导通,低电平阻,翻转电平发声

相关推荐
一米阳光86613 小时前
软考高级【信息系统项目管理师】高项重要考点(3)高级项目管理-下 助你顺利上岸!
笔记·职场发展·软考·信息系统项目管理师·高级职称
dianziyao_3 小时前
第 4.1 篇:让 Codex 理解你的双链——AI 辅助发现笔记间的关联
人工智能·笔记
xian_wwq6 小时前
【学习笔记】OWASP Agentic 应用安全(二)
笔记·学习·安全·owasp
沪上企服通8 小时前
代账数据的可移植性设计:开放接口、账套导出与 exit strategy 工程笔记(上海 5 家样本对照)
笔记·策略模式
江湖人称菠萝包9 小时前
【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter8-子窗口控件
windows·笔记
M78佐菲9 小时前
HTML学习笔记
linux·笔记·学习·tcp/ip·html
我还可以再学点11 小时前
QUIC学习笔记
笔记·学习
点心的游戏开发世界11 小时前
GDScript 入门笔记:目录
开发语言·笔记·游戏引擎·godot
山岚的运维笔记11 小时前
mysql 专业笔记 -- 第 17 章:连接:连接三个具有相同名称 ID 的表
运维·数据库·笔记·后端·学习·mysql·dba
又見山11 小时前
用 Obsidian 写了两年的笔记,怎么备份?怎么同步到其他设备上
笔记·obsidian·obsidian插件·obsidian同步·obsidian教程