单片机知识点相对详细版总结

单片机小实验

1.有一个想法,做一个倒数计时器
2.模块化编程,delay.h 为什么可以被调用两次?

  1. 键盘密码锁和蜂鸣器的结合使用
  2. 定时器闹钟
  3. 温度报警器和蜂鸣器的结合使用

单片机相关的英语

最根本的解决途径:看手册,浏览器搜索

不是固定的,可以人为按照需求自由地自定义使用命名

​ SRCLK: serial clock,串行时钟

​ RCLK: receive clock

​ SER: serial

​ SRCLR: serial clear

必备的基础知识

单位转换

计算单位
毫 微 纳 皮 飞
k m g
m 这个单位是“兆”,在现代科学上表示 百万1 000 000. 在中国古代表示“亿亿”


各种物理量


编码方式

  • 2(binary),8(octal),10(decimal),16(hexadecimal) 进制
  • ascii , , bcd

知识点

7-2 定时器

  • 晶振: 电路中的陶瓷发出固定频率的可以被检测到的震动
  • 晶振频率
  • 单片机(11.0592mhz),计算机(3.20 GHz)的CPU频率说的就是晶振频率
  • 定时器:三个部件模块的电路图实现,以及相关学习寄存器的功能实现(软件编程控制寄存器,寄存器实现电路硬件功能)
  • 前半段讲的是 定时器的代码实现逻辑;后半部分讲的是定时器结合其他模块一起工作。
  • 可是我的定时器不准确,太慢了。就算把时钟频 改成11.0592,和手机的相比,一分钟慢了六秒我去。
  • 代码:定时器实现时钟

8-1 串口

  • 串口的相关概念。串口的电路图实现,如何配置相关的寄存器
    貌似发送不需要中断,接受需 要中断把数据取出来
  • 计算波特率
  • 编码方式:字符与ascii码和hex码的对应关系
  • 双八位定时寄存器:把初值写到高字节(8位),只使用低字节(8位)做定时器,溢出时自动使用高字节初始化低字节,立即 开始下一次定时。
  • 代码:单片机与电脑相互传输数据

9-1 LCD 点阵屏

  • 点阵屏是什么
  • 电路图实现
  • 74HC595 拓展 io口 实现
  • 代码:静态的笑脸和笑脸动画

DS1302实时时钟

  • DS1302:是一个外设时钟芯片,对比单片机自带的定时器
    1. 定时器额外消耗cpu性能,造成资源的浪费
    2. 定时器精度不如DS1302,深有体会
    3. DS1302是实时工作的,就算单片机断电,还能连接本身自带的电池继续工作,直到单片机下次供电(但是,单片机上的没电池)
  • 地址/命令字节 Address / Command Byte
  • 用的是bcd 编码
  • 芯片的内部结构,实现原理!!
  • 代码:实现一个可视化时钟;第二个不想看了,以后再说吧

image-20231029210142392


蜂鸣器

  • 一开始还以为是单片机的其他问题,或许是声音太小听不见,后来是芯片开发板不同的原因,浪费好多时间。不行的话,直接用卖家的代码就好了

  • 解决问题了,电路图也很简单

  • 蜂鸣器:利用脉冲电流来驱动金属板的振动以产生声音。需要不断地反转电平,不然金属板就会一直被压在一侧无法震动,也就无法产出声音

  • ULN2023芯片,没听懂,只知道取反输出

  • 一些基础的蜂鸣器用到的乐理知识,两个要点:音高,按下的时间长短(四分音符作为时间标准)。

  • image-20231029210424658

  • 音色由震动的频率来决定,定时器计时模拟频率

    • 计算重装载值,中断,反转io口(结合ULN2023芯片)
  • 代码:1.按键提示声音;2.播放音乐

    • 计算重装载值,中断,反转io口
    • 音色,弹奏时间,停顿等等在程序中的表达存储

