源:用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个按键状态(转)的更多相关文章

  1. 用74HC165读8个按键状态

    源:用74HC165读8个按键状态 源:74LV165与74HC595 使用 74LV165说明: 74LV165是8位并行负载或串行输入移位寄存器,末级提供互补串行输出(Q7和Q7).并行负载(PL ...

  2. [VB.NET]调用API获取/设置键盘按键状态

    1.调用GetAsyncKeyState()获取指定按键的状态,GetActiveKey()检索指定范围内的按键状态 2.调用keybd_event()可合成一次击键事件,通常两次击键事件间需要设定时 ...

  3. 【iCore4 双核心板_ARM】例程二:读取ARM按键状态

    实验原理: 按键的一端与STM32 PB9相连,另外一端接地,且PB9外接一个1K电阻大小的上拉电阻, 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当 ...

  4. [VB.NET][C#]调用API获取或设置键盘按键状态

    前言 通过 C# 或 VB.NET,你只需编写少量的代码即可实现一个按键精灵. 第一节 接口 调用系统 API 实现获取或设置指定的按键状态. 获取按键状态 调用 GetAsyncKeyState() ...

  5. 一文读懂Java线程状态转换

    前言 本文描述Java线程线程状态及状态转换,不会涉及过多理论,主要以代码示例说明线程状态如何转换. 基础知识 1. 线程状态 Thread源码中的状态说明: 线程可以有6种状态: New(新建) R ...

  6. AVR单片机教程——按键状态

    好久没更新了,今天开始继续,争取日更. 今天我们来讲按键.开发板的右下角有4个按键,按下会有明显的“咔嗒”声.如何检测按键是否被按下呢?首先要把按键或直接或间接地连接到单片机上.与之前使用的4个LED ...

  7. Delphi 判断按键状态

    Delphi 判断按键状态 http://blog.sina.com.cn/s/blog_54da9cc001015di1.html (2012-04-05 14:22:50) 标签: 杂谈 分类:  ...

  8. 【iCore1S 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态

    实验原理: 按键的一端与STM32的GPIO(PB9)相连,且PB9外接一个1k大小的限流上接电阻. 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按 ...

  9. 【iCore4 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态

    实验原理: 按键的一端与STM32的GPIO(PB9)相连,且PB9外接一个1k大小的限流上接电阻. 初始化时把PB9设置成输入模式,当按键弹起时,PB9由于上拉电阻的作用呈高电平(3.3V): 当按 ...

随机推荐

  1. js数组总结

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  2. C# Socket的TCP通讯 异步 (2015-11-07 10:07:19)转载▼

    异步 相对于同步,异步中的连接,接收和发送数据的方法都不一样,都有一个回调函数,就是即使不能连接或者接收不到数据,程序还是会一直执行下去,如果连接上了或者接到数据,程序会回到这个回调函数的地方重新往下 ...

  3. HDU 1681 Frobenius(完全背包+标记装满)

    一个完全背包,数组两百万,暴力可过 #include<iostream> #include<cstdio> #include<cstring> using name ...

  4. git bash退回上一个文件夹

    cd ..\ a@w3311 MINGW32 /f/Projects/crm (master) $ cd..\ > bash: cd..: command not found a@w3311 M ...

  5. git第三篇---建立一个project

    Git global setup: git config --global user.name "xx" git config --global user.email " ...

  6. 【转】使IFRAME在iOS设备上支持滚动

    原文链接: Scroll IFRAMEs on iOS原文日期: 2014年07月02日 翻译日期: 2014年07月10日翻译人员: 铁锚 很长时间以来, iOS设备上Safari中超出边界的元素将 ...

  7. Android应用性能测试之CPU和内存占用

    最近发现自己学的很多东西没有做好积淀的工作,也萌生了写一些东西的念头.本人也没有写博客的习惯,下边就写一下手机端的性能测试. 最近公司,要我们从事对竞品的性能测试,我负责CPU和内存的性能测试,下面就 ...

  8. 别在int与float上栽跟头(转)

    源:http://www.cnblogs.com/luguo3000/p/3719651.html int与float是我们每天编程都用的两种类型,但是我们真的足够了解它们吗.昨天在博客园看到一个比较 ...

  9. 一个有意思的 hta 程序 (html application)

    哈哈,刚才同事给我讲了一个hta 程序,他自己说最近在学html5 开发坦克大战,不错,这种好奇心, 好学的精神值得我这个程序员学习,感觉他的视野面比我这个程序员还广,有点小惭愧. 什么是hta 呢? ...

  10. 关于Application.Lock…Application.Unlock有什么作用?

    因为Application变量里一般存储的是供所有连接到服务器的用户共享的信息(就像程序中所说的 "全局变量 "), 由于是全局变量,所以就容易出现两个或者多个用户同时对这一变量进 ...