51单片机入门(2)

一、GPIO

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

输出模式:给定引脚电平,控制引脚高低电平的变化

推挽 输出

开漏输出 LED 数码管

复用 推挽

复用 开漏

输入模式: 检测引脚电平变化

上拉 输入

下拉 输入

浮空 输入

模拟 输入

例:利用按键和数码管实现按哪个键数码管就显示几

二、中断

1、概念:当CPU执行某个任务时,外界发生了一个紧急事件,要求CPU放下当前的任务,转而去执行这个更为紧 急的事件,执行完紧急事件后再回到原来被打断的地方 继续向下执行

2、中断源:打断CPU执行当前任务的源头/事件

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

外部中断:引脚电平的变化所引发的中断(P3_2 P3_3)

3、中断优先级:CPU去执行中断任务时,会去比较多个中断的优先级,优先去执 行优先级更高的中断

51单片机中最多允许中断嵌套两层

4、中断 处理流程:

(1)中断源发出中断请求

(2)检查CPU是否响应中断(总开关)及该中断源被屏蔽(子开关)

(3)比较中断优先级

(4)保护现场

(5)执行中断服务函数

(6)恢复现场

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

6、中断向量:本质上是一个标号, 可以通过标号在中断向量表中找到中断服务函数的入口地址

练习:利用外部中断0实现P32引脚接地(产生下降沿时)数码管加1

三、定时器

timer0 计数器0 16位模式定时器 65535 自增型定时器

timer1 计数器1

12MHZ -> 定时器

11.0592MHZ -> 波特率

分频器: 12MHZ / 12 = 1MHZ

11.0592MHZ / 12 = 0.9216MHZ

时间: 1 / 1MHZ = 1us

1 / 0.9216MHZ = 1.085us

用定时器0定时1ms:

1ms = 1000us

1000us / 1us = 1000

1000us / 1.085us = 922

初值:65535 - 1000 = 64535 12MHZ

65535 - 922 = 64,613 11.0592MHZ

练习:利用定时器0中断实现每隔0.5秒LED翻转一次

四、PWM:

1、脉冲宽度调制,能够使引脚 产生一个方波

2、PWM可以让引脚电平周期性进行翻转

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

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

五、蜂鸣器

有源蜂鸣器:内部会存在震荡源,上 电后蜂鸣器会发出固定频率的声音

无源蜂鸣器:内部不存在震荡源,上 电后不会发出声音,需要给定一个震荡

震荡源

波 -> 音调不同 高音 高频 低音 低频 音量 -> 振幅大小

例:频率:200HZ,占空比:50%,利用定时器使蜂鸣器发出声调

定时器定时时间:1 / 200HZ = 0.005s

0.005 / 2 = 0.0025s

12MHZ * 10 ^ 6 = 12,000,000HZ

12分频: 12,000,000 / 12 = 1000 000HZ

时间:1 / 1000 000HZ = 0.000001s

计数次数: 0.0025s / 0.000001s = 2500

初值:65535 - 2500 = 63035

练习:利用定时器0中断实现蜂鸣器发出400HZ 的声调

相关推荐
4caf13 分钟前
作业2:6位数码管静态显示
嵌入式硬件·51单片机
不做无法实现的梦~31 分钟前
STM32解析PPM协议
stm32·单片机·嵌入式硬件
czhaii1 小时前
基于Arm Cortex-M7内核GD32H7
单片机·嵌入式硬件
番茄灭世神1 小时前
MCU开发常见软件BUG总结(持续更新)
c语言·stm32·单片机·嵌入式·gd32
wanghanjiett2 小时前
双轮平衡车建模及控制 2 PID控制原理与调参
嵌入式硬件·控制算法
EVERSPIN2 小时前
SQPI PSRAM为单片机提供RAM扩展方案
单片机·嵌入式硬件·psram·sqpi psram
Ar-Sr-Na2 小时前
STM32现代化AI开发指南-VSCode环境配置(macOS)
c语言·人工智能·vscode·stm32·嵌入式硬件·硬件工程
进击的小头2 小时前
第6篇:嵌入式芯片算力核心来源:多级流水线架构与指令并行机制详解
单片机·嵌入式硬件·架构
jacklood2 小时前
煤矿用甲烷报警仪的性能试验具体方法
单片机·嵌入式硬件·煤矿电子
不做无法实现的梦~3 小时前
px4仿真和示例运行
单片机·嵌入式硬件