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 的声调

相关推荐
孤影过客2 小时前
X86架构黎明:从0xFFFFFFF0开始的内存空间重构与寻址深潜
单片机·重构·架构
chao1898442 小时前
STM32F103C8T6驱动LDC1614测试程序
stm32·单片机·嵌入式硬件
梦..3 小时前
Allegro学习记录(一)
arm开发·单片机·嵌入式硬件·学习·硬件架构·硬件工程·pcb工艺
零一iTEM3 小时前
低功耗开关机电路
嵌入式硬件
智者知已应修善业3 小时前
【51单片机用两个定时计数器级联实现定时】2023-04-12
c语言·经验分享·笔记·算法·51单片机
2401_858936883 小时前
51 单片机核心知识点:GPIO、中断、定时器与蜂鸣器驱动
单片机·mongodb·nosql
三佛科技-187366133973 小时前
FT838NB1-RT原边反馈5级能效电源控制器5V1A芯片电路图及管脚定义
单片机·嵌入式硬件·物联网
2501_918126913 小时前
学习所有6502写游戏控制器的语句
java·linux·网络·汇编·嵌入式硬件
qqssss121dfd4 小时前
STM32H750XBH6的ETH模块的IPv4 ARP offload功能分析
stm32·单片机·嵌入式硬件