AT24C02(I^2C总线)

  • 老师讲课给小明,然后老师提问小明回答问题的例子

  • 存储器分类介绍(小知识:硬盘C、D盘;软盘(被淘汰所以没有了)A、B盘。光盘:光信息存储)

  • 存储器简化模型:

    • 行和列是不重叠的
    • 烧录概念的意思和由来 PROM--->EPROM(稳压二极管 反向击穿可逆)
    • PROM,烧录的时候,怎么样依次相应选中,依次相应击穿二极管?(熔丝和两个二极管 写入相反,二极管是熔丝的升级版,熔丝太大了)
    • 郭天祥是真的牛掰,讲的很清楚了,通过特殊的高压编程器控制D1--D8 的电压,实现数据的烧录
    • image-20231105224125248
  • AT24C02:掉电不丢失的储存芯片

    • 引脚,内部结构框图
    • 字节写,随机读
  • IIC 总线

    • 协议规范

      • 工作原理,结构图
  • 时序

    • 开始结束,发送接收,收发应答 六块拼图

    • 数据帧,比喻成载货的火车,装东西,运出去,实现数据传输。

      • 普通的,复合格式
  • 代码:

    1. 普通的数据储存

      1. 定时器扫描按键数码管外加数据储存(定时器每隔一段时间进行扫描(中断,然后cpu进行处理,实际上仍然是cpu进行扫描,提高使用体验(优先级高的任务尽快完成)但扫描频率降低了,cpu处理扫描的工作时间减少了,提高cpu的利用率)。重点还是在于:定时器扫描提高cpu效率

DS18B20 温度传感器

本节课的任务就是单片机cpu 与 温度传感器 进行 数据交互。那么下面这些是需要了解的。

  1. 温度传感器的知识点。

  2. 数据交互: 用到 数据通信的知识点,总线,协议。


  • DS18B20 温度传感器 简介 数字传感器 vs 模拟传感器
  • 引脚、內部框图(身份证校验码,有兴趣可以了解一下)
  • 单总线(1-Write Bus) vs I2C
    • 工作模式,协议,时序
    • 单总线不允许中断,I2C可以。
      • 因为I2C有单独的时钟线,被中断后没有影响
      • 单总线依赖绝对的微秒级别的时间,被中断后受影响很大
  • 数据帧结构
  • 代码:1. 直接读取环境的温度; 2.温度报警器(结合前面做的都总结实践了)

LCD1602 显示屏

Liquid Crystal(晶体) Display ,也是一个单独的集成芯片,自动不断扫描,规定好可以显示的字符对应的字符码表

​ 基本功能:showchar(); 其余的都是相对进阶功能

  1. 引脚和应用电路image-20231102145219967
  2. 也是数据传输部分。时序结构, 数据帧
  3. 写指令(初始化)---->写数据
  4. 代码:1.编写LCD1602 显示屏的代码
    • 感觉使用ShowString() > ShowNum()
    • 流动字幕

直流电机驱动(PWM)

  1. 电机的工作原理,梦回中学,磁场,电流,作用力

    线圈转动带动铁心转动,这就是电机转动

  2. 感应电压他说的不太清楚,以后再看。

  3. PWM:Pulse Width Modulation 脉冲宽度调制

    • 具有“惯性”的情况下使用,用来控制以某种想要的“程度”
    • LED呼吸灯, 电机挡位控制
  4. 代码:LED呼吸灯, 电机挡位控制


AD/DA, XPT2046

  1. 概念

  2. 工作的例子

    image-20231103235724384
  3. 原理解析:听不懂哦。细节没懂,会用就行了吧,呜呜呜

  4. 运算放大器

  5. 代码:数模相互转换的例子

  6. 总结,要是不去理解具体是怎么工作的话,这玩意用起来是真的简单。


红外遥控

  1. 简介

  2. 硬件电路:遥控器发送光信号,开发板接收

  3. 外部中断

  4. 代码:

      1. 普通的红外遥控(基础) 2.
    • 写代码的时候,遥控器--->开发板上的红外接收模块不用管,别人已经做好的了,直到相关的原理概念就可以了

    • 重点是读取和识别 红外接收模块 发送出来的数据(连接到外部中断), 判断 是一还是零(组成发送出去的信号(开始,机器地址,按键码,一直按下的情况))。。这根据信号时间长短(两个下降沿的时间间隔)来决定,因此就用到了定时器

    • 定时器的计时器使用而不是中断

    • 接收到外部中断后,就可以进行逻辑判断(按键码)是遥控器上的哪个按键按下了,然后进行相应的处理


难点回顾

  • 定时器
  • 串口
  • AT24C02(I^2C总线)
  • AD/DA,这个是听不懂,算了,现在了解一个大概就好了,等需要在细学

杂七杂八

被那个自动下载坑惨了,出现莫名其妙的错误

学习收获

  1. 单片机的知识
  2. 对计算机体系结构加深认识理解
  3. 学习到各种硬件知识和通讯协议相关的原理
posted @ 2023-11-07 00:12  被占用的小海海  阅读(35)  评论(0编辑  收藏  举报