用74HC165读8个按键状态

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级联,如下图
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,来显示按键状态。
硬件连接图如下:
程序代码如下:
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}

基于80C196的频率测量及在电压采样中的应用
观点 | 先进工业网络,加速工业数字化智能化
有方科技发布全球首创云-管-端接入通信系统化方案
电销机器人怎么样?是不是骗人的?
Apollo两周年:每一辆车都饱含梦想 每一步都迈向开源
用74HC165读8个按键状态
华为折叠屏旗舰要来了,买一部少一部的节奏?
数字资产市场的几种投资策略分析
什么品牌的蓝牙耳机比较好,蓝牙耳机品牌排行榜前十名
手机疯卷大模型,成为AI战场必争之地
DxO FilmPack 6:精准演绎胶片摄影之魂
中科院研究人员研发中国超音速飞机测试成功 高速可达8600公里/时
英特尔公司CEO帕特·基辛格致开放生态系统的一封公开信
MAXQ7665寻页(PE)程序和数据闪存的应用内编程(IAP)
人工智能将成为药物研究常用手段 全球首个AI设计疫苗问世
华为全球市场销量超过了苹果,为什么华为在英国禁止销售?
华为首次、大规模融资曝光!
电池充电器IC基本原理
Android将成手机病毒重灾区
飞思卡尔推出单芯片图形LCD Kinetis K70系列微控制器