您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子元器件>芯片引脚图>

用74HC165读8个按键状态 - 全文

2018年02月02日 11:05 网络整理 作者: 用户评论(0

74HC165是一款高速CMOS移位寄存器,,电压为2.0~6.0V,驱动电流为+/-5.2mA。74HC165引脚兼容TTL(LSTTL)系列(定义于JEDEC标准№.7A)。

74hc165基本参数

电压:2.0~6.0V

驱动电流:+/-5.2mA

传输延迟:16ns@5V

最高频率:56MHz@5V

逻辑电平:CMOS

工作温度:-40~+85℃

封装:SO16,SSOP16,DIP16,TSSOP16

  74HC165用法

  74HC165级联,如下图

用74HC165读8个按键状态

  SH/LD为低,并口数据存入8个位寄存器中。8个位寄存器分别为Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7。此时Q7里已经有值,可以直接读取了所以,逻辑可以是这样读取Q7的数据,然后IN_CLK_LOW;IN_CLK_HIGH;制造一次上升沿,执行移位操作,使Q6的值移位到Q7中。SH/LD为高,允许移位。一个时钟脉冲,QH向外输出一位数据,同时,从SER采集一位数据补充8位寄存器。

  如上级联情况,右边74HC165的SER悬空,采集数据为0.

  左边74HC165,一个脉冲,QH输出一位数据,同时,从SER采集一位数据补充低位。 相当于如下: 开始前

  H1-G1-F1-E1-D1-C1-B1-A1 H2-G2-F2-E2-D2-C2-B2-A2 开始传输

  1,1G-1F-1E-1D-1C-1B-1A-2H 2G-2F-2E-2D-2C-2B-2A-0

  2,1F-1E-1D-1C-1B-1A-2H-2G 2F-2E-2D-2C-2B-2A-0-0

  3,1E-1D-1C-1B-1A-2H-2G-2F 2E-2D-2C-2B-2A-0-0-0 。。。

  14,B2-A2-0-0-0-0-0-0 0-0-0-0-0-0-0-0

  15,A2-0-0-0-0-0-0-0 0-0-0-0-0-0-0-0

  16,0-0-0-0-0-0-0-0 0-0-0-0-0-0-0-0

  这样,就把2个级联的74HC165的并口数据,全部以串口形式传输给了MCU

用74HC165读8个按键状态

74HC165是一款并入串出的芯片,下图通过74HC165读入8个按键状态,并用7个LED灯L1~L8分别对应S1~S8,来显示按键状态。

硬件连接图如下:

用74HC165读8个按键状态

程序代码如下:

1//--------------------------------------------------------------------------

2//来源:http://hi.baidu.com/mculove/home

3//程序名称:用74HC165读8个按键状态

4//晶振:11.0592MHz;

5//MCU型号:STC89C52RC;

6//电路板型号:EBV-MV(51实验板);

7//--------------------------------------------------------------------------

8

9

10

11

12//--------------------------------------------------------------------------

13//硬件连接:

14//EBVn-[VCC]-》MVn-[--VCC--]

15//EBVn-[GND]-》MVn-[//GND//]

16//MVn-{EX3}-[Y0]-》MVn-{EX2}-[L1]

17//MVn-{EX3}-[Y1]-》MVn-{EX2}-[L2]

18//MVn-{EX3}-[Y2]-》MVn-{EX2}-[L3]

19//MVn-{EX3}-[Y3]-》MVn-{EX2}-[L4]

20//MVn-{EX3}-[Y4]-》MVn-{EX2}-[L5]

21//MVn-{EX3}-[Y5]-》MVn-{EX2}-[L6]

22//MVn-{EX3}-[Y6]-》MVn-{EX2}-[L7]

23//MVn-{EX3}-[Y7]-》MVn-{EX2}-[L8]

24//-》MVn-{EX2}-(VCC)

25//-》MVn-{EX3}-(VCC)

26

27//EBVn-[P10]-》MVn-{EX3}-[A]

28//EBVn-[P11]-》MVn-{EX3}-[B]

29//EBVn-[P12]-》MVn-{EX3}-[C]

30//EBVn-[P13]-》MVn-{EX3}-[G1]

31//--------------------------------------------------------------------------

32

33

34

35

36//--------------------------------------------------------------------------

37//实验结果:

38//当按下一个按键时候,对应的LED灯被点亮。如按下S1,则L1灯亮,按下S2,则L2灯亮。。.。。.

39//--------------------------------------------------------------------------

40

41

42

43//------------------------------------------------------

44//头文件;

45#include《AT89X52.H》

46

47#defineHC165_nPLP3_5//移位或载入选择信号

48#defineHC165_CKP3_6//时钟信号

49#defineHC165_OUTP3_7//数据输出

50

51//------------------------------------------------------

52voiddelay(void)

53{

54unsignedchari,j;

55for(i=250;i》0;i--)

56for(j=200;j》0;j--);

57}

58

59unsignedcharHC165(void)//返回值为char型,8位

60{

61unsignedchari;

62unsignedcharTemp;

63HC165_CK=1;

64HC165_nPL=0;//HC165读按键

65HC165_nPL=1;//暂停HC165读按键

66Temp=0;

67if(HC165_OUT==1)Temp|=0x01;//此时HC165_OUT为Temp的最高位。

68for(i=0;i《7;i++)//需要移位7次,才能读完

69{

70HC165_CK=0;

71HC165_CK=1;//时钟上升沿,HC165移位

72Temp《《=1;//Temp左移一位,为新来的数据空出最后一位

73if(HC165_OUT==1)//读入新来的数据到最后一位

74{

75Temp|=0x01;

76}

77}

78HC165_CK=0;

79return(Temp);//经过7次循环后,D6,D5,D4,D3,D2,D1,D0被依次读入Temp的7个位中

80}

81

82

83

84//------------------------------------------------------

85//程序入口;

86voidmain(void)

87{

88while(1)

89{

90P1=HC165();

91delay();

92}

93}

上一页12全文

非常好我支持^.^

(10) 34.5%

不好我反对

(19) 65.5%

( 发表人:姚远香 )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!