用74HC165读8个按键状态(转)
//--------------------------------------------------------------------------
//来源: http://hi.baidu.com/mculove/home
//程序名称: 用74HC165读8个按键状态
//晶振: 11.0592MHz;
//MCU型号: STC89C52RC;
//电路板型号: EBV-MV(51实验板);
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
//硬件连接:
//EBVn-[VCC] -> MVn-[--VCC--]
//EBVn-[GND] -> MVn-[//GND//]
//MVn-{EX3}-[Y0] -> MVn-{EX2}-[L1]
//MVn-{EX3}-[Y1] -> MVn-{EX2}-[L2]
//MVn-{EX3}-[Y2] -> MVn-{EX2}-[L3]
//MVn-{EX3}-[Y3] -> MVn-{EX2}-[L4]
//MVn-{EX3}-[Y4] -> MVn-{EX2}-[L5]
//MVn-{EX3}-[Y5] -> MVn-{EX2}-[L6]
//MVn-{EX3}-[Y6] -> MVn-{EX2}-[L7]
//MVn-{EX3}-[Y7] -> MVn-{EX2}-[L8]
// -> MVn-{EX2}-(VCC)
// -> MVn-{EX3}-(VCC) //EBVn-[P10] -> MVn-{EX3}-[A]
//EBVn-[P11] -> MVn-{EX3}-[B]
//EBVn-[P12] -> MVn-{EX3}-[C]
//EBVn-[P13] -> MVn-{EX3}-[G1]
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
//实验结果:
//控制74HC138的[A,B,C,G1]端口,使[Y0,Y1..Y7]输出预期的值,LED实现了流水灯显示
//-------------------------------------------------------------------------- //------------------------------------------------------
//头文件;
#include <AT89X52.H> #define HC165_nPL P3_5
#define HC165_CK P3_6
#define HC165_OUT P3_7 //------------------------------------------------------
void delay(void)
{
unsigned char i,j;
for(i = ;i > ;i--)
for(j = ;j > ;j--);
} unsigned char HC165(void)
{
unsigned char i;
unsigned char Temp;
HC165_CK = ;
HC165_nPL = ; //HC165读按键
HC165_nPL = ; //暂停HC165读按键
Temp = ;
if(HC165_OUT == ) Temp |= 0x01;
for(i = ;i < ;i++)
{
HC165_CK = ;
HC165_CK = ;
Temp <<= ;
if(HC165_OUT == )
{
Temp |= 0x01;
}
}
HC165_CK = ;
return(Temp);
} //------------------------------------------------------
//程序入口;
void main(void)
{
while()
{
P1 = HC165();
delay();
}
}
相关下载:KEIL原工程
用74HC165读8个按键状态(转)的更多相关文章
- 用74HC165读8个按键状态
源:用74HC165读8个按键状态 源:74LV165与74HC595 使用 74LV165说明: 74LV165是8位并行负载或串行输入移位寄存器,末级提供互补串行输出(Q7和Q7).并行负载(PL ...
- [VB.NET]调用API获取/设置键盘按键状态
1.调用GetAsyncKeyState()获取指定按键的状态,GetActiveKey()检索指定范围内的按键状态 2.调用keybd_event()可合成一次击键事件,通常两次击键事件间需要设定时 ...
- 【iCore4 双核心板_ARM】例程二:读取ARM按键状态
实验原理: 按键的一端与STM32 PB9相连,另外一端接地,且PB9外接一个1K电阻大小的上拉电阻, 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当 ...
- [VB.NET][C#]调用API获取或设置键盘按键状态
前言 通过 C# 或 VB.NET,你只需编写少量的代码即可实现一个按键精灵. 第一节 接口 调用系统 API 实现获取或设置指定的按键状态. 获取按键状态 调用 GetAsyncKeyState() ...
- 一文读懂Java线程状态转换
前言 本文描述Java线程线程状态及状态转换,不会涉及过多理论,主要以代码示例说明线程状态如何转换. 基础知识 1. 线程状态 Thread源码中的状态说明: 线程可以有6种状态: New(新建) R ...
- AVR单片机教程——按键状态
好久没更新了,今天开始继续,争取日更. 今天我们来讲按键.开发板的右下角有4个按键,按下会有明显的“咔嗒”声.如何检测按键是否被按下呢?首先要把按键或直接或间接地连接到单片机上.与之前使用的4个LED ...
- Delphi 判断按键状态
Delphi 判断按键状态 http://blog.sina.com.cn/s/blog_54da9cc001015di1.html (2012-04-05 14:22:50) 标签: 杂谈 分类: ...
- 【iCore1S 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
实验原理: 按键的一端与STM32的GPIO(PB9)相连,且PB9外接一个1k大小的限流上接电阻. 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按 ...
- 【iCore4 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
实验原理: 按键的一端与STM32的GPIO(PB9)相连,且PB9外接一个1k大小的限流上接电阻. 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按 ...
随机推荐
- android 设计模式学习
1:单例模式 //对于创建开销较大的类可使用此方法,保证全局一个实例,在程序运行过程中该类不会因新建额外对象产生开销.示例代码如下:public class Singleton { private s ...
- Django - 用户注册
使用Django工程自动创建的auth_user表来存储用户信息 在app目录下创建forms.py mysite/music/forms.py from django.contrib.auth.mo ...
- CodeForces 500 A. New Year Transportation
Description New Year is coming in Line World! In this world, there are n cells numbered by integers ...
- ubuntu apache 安装awstats 流量分析工具(命令方式)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- hdu_5720_Wool(脑洞)
题目连接:hdu_5720_Wool 题意: 给你N个数,然后给你一个区间,问你在这个区间内有多少数可以不与这N个数任选两个出来组成三角形 题解: 这里我还是贴官方的题解算了 考虑三角形三条边a,b, ...
- h5移动端设计页面
@京东设计中心 :去年JDC出了不少优秀的武媚娘…不,H5呢,大家都很拼,同时当然也积累了一些经验和教训,今天结合咱们的实战案例,从字体,排版,动效,音效,适配性,想法这几个方面好好聊一聊关于H5的设 ...
- WebSphere MQ 入门指南【转】
WebSphere MQ 入门指南 转自 WebSphere MQ 入门指南 - 大CC - 博客园http://www.cnblogs.com/me115/p/3456407.html 这是一篇入门 ...
- 优化Android App性能?十大技巧必知!
无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的.那么,如何能开发出更高性能的Android App?相信是软件 ...
- zf-关于查询机把index.jsp换成index_new.jsp页面之后把功能链接都改成新页面的简单方法
一开始我都是找action 然后一个一个的改 把onmousedown="goURL('index.jsp')" 改成 onmousedown="goURL('index ...
- GDB + gdbserver 远程调试android native code
原文地址:GDB + gdbserver 远程调试android native code 作者:tq08g2z 以调试模拟器中的native library code为例. Host: ubuntuT ...