51单片机--中断/定时/PWM

GPIO

GPIO:Genral Purpose Input/Output,通用目的输入输出

引脚输入输出

两种工作模式:

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

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

按键

  1. 按键一端接到GND,另外一端接到GPIO引脚
  2. 如果按键被按下,GND会和引脚短路到一起,此时引脚呈现低电平,代表按键被按下

中断

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

中断源

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

中断源分类

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

外部中断

引脚电平变化所引发的中断
INT0:P3_2引脚 INT1:P3_3引脚

中断优先级

CPU总是先处理优先级高的中断,处理完优先级高的中断后再处理优先级低中断
优先级:INT0>TIMER0>INT1>TIMER1>UART

中断嵌套

CPU处理一个中断时再去嵌套另外一个中断任务(最多两层嵌套)

中断处理流程(中断源->CPU过程)

1.中断源发出中断请求

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

3.比较中断优先级

4.保护现场

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

6.恢复现场

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

中断向量:中断向量表中的标号,通过标号可以访问到对应中断服务函数

中断相关寄存器

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

TCON寄存器(定时器寄存器)

定时器

概念:能够产生一个精准的定时,不同外设对时序的要求高(高电平和低电平时间是精准的)51单片机内部有两个定时器,分别为timer0、timer1,所使用自增型定时器(计数器 16位)

工作模式

定时器/计数器0有4种工作模式

  • 模式0(13位定时器/计数器)
  • 模式1(16位定时器/计数器模式)
  • 模式2(8位自动重装模式)
  • 模式3(两个8位定时器/计数器)

定时器/计数器1除模式3外,其他工作模式与定时器/计数器0相同,T1在模式3时无效,停止计数。

定时步骤

  1. 先配置TMOD模式选择寄存器,将低四位清0,再将bit0置1代表工作在16位定时器

  2. 向TH0和TL0中装入定时器的初值(1ms -> 64535)

  3. 将TCON寄存器中的bit6置1,代表允许定时器开始计数

  4. 将IE寄存器中的bit7和bit1置1,开启中断总开关和定时器0的子开关

  5. 编写定时器0的中断服务函数

定时器相关寄存器

TCON寄存器

bit4置1,TMOD寄存器中的Gate位清0, 代表允许定时器开始计数

TMOD寄存器

  • 定时器0->低四位清0
  • 将TMOD寄存器中的M0,bit0置1,代表定时器0工作在16位定时器/计数器模式

IE寄存器(中断)

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

计算初值

晶振有12MHZ / 11.0592KHZ

计算步骤:

  • 51单片机达不到12MHZ,将12MHZ进行12分频,12MHZ/12 = 1MHZ
  • 51单片机完成一条指令运算:1/1MHZ = 1us
  • 通过定时器0实现1ms定时:1ms = 1000us
  • 定时器初值:65535 - 1000 = 64535

PWM控制蜂鸣器

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

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

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

蜂鸣器

有源蜂鸣器:内部存在震荡源,通电后可以发出持续固定频率的声音
无源蜂鸣器:不存在震荡源,需要给定对应引脚一个高低电平产生震荡(可以输出指定频率音调)

计算初值

相关推荐
幼儿园蛋小黑39 分钟前
单片机数码管LED灯独立按键中断定时器综合实战
单片机·嵌入式硬件
自小吃多1 小时前
PCB Editor软件复制、改变、删除操作笔记
笔记·嵌入式硬件
数字新视界2 小时前
数据中心基础设施管理系统发布新版本,助力企业云化转型
嵌入式硬件·物联网·数据中心·数据中心基础设施管理·dcim管理系统
SKH.3 小时前
单片机(1)
单片机·嵌入式硬件
llilian_163 小时前
小切口解决大问题:时序校准场景下的标准时间间隔脉冲信号发生器应用方案
功能测试·单片机·嵌入式硬件·51单片机
三块石头1013 小时前
车载ADC避坑:为什么ADC采集值偏低?
经验分享·stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程
jianqiang.xue4 小时前
ESP-IDF保姆级入门39|固件安全与安全启动全解:签名校验/Flash加密/防回滚/OTP密钥/知识产权保护,掌握工业级固件安全防护体系
单片机·物联网·esp32
llilian_164 小时前
时间统一系统 高精度时统设备选购避坑指南 授时系统
大数据·网络·人工智能·功能测试·单片机·嵌入式硬件·51单片机
en.en..4 小时前
sizeof与strlen的区别(附UDP网络编程实战坑点)
单片机·嵌入式硬件
AOI小白新手上路4 小时前
韦东山IMX6ULL快速入门路线
嵌入式硬件