unsigned char TM1638_Read(void)                    //读数据函数
{
    unsigned char i;
    unsigned char temp=0;
    DIO_1;    //设置为输入
    for(i=0;i<8;i++)
    {
        temp>>=1;
        
        CLK_0;
                           //CLK上升沿读数据才有效

if(DIO_IN)
            temp|=0x80;
        CLK_1;            
    }
    return temp;
}

u8 TM1638_ReadKey(void)
{
   u8  key=0,i,key_val[4]; // c[4] 4Byte数据储存
   STB_0; // 拉低片选线,开始读键值
   TM1638_Write(0x42); // 写'读键扫数据'命令
     delay_us(10);    //等待准备完毕               
    for(i=0;i<4;i++)  // 读取4个Byte
        key_val[i]=TM1638_Read();    // 将读取的4个Byte 值存到数组
    STB_1;                      // 拉高片选线,读键值结束

if(key_val[0]!=0)        //按键在KS1或KS2
    {
        /*************************************************************************
         B0      B1     B2     B3    B4     B5    B6      B7
        K3(S1) K2(S1) K1(S1)  (X)  K3(S2) K2(S2) K1(S2)  (X)
        从芯片读出的一字节数据有位,6位数据有效,其余2位用X表示
        *************************************************************************/
        switch(key_val[0])
        {
            case 0x01:
                key=K3S1;
            break;
            
            case 0x02:
                key=K2S1;
            break;
            
            case 0x04:
                key=K1S1;
            break;

case 0x10:
                key=K3S2;
            break;
            
            case 0x20:
                key=K2S2;
            break;
            
            case 0x40:
                key=K1S2;
            break;
        }
    }

求助 TM1638不能读回按键值相关推荐

  1. K_A02_005 基于单片机驱动数码管 LED 按键模块(TM1638) 流水灯 0-7 按键值显示

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.通信协议说明 1.写数据 时序: 程序: 2.读数据 时序: 程序: 四.部分代码说明 1.接线说明 1.1.STC89C52RC+按键数 ...

  2. 判断按键值_ALIENTEK 阿波罗 STM32F767 开发板资料连载第七章 按键输入实验

    1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第七章 按键输入实验 上 ...

  3. 矩阵键盘数 码管显示多位数 c语言,4×4矩阵键盘数码管显示按键值程序

    4×4矩阵键盘数码管显示按键值程序本文引用地址:http://www.eepw.com.cn/article/201607/294422.htm //电路说明如下. //单片机:使用51系列兼容的即可 ...

  4. 读书到底为了什么,读研到底值不值?

    大家好,我是张巧龙,前两天和学生们聊到关于读书的话题:读书到底为了什么,读研到底值不值? 今天给大家分享一篇关于这个话题的一篇高赞回答. 作者:斑斑驳驳 链接:https://www.zhihu.co ...

  5. 51单片机怎么显示当前时间_(进阶篇)51单片机之按键控制蜂鸣器、数码管、按键值移位显示...

    一.实操演示- 按键控制蜂鸣器 1.图文详细 独立按键硬件电路 蜂鸣器硬件电路 2.连接方式: J20的第3号引脚连接到J7引脚,即P15连接J7. J29的第7.8号引脚连接到JP1的第1.2号引脚 ...

  6. python字典按键值排序_在Python中按键或值按升序和降序对字典排序

    python字典按键值排序 Problem Statement: Write a Python program to sort (ascending and descending) a diction ...

  7. linux驱动的中断函数,嵌入式Linux驱动开发(四)——字符设备驱动之中断方式以及中断方式获取按键值...

    之前我们完成了关于通过查询的方式获取按键键值的驱动程序,可以参考:嵌入式Linux开发--裸板程序之中断控制器. 虽然读取键值没有什么问题,但是测试程序占用CPU过高,一直在不断的查询,资源消耗过大, ...

  8. matlab最大回撤值,用matlab计算区间最大回撤值和最大回撤率

    用matlab 计算区间最大回撤值和最大回撤率 在股票投资的时候有一个很重要的概念-最大回撤.最大回撤被定义为: min()min(max )j i j i i j j i j d x x x x & ...

  9. VBA Excel如何在工作表区域内查找某个值,发回这个值所在的行号、列号

    用VBA代码编写,如何在工作表区域内查找某个值,发回这个值所在的行号.列号 spwangxu | 浏览 7128 次 推荐于2016-01-03 11:29:18 最佳答案 1 2 3 4 5 6 7 ...

最新文章

  1. UBuntu14.04下安装和卸载Qt5.3.1
  2. java jmi的基本思想_jmi: JMI 是 JNI 的 C++11/14封装,目的是为了简化JNI使用
  3. Linuxday01基础命令
  4. 最简方式 表格编辑 基于 el-table
  5. 【软件开发底层知识修炼】二十五 ABI之函数调用约定二之函数返回值为结构体时的约定
  6. 汇编软件的安装与实验一
  7. 直接拿来用!最火的Android开源项目(一) (转)
  8. 5.Http Server
  9. AS--创建项目(慢)和打开项目(慢)等需要注意的问题
  10. pdf服务器签章系统,PDF离线签章工具使用方法
  11. linux怎么建立辅助dns,rhel5 建立辅助DNS
  12. 企业邮箱帐号无法发信
  13. java的clone你知道多少?
  14. c++中的 单引号和双引号
  15. SONY EVI-D70P
  16. The fifth day
  17. python3-爬取cnnvd漏洞信息-代理+多线程
  18. HTML+CSS实现从右向左展开的过渡动画
  19. 马天宇现场助阵,TCL冰箱洗衣机品牌战略升级
  20. 【渝粤教育】电大中专药事管理与法规 (3)作业 题库

热门文章

  1. ATECC608A的完美兼容国产替代芯片
  2. 字长16位的计算机 它表示是,计算机应用基础(第2版)在线作业
  3. MAC文件图标自动排列+取消自动排列
  4. strcmp函数的说明和使用
  5. ddr布线 pads_[转载]Pads Router布线技巧,等长,蛇线,差分
  6. 【译】Caliburn——Action
  7. 用python打造自己的SDK--使用setuptools打包安装
  8. evict和clear
  9. webrtc bbr
  10. 鸿蒙跨屏流转是什么,华为智慧屏SE系列评测:从用上到爱上 就是一“眼”之间...