嵌入式硬件 - 51单片机2

一、工作模式

输出模式

单片机给定引脚一个电平(高电平(5V) 低电平(0V)),控制引脚实现高低电平

输入模式

检测引脚电平变化

二、按键

按键K1,两个引脚被接到GND和P1_4引脚,当K1按键被按下时,P1_4引脚会和GND短路到一起,P1_4引脚会呈现低电平

判断按键是否被按下:只需要检测对应的引脚是否为低电平

独立按键模块

检测哪个按键被按下

三、中断

1. 相关概念

1. 中断

CPU在执行一个任务时,被外界更为紧急的事件打断,转而去执行更为紧急的任务,执行完后再回到刚才的地方继续向下执行,这一过程叫做中断

2. 中断源

打断CPU执行当前任务的事件源头叫做中断源,51单片机中5个中断源

3. 中断源分类(51单片机)

外部中断0、外部中断1、定时器/计数器0、定时器/计数器1、串口中断

4. 外部中断

单片机上的引脚电平变化所引发的中断(INT0(P3-2)、INT1(P3-3))

**外部中断:**低电平触发,下降沿触发

**串口中断:**由发送完成或接收完成触发

**定时器中断:**定时器溢出时触发

5. 中断优先级

CPU再去处理中断任务时候,会去比较多个中断的优先级,优先去处理优先级高的中断

高优先级中断可打断正在执行的低优先级中断

统计终端或低优先级中断不能相互打断

同时发生时,按自然优先级顺序响应

6. 中断嵌套

处理一个中断时,再嵌套另外的中断;

51单片机只允许嵌套2层

同级中断无法嵌套

2. 中断步骤

中断源发出中断请求 => 检查CPU是否响应中断及该中断源是否被屏蔽 =>

比较中断优先级 => 保护现场 => 执行中断服务函数(回调函数) =>

恢复现场

3. 中断相关寄存器

1. IE寄存器(中断允许寄存器)

2.TCON寄存器(定时器寄存器)

通过中断实现低电平触发时数码管变化

四、定时器

1. 相关概念

能够产生一个精准的定时,不同外设对时序的要求高(高电平和低电平时间是精准的)

51单片机内部有两个定时器,分别为timer0、timer1,所使用自增型定时器(计数器 16位)

2. 工作模式

定时器/计数器0有4种工作模式:

模式0(13位定时器/计数器), 模式1(16位定时器/计数器模式),

模式2(8位自动重装模式), 模式3(两个8位定时器/计数器)。

定时器/计数器1除模式3外,其他工作模式与定时器/计数器0相同,T1在模式3时无效,停止计数。

3. 定时步骤

  1. 先配置TMOD模式选择寄存器,将低四位清0,再将bit0置1代表工作在16位定时器

  2. 向TH0和TL0中装入定时器的初值(1ms -> 64535)

  3. 将TCON寄存器中的bit6置1,代表允许定时器开始计数

  4. 将IE寄存器中的bit7和bit1置1,开启中断总开关和定时器0的子开关

  5. 编写定时器0的中断服务函数

4. 定时器相关寄存器

1. TCON寄存器

(1)bit4置1,TMOD寄存器中的Gate位清0, 代表允许定时器开始计数

2. TMOD寄存器

(1)定时器0->低四位清0

(2)将TMOD寄存器中的M0,bit0置1,代表定时器0工作在16位定时器/计数器模式

3. IE寄存器(中断)

(1)将IE寄存器中的bit7置1,代表CPU能够响应所有中断

(2)将IE寄存器中的bit1置1,代表允许定时器0产生中断

5. 计算初值

晶振有12MHZ / 11.0592KHZ

计算步骤:

51单片机达不到12MHZ,将12MHZ进行12分频,12MHZ/12 = 1MHZ

51单片机完成一条指令运算:1/1MHZ = 1us

通过定时器0实现1ms定时:1ms = 1000us

定时器初值:65535 - 1000 = 64535

计算初值(11.0592KHZ)

实现隔 1s LED翻转一次

五、PWM控制蜂鸣器

1. 相关概念

脉冲宽度调制,能够让引脚产生一个方波,周期性的让引脚的电平发生翻转

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

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

2. 蜂鸣器

震荡源 -> 声音(波)-> 音调不同 -> 波的频率发生变化 -> 高音 高频 低音 低频 音量不同 -> 波的振幅 -> 能量

有源蜂鸣器:存在震荡源,通电后蜂鸣器会发出持续频率的声音

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

计算初值 :(11.0592KHZ)

实现定时器溢出中断时通过PWM控制蜂鸣器

相关推荐
cjy_Somnr3 小时前
keil5报错显示stm32的SWDIO未连接不能烧录
stm32·单片机·嵌入式硬件
Lay_鑫辰4 小时前
西门子诊断-状态和错误位(“轴”工艺对象 V1...3)
服务器·网络·单片机·嵌入式硬件·自动化
无垠的广袤6 小时前
【工业树莓派 CM0 NANO 单板计算机】本地部署 EMQX
linux·python·嵌入式硬件·物联网·树莓派·emqx·工业物联网
雲烟8 小时前
嵌入式设备EMC安规检测参考
网络·单片机·嵌入式硬件
泽虞8 小时前
《STM32单片机开发》p7
笔记·stm32·单片机·嵌入式硬件
田甲8 小时前
【STM32】 数码管驱动
stm32·单片机·嵌入式硬件
up向上up9 小时前
基于51单片机垃圾箱自动分类加料机快递物流分拣器系统设计
单片机·嵌入式硬件·51单片机
纳祥科技18 小时前
Switch快充方案,内置GaN,集成了多个独立芯片
单片机
资料,小偿18 小时前
4.1.2基于51单片机汇编语言出租车计价器proteus仿真出租车计价器,汇编语言51单片机
汇编·51单片机·proteus
单片机日志19 小时前
【单片机毕业设计】【mcugc-mcu826】基于单片机的智能风扇系统设计
stm32·单片机·嵌入式硬件·毕业设计·智能家居·课程设计·电子信息