51单片机 02

📅 2026/7/13 4:53:30 👁️ 阅读次数 📝 编程学习
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. 有源蜂鸣器、无源蜂鸣器。

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

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