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单片机中最多允许中断嵌套两层
中断处理流程
- 中断源发出中断请求
- 检测 CPU是否响应中断(总开关),以及该中断源是否被屏蔽(子开关)
- 比较中断优先级
- 保护现场
- 执行中断服务函数
- 恢复现场
寄存器配置


下降沿一瞬间触发
配置过程
将外部中断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占空比:高电平在一个周期内所占的比例

蜂鸣器
有源蜂鸣器:内部会存在震荡源,上电后蜂鸣器会发出固定频率的声音
无源蜂鸣器
电路图
高电平导通,低电平阻,翻转电平发声



