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,直到计满溢出。溢出的瞬间会发生两件事:
硬件自动将
TH0中的数值,瞬间复制到TL0中。这就是自动重装,无需CPU干预.硬件将中断标志位
TF0置1,向CPU发出中断请求.
10.PWM周期
PWM:脉冲宽度调制,能够让引脚产生一个方波,能够让引脚周期性产生电平变化
PWM周期:一个方波所经历的周期(上升沿/下降沿到下一个上升沿/下降沿所经历的时间)
11. PWM占空比
PWM占空比:在一个周期内高电平所占的比例(LCD屏幕亮度调节、LED灯亮度调节、蜂鸣器)
12. 有源蜂鸣器、无源蜂鸣器。
有源蜂鸣器:内部存在震荡源,通电后可以发出持续固定频率的声音
无源蜂鸣器:不存在震荡源,需要给定对应引脚一个高低电平产生震荡(可以输出指定频率音调)
