0%

stm32_note_09day

===========================
2022-8-25
===========================

一.温故知新

    1.根据分析的DHT11的读写时序来写DHT11传感器的驱动
    2.分析DS18B20传感器的内容
        1)三管脚的封装形式(VCC DQ GND)
        2)一线传输(以串行的方式传输数据)<半双工的工作模式>
        3)工作电压范围	3.0V - 5.5V
        4)测量范围	-55℃ - +125℃
        5)误差范围(在-10℃ - 85℃)会有±0.5℃的误差
        6)可以采集到整数的数据和小数的数据
        7)在DS18B20的内部会有9个字节的暂存器
        第0个字节		温度的低字节数据
        第1个字节		温度的高字节数据
            高字节的高5位是符号位
            存储的是温度的补码数据
        第2个字节		温度的上限
        第3个字节		温度的下限
        第4个字节		配置
            是用来配置DS18B20采集温度所占位数
            0 R1 R0 1 1 1 1 1
            00	9bit的温度数据
            01	10bit的温度数据
            10	11bit的温度数据
            11	12bit的温度数据
        第5 6 7字节	保留
        第8个字节		检验
        8)在DS18B20传感器中支持很多的指令
        9)DS18B20官方手册给了发送指令的案例
        A)分析DS18B20的读写时序

二.数码管

    我们的开发板上使用的四位共阴极的数码管
    1.显示类的设备
    市面上的显示类型的设备有很多种
    LCD、OLED、数码管、段码屏、点阵屏、光立方...
    2.数码管
    数码管可以分为七段数码管和八段数码管
    八段数码管要比七段数码管多一个用于显示小数的小数点
    数码管中的每一个段就相当于是一个LED灯
    3.共阴极数码管和共阳极数码管
    共阴极数码管 : 数码管上所有的LED灯的阴极都连接到了一起,接地
    共阳极数码管 : 数码管上所有的LED灯的阳极都连接到了一起,接电源
    共阴极数码管的编码和共阳极数码管的编码正好相反
    共阳极数码管的编码 :
    uchar code table[]={0xc0,0xf9,0xa4,0xb0,//0 1 2 3
            0x99,0x92,0x82,0xf8,//4 5 6 7
            0x80,0x90,0x88,0x83,//8 9 A B
            0xc6,0xa1,0x86,0x8e};//C D E F
    共阴极数码管的编码 :
    uchar code table[]={0x3f,0x06,0x5b,0x4f,//0 1 2 3
            0x66,0x6d,0x7d,0x07,//4 5 6 7
            0x7f,0x6f,0x77,0x7c,//8 9 A B
            0x39,0x5e,0x79,0x71};//C D E F
    如何获取数码管的编码
    1)可以百度查找
    2)可以通过转换软件直接转换
    4.四位数码管
    四位数码管可以分别显示千位 百位 十位 个位
    已知一个数码管有8个LED灯需要8个数据段
    四位数码管有32个LED灯需要32个数据段
    如果直接连接到芯片的管脚上需要消耗芯片的32个管脚
    这样的方式对于芯片的管脚来说太浪费了
    5.四位数码管的问题

原理图

        1)芯片管脚的浪费
        把所有数码管的A段都连接到一起
        把所有数码管的B段都连接到一起
        ...
        把所有数码管的DP段都连接到一起
        2)相同数据段都连接到了一起
        给四位数码管一个数据编码,这4个数码管会显示相同的数据
        3)把四位数码管的4个公共端也都连接到GPIO的管脚上
        将来想要让某个数码管显示数据,就让给数码管的公共端输出低电平
        其他数码管输出高电平
        4)经过2) 3)的处理产生了一个问题,
            四位数码管不能同时显示不同的数据
        利用人眼睛的视觉暂留
    6.分析开发板原理图
        开发板上的四位共阴极的数码管
        公共端连接到了74HC138模块上
        数据段连接到了74HC595模块上
        如果想要驱动数码管,首先需要驱动74HC138和74HC595
    7.分析74HC138

74HC138

        74HC138是一个典型的三八译码器(是作为一个选择器来使用的)
        三个输入,八个输出(给一定的输入就会用相应的输出)
    打开<STM32RBT6\DataSheet\其他>目录下<74HC138.pdf>
        P3	封装形式(了解管脚功能)
        P4	真值表
        查看开发板原理图
        
    8.

74HC595

        74HC595是一个可以把串行数据转换成并行数据的模块
    打开<STM32RBT6\DataSheet\其他>目录下<74HC595.pdf>
        P4	封装形式(了解管脚功能)
        P5	工作原理分析
        
    9.根据开发板原理图把需要操作的管脚找到
    HC138_A0	PC11	74HC138中的控制	推挽输出
    HC138_A1	PC12	74HC138中的控制	推挽输出
    HC138_A2	PD2	74HC138中的控制	推挽输出
    HC595_SCLK	PB5	移位寄存器的时钟	推挽输出
    HC595_LCLK	PB4	存储寄存器的时钟	推挽输出
    HC595_DATA	PB3	把串行数据存储到	推挽输出
                移位寄存器中

==============================
任务
1.把9527显示到数码管上
2.把DHT11采集的温湿度的数据显示到数码管上
==============================
作业
1.把今天讲过的内容完整的复习一遍
2.把开发板作为记秒表的设备
    KEY0	开始记秒表
    KEY1	暂停
    KEY2	清零
    00.00
    秒数.
==============================