[关闭]
@Mahdi 2017-07-21T18:19:45.000000Z 字数 2811 阅读 1065

元器件资料

未分类


概念

集成电路


74HC138

  • 共16引脚,
  • 8GND,16VCC
  • 1~6输入引脚.
  • 1,2,3 逻辑输入控制引脚
  • 4,5,6使能引脚.4,5低电平。6高电平。
  • 15~7输出引脚,对应YO~Y7

74HC245

  • 74HC245 稳定工作在 70mA 电流是没有问题的,仅仅是电流驱动缓冲
  • 八路双向收发器
  • 封装形式:SDP20,SOP20-2,TSSOP20,DIP20
  • 共20引脚
  • 10GND,20VCC
  • 1脚 DIR 方向引脚
  • 2~9脚"A"信号输入输出端
  • 11~18脚"B"信号输入输出端
  • 19脚OE(低电平有效) 输出使能端,置1A/B端的信号不导通,清0A/B端才被启用,该脚也就是起到开关的作用
  1. dir = 1
  2. B = A
  3. dir = 0
  4. A = B
  5. /*************STC98C52中138的定义************************/
  6. #include <reg52.h>
  7. sbit A1 = P2^2;
  8. sbit A2 = P2^3;
  9. sbit A3 = P2^4;
  10. void main()
  11. {
  12. // unsigned char code LedChar[] = {0xC0, 0xF9, 0xA4, 0xB0,
  13. // 0x99, 0x92, 0x82, 0xF8,
  14. // 0x80, 0x90, 0x88, 0x83,
  15. // 0xC6, 0xA1, 0x86, 0x8E};
  16. A3 = 0;
  17. A2 = 1;
  18. A1 = 0;
  19. P0 = ~0xF8; // 1111 1001 点亮数码管段 b 和 c 共阴极的真值表是共阳极的取反值
  20. }
  21. }

74HC573

  • 八路输出的透明锁存器(当输入的数据消失时,在芯片的输出端,数据仍然保持输出),输出为三态门
  • 这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。
  • 共20引脚
  • 10GND,20VCC
  • 1脚 OE(Output Enable)输出使能端
  • 2~9脚 D0~D7(Data Input)数据输入
  • 11 LE(Latch Enable Input)锁存使能输入
  • 12~19脚 Q0~Q7(3 State Latch Output)3态锁存输出
  1. 1 OE是一个低电平有效的引脚(通常在开发板上,直接采取接地的措施,因为既然用到573,那么一般都是想让它处于工作状态的)
  2. OE = 1;
  3. 无论Input(输入端D0~D7)输入何种电平状态,Output(输出端Q0~Q7)都为Z,此时芯片处于不可控状态。
  4. OE = 0;
  5. LE = 1 => Q(输出) = D(输入) (Q端的电平状态紧随着D端变化)
  6. LE = 0;
  7. 无论D为何种电平状态,Q都会保持上一次的电平(Q端电平状态将保持住,LE端变化为低电平之前Q端的电平状态).

74HC595

  • 最重要的功能就是:串行输入,并行输出,3态高速位移寄存器.595里面有2个8位寄存器:移位寄存器、存储寄存器.并各具有相互独立的时钟
  • 共16引脚,
  • 8GND,16VCC
  • 15,1~7脚QA~QH(3 State Output)3态输出(8位并行数据输出)
  • 9脚QH' 串行数据输出口(用于多个595串联)
  • 10脚MR 主复位 又称SCLR(Shift Clear)移位寄存器清零端(低电平有效)
  • 11脚SCK(Shift Register Clock Input)移位寄存器时钟输入口
  • 12脚RCK(Storage Register Clock Input)存储寄存器时钟输入口
  • 13脚OE 输出使能(低电平有效)
  • 14脚DS,又叫SER (Serial Data Input)串行数据输入口

移位寄存器(Shift Register)

存储寄存器(Storage Register)

所谓存储寄存器,就是数据可以存在这个寄存器中,并不会随着一次输出就消失,只要595不断电,也没有新的数据从移位寄存器中过来,数据就一直不变且有效。新的数据过来后,存储寄存器中的数据就会被覆盖更新。
数据从位移寄存器 转移到 存储寄存器,也是需要时钟脉冲驱动的,这就是12脚的作用
9脚,没用起作用,如果要让2个595串联起来的话,就需要它了。

对比138

138译码器通过3个输入口控制8个输出口,而且还只能是特定的8个输出值,
想一下,我们将移位寄存器的8个位填满后,再往移位寄存器中塞一个会怎么样?也许你想到了。
对!移位寄存器的最后一个位数据会被挤出去,从哪里出去?就是从9脚输出的。如果我们把第一个595的9脚连接到第二个的串行数据输入脚SER,那么,就形成了595的级联。这样,如果我们用2个595组合成了一个新的超级595,这个草鸡595的移位寄存器和存储寄存器的容量都翻倍了,1口控制16口,有木有!你还可以继续级联下去!而595只用了一个输入口就可以输任意的8位数据。

  1. QA--QH: 八位并行输出端,可以直接控制数码管的8个段
  2. SCLR(10脚): 低电平时将移位寄存器的数据清零。通常将它接VCC让其保持高电平。
  3. 所谓存储寄存器,就是数据可以存在这个寄存器中,并不会随着一次输出就消失,只要595不断电,也没有新的数据从移位寄存器中过来,数据就一直不变且有效。新的数据过来后,存储寄存器中的数据就会被覆盖更新。
  4. 51单片机的工作离不开晶振,它使CPU的工作步调稳定有序,就像跑步时喊121的那个人。那么这里的位移寄存器时钟也是同样的道理,当一个新的位数据要进来时,已经进入的位数据就在移位寄存器时钟脉冲的控制下,整体后移,让出位置。
  5. 上升沿:电平从低到高的那个过程。移位寄存器时钟在上升沿这个过程中才起作用。
  6. QA QB QC QD QE QF QG QH 分别接 8LED正极
  7. 14SER 单片机P3.4
  8. 11SCK 单片机P3.6
  9. 12RCK 单片机P3.5
  10. 13OEGND
  11. 10SCLRVCC
  12. 9脚闲置不接
  13. /****************/
  14. #include<reg51.h>
  15. #include<intrins.h>
  16. typedef unsigned char uchar;
  17. typedef unsigned int uint;
  18. sbit SER = P3^4; //p3.4脚控制串行数据输入
  19. sbit SCK = P3^6; //串行输入时钟
  20. sbit RCK = P3^5; //存储寄存器时钟
  21. /****定义HC595发送函数***/
  22. void SendTo595(uchar byteData)
  23. {
  24. char i=0;
  25. for(;i<8;i++)
  26. {
  27. SER = byteData >> 7; //大家自己考量这2句
  28. byteData= byteData << 1;
  29. SCK = 1; //上升沿,让串行输入时钟变为高电平,并延时2个时钟周期
  30. _nop_();
  31. _nop_();
  32. SCK = 0; //变为低电平,为下次准备
  33. }
  34. /*位移寄存器数据准备完毕,转移到存储寄存器*/
  35. RCK = 1; //上升沿,让存储寄存器时钟变为高电平,并延时2个时钟周期
  36. _nop_();
  37. _nop_();
  38. RCK = 0;
  39. }
  40. void main()
  41. {
  42. SendTo595(85); //85的二进制:0101 0101
  43. while(1);
  44. }
  45. //功能:发送一个字节的数据给595,再并行输出

第三方资料

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注