2021年8月

74HC573锁存器的介绍

锁存器是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制器与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。锁存器是利用电平控制数据的输入,它包括不带使能控制的锁存器和带使能控制的锁存器。
74HC573引脚图.png

74HC573锁存器的使用

74HC573真值表.png
由真值表可以看出,当OE为高电平时,无论LE与D端为何种电平状态,其输出都为高阻态,此时该芯片处于不可控状态。当OE为低电平时,我们再看LE,当LE为H时,D与Q同时为H或L;而当LE为L时,无论D为何种电平状态,Q都保持.上一次的数据状态。这也就是说,当LE为高电平时,Q端数据状态紧随D端数据状态变化;而当LE为低电平时,Q端数据将保持住LE端变化为低电平之前Q端的数据状态。因此我们将锁存器的LE端与单片机的某一引脚相连,再将锁存器的数据输入端与单片机的某组I/O 口相连,便可通过控制锁存器的锁存端与锁存器的数据输入端的数据状态来改变锁存器的数据输出端的数据状态。

注:真值表中字母代码含义如下:H高电平;L低电平;X任意电平;Z高组态,也就是既不是高电平也不是低电平,它的电平状态由与它相连的其他电气状态决定;Q0上次的电平状态。

我们都知道在我们进行浮点运算的时候经常遇到的一个麻烦事就是精度问题,在js里面,0.1+0.2等于0.30000000000000004。为了解决这种精度丢失的问题我们可以先给每个小数乘以100转为正数,在最后除以100还原为浮点数这样也行。不过我们也可以借助big.js来解决任意精度的大十进制算术运算。

首先安装big.js

  • 可以直接导入

    <script src='https://cdn.jsdelivr.net/npm/big.js@6.0.0/big.min.js'></script>
  • 也可以通过npm安装

    npm install big.js
    import Big from 'big.js';
  • 也可以下载后导入

    https://github.com/MikeMcl/big.js

计算

  • 加法plus

    0.1 + 0.2                                     // 0.30000000000000004
    const x = new Big (0.1);
    const y = x.plus (0.2);                      // 0.3
  • 减法minus

    0.3 - 0.1                                     // 0.19999999999999998   
    const x = new Big (0.3);
    const y = x.minus (0.1)                      // 0.2
  • 乘法times

    0.6 * 3                    // 1.7999999999999998
    x = new Big(0.6)
    y = x.times(3)             // '1.8'
  • 除法div

    x = new Big(0.9)
    y = new Big(0.1)
    x.div(y)                   // 9

    其他用法

  • 数字处理

    x = new Big(255.5)
    x.toExponential(5)                     // "2.55500e+2"
    x.toFixed(5)                           // "255.50000"
    x.toPrecision(5)                       // "255.50"
  • 判断是否相等

    Big(-0).eq(0)              // true  ( -0 === 0 )