单片机day2

十、GPIO

  • Genral Purpose Input Output,通用输入输出,是与外界交互最基本的形式,可以独立的将引脚配置为输入模式/输出模式

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

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

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

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

十一、独立按键

1.原理图

2.工作原理

当按键未被按下时,引脚会呈现高电平,当按键被按下时,会造成引脚和GND短路到一起,此时对应的引脚会呈现低电平。

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

十二、中断

1. 中断概念:

  • 当CPU正在执行某个任务的时候,此时外界发生了一个紧急的事件,要求CPU能够暂停当前的任务,转而去执行这个更为紧急的事件,执行完这个紧急事件再回到刚才被打断的地方,继续执行,这个过程叫做中断。

2. 中断源:

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

  • 外部中断0

INT0 -> P32引脚

  • 外部中断1

INT1 -> P33引脚

  • 定时器0
  • 定时器1
  • 串口

4. 中断优先级:

  • 当CPU在执行一个任务的时候,此时可能有多个中断源同时发起中断请求,此时CPU比较中断源的优先级,优先处理优先级高的中断

5. 中断嵌套:

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

6. 中断处理流程

  • 中断源发出中断请求
  • 检查CPU是否允许中断及该中断源是否被屏蔽
  • 比较中断优先级
  • 保护现场
  • 执行中断处理函数(回调函数)
  • 恢复现场

7.中断相关寄存器:

(1)中断允许寄存器 IE寄存器

EA:

  • 置1:代表CPU允许所有中断请求
  • 置0:代表CPU屏蔽所有的中断请求

EX0:

  • 置1:允许外部中断0产生中断
  • 置0:禁止外部中断0产生中断

(2)定时器/计数器中断控制寄存器 TCON寄存器:

IT0:

  • 置1:代表外部中断0引脚(P32引脚)下降沿触发中断
  • 置0:代表外部中断0引脚(P32引脚)低电平触发中断

十三、定时器

1.定时器

  • 产生精准时间,不同外设对时间要求是精准的
  • 51单片机中有两个定时器,分别是Timer0和Timer1,是自增型定时器

2. 定时器工作原理:

  • 定时器内部有个16位的计数器,给定计数器一个初值,会按照1us的速率进行自增,加到65535溢出时向CPU发起中断请求,CPU响应定时器中断并执行中断处理函数

3. 定时器寄存器:

TMOD 定时器模式配置寄存器

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

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

TCON 定时器控制寄存器:

将TCON寄存器中的TR0这一位置1,代表打开定时器,开始计数

将IE寄存器中的bit7和bit1置1,代表允许CPU响应所有中断 + 允许定时器0产生中断

十四、PWM

  • 脉冲宽度调制,能够让引脚产生一个方波,让引脚电平周期性的翻转
  • PWM周期:一个方波所经历的周期(从上升沿/下降沿到下一个上升沿/下降沿所经历的时间)
  • PWM占空比:高电平在一个PWM周期内所占的比例

蜂鸣器:

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

  • 有源蜂鸣器:有源蜂鸣器内部有震荡源,上电后会持续发出一个固定频率的声音
  • 无源蜂鸣器:无源蜂鸣器内部没有震荡源,需要给定蜂鸣器一个震荡
相关推荐
_Ningye1 小时前
STM32 — 6.1 TIM定时中断
stm32·单片机·嵌入式硬件
小白学电子_2 小时前
proteus仿真51单片机通过矩阵按键和数码管制作简单计算器
嵌入式硬件·51单片机·proteus
FreakStudio3 小时前
把 Flask 搬进 ESP32,高中生自研嵌入式 Web 框架 MicroFlask !
python·单片机·嵌入式·cortex-m3·异步编程·电子diy
AnalogElectronic4 小时前
RP2040 pico 实验6,光敏电阻传感器模块(LM393 比较器版)
单片机
17(无规则自律)4 小时前
【Linux驱动实战】:字符设备之ioctl与mutex全解析
linux·c语言·驱动开发·嵌入式硬件
电子工程师成长日记-C514 小时前
51单片机4乘4计算器
单片机·嵌入式硬件·51单片机
梅尔文.古4 小时前
ADCU-Ethernet-以太网在AUTOSAR与Linux架构下对比
arm开发·单片机·汽车
没有医保李先生4 小时前
esp32和stm32的工程宏定义
stm32·单片机·嵌入式硬件
炸膛坦客5 小时前
单片机/C/C++八股:(十五)内存对齐、结构体内存对齐
c语言·开发语言·单片机
szxinmai主板定制专家5 小时前
基于ZYNQ MPSOC船舶数据采集仪器设计(一)总体设计方案,包括振动、压力、温度、流量等参数
arm开发·人工智能·嵌入式硬件·fpga开发