当前位置: 首页 > news >正文

单片机day2

1.GPIO

GPIO:Genral Purpose Input/Output,GPIO是51单片机和外界交互最基本的方式

工作模式:

  • 输出模式:单片机给定引脚一个电平(高电平(5V) 低电平(0V)),控制引脚实现高低电平
  • 输入模式:检测引脚电平变化

2.按键

3.中断

  • 中断概念:CPU在执行一个任务时,被外界更为紧急的事件打断,转而去执行更为紧急的任务,执行完后再回到刚才的地方继续向下执行,这一过程叫做中断
  • 中断源:打断CPU执行当前任务的事件/源头叫做中断源 (51单片机中5个中断源)
  • 中断源分类:外部中断0、外部中断1、定时器0、定时器1、串口
  • 外部中断:单片机上的引引脚电平变化所引发的中断(INTO(P3-2)、INT1(P3-3))
  • 中断优先级:CPU再去处理中断任务时候,会去比较多个中断的优先级,优先去处理优先级高的中断
  • 中断嵌套:处理一个中断时,再嵌套另外的中断;51单片机只允许嵌套2层

中断处理流程:

  1. 中断源发出中断请求
  2. 检查CPU是否响应中断及该中断源是否被屏蔽
  3. 比较中断优先级
  4. 保护现场
  5. 执行中断服务函数 (回调函数)
  6. 恢复现场

3.1中断相关寄存函数

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

  • 将IE寄存器中的bit7,EA置1,代表CPU能够响应所有中断
  • 将IE寄存器中的bitO,EX0置1,代表允许外部中断0产生中断

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

  • 将TCON寄存器的bit1,IEO置1,代表向CPU发起中断请求,CPU响应完中断请求后,硬件清“0"
  • 将TCON寄存器的bitO,ITO置1,代表外部中断O下降沿触发中断

4.定时器

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

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

4.1 定器相关寄存器配置

8位自动重装载定时器:分为TL0和TH0两部分, 1byte, 实际参与计数的只有TL0, 当TL0的值加到255溢出后, 再将TH0的值重新装入TL0中

TCON寄存器:

1.bit4置1, 代表允许定时器开始计时

TMOD寄存器:

1.定时器0 -> 低四位清0

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

流程

  1. 先配置TMOD模式选择寄存器, 将低四位清零, 再将bit0置1代表工作在16位定时器
  2. 向TH0和TL0中装入定时器的初值(1ms -> 64535)
  3. 将TCON寄存器的bit4置1, 代表允许定时器开始计时
  4. 将IE寄存器中的bit7和bit1置1, 开启中断后

5.PWM、 蜂鸣器

PWM:

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

PWM的周期:一个方波所经历的周期

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

蜂鸣器:

震荡源->声音(波)->音调不同->波的频率发生变化->高音高频低音低频音量不同->波的振幅->能量
有源蜂鸣器:存在震荡源,通电后蜂鸣器会发出持续频率的声音
无源蜂鸣器:不存在震荡源,通电后蜂鸣器不会发出声音,需要给蜂鸣器一个震荡

http://www.dtcms.com/a/366028.html

相关文章:

  • 配置时钟分频与倍频
  • 解构复杂财务逆向业务:如何优雅地生成与管理负数单?
  • Python基础(⑥属性装饰器)
  • 你只需输入一句话,MoneyPrinterTurbo直接给你输出一个视频
  • 普通人如何用 AI 提效?5 个低门槛工具 + 3 类场景案例,让 AI 成为日常助手
  • phpstorm 操作git 另外的操作在 我的收藏
  • c#编写的应用程序调用不在同一文件夹下的DLL
  • Java继承
  • c++ zint二维码、条形码开发库
  • c++多线程(1)------创建和管理线程td::thread
  • Python数据分析与处理(二):将数据写回.mat文件的不同方法【超详细】
  • AI+法律:用ERNIE-Bot解析合同条款,识别风险点
  • 进程管理和IPC
  • 常用假设检验方法及 Python 实现
  • 多层环境室内定位系统综述总结
  • 【JavaEE】(22) Spring 事务
  • 苏哒智能会议一体机:让会议管理进入智能时代
  • Java与Vue构建的企业设备资产管理系统,集成后台管理与移动端操作,覆盖设备全生命周期,支持采购、维护、报废等流程,提供完整源码,助力企业高效管控资产
  • 刻意练习实践说明使用手册
  • nginx配置讲解
  • GitLens:VS Code下高效解决代码追溯的Git管理实用插件
  • Spring Boot + Nacos 配置中心示例工程
  • ego(2)---初始轨迹生成后的关键点采样
  • 一文读懂线性回归的灵魂:成本函数 J(w,b) 全解析
  • K8s基于节点软亲和的高 CPU Pod 扩容与优先调度方案
  • 华为OD最新机试真题-二进制差异数-OD统一考试(C卷)
  • 《K8s网络策略与CNI插件交互问题分析:基于真实案例的排查方法》
  • 卷积操作原来分3种
  • (二)文件管理-基础命令-mkdir命令的使用
  • C++CSP-J/S必背模板