找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 24515|回复: 22
收起左侧

通过单片机读取TM1638的按键数据

  [复制链接]
ID:124161 发表于 2016-6-6 21:51 | 显示全部楼层 |阅读模式
通过单片机读取TM1638的按键数据,并通过数码管显示。

0.png


  1. #ifndef _TM1638_H
  2. #define _TM1638_H
  3. #include "reg51.h"


  4. #define segA 0x40
  5. #define segB 0x20
  6. #define segC 0x10
  7. #define segD 0x08
  8. #define segE 0x04
  9. #define segF 0x02
  10. #define segG 0x01
  11. #define segDP 0x80

  12. #define ndp0 (segA+segB+segC+segD+segE+segF)
  13. #define ndp1 (segB+segC)
  14. #define ndp2 (segA+segB+segG+segE+segD)
  15. #define ndp3 (segA+segB+segG+segC+segD)
  16. #define ndp4 (segF+segG+segB+segC)
  17. #define ndp5 (segA+segF+segG+segC+segD)
  18. #define ndp6 (segA+segF+segG+segC+segD+segE)
  19. #define ndp7 (segA+segB+segC)
  20. #define ndp8 (segA+segB+segC+segD+segE+segF+segG)
  21. #define ndp9 (segA+segB+segC+segD+segF+segG)
  22. #define ndpA (segA+segB+segC+segE+segF+segG)
  23. #define ndpB (segC+segD+segE+segF+segG)
  24. #define ndpC (segA+segD+segE+segF)
  25. #define ndpD (segB+segC+segD+segE+segG)
  26. #define ndpE (segA+segD+segE+segF+segG)
  27. #define ndpF (segA+segE+segF+segG)
  28. #define wdp0 (segA+segB+segC+segD+segE+segF+segDP)
  29. #define wdp1 (segB+segC+segDP)
  30. #define wdp2 (segA+segB+segG+segE+segD+segDP)
  31. #define wdp3 (segA+segB+segG+segC+segD+segDP)
  32. #define wdp4 (segF+segG+segB+segC+segDP)
  33. #define wdp5 (segA+segF+segG+segC+segD+segDP)
  34. #define wdp6 (segA+segF+segG+segC+segD+segE+segDP)
  35. #define wdp7 (segA+segB+segC+segDP)
  36. #define wdp8 (segA+segB+segC+segD+segE+segF+segG+segDP)
  37. #define wdp9 (segA+segB+segC+segD+segF+segG+segDP)
  38. #define wdpA (segA+segB+segC+segE+segF+segG+segDP)
  39. #define wdpB (segC+segD+segE+segF+segG+segDP)
  40. #define wdpC (segA+segD+segE+segF+segDP)
  41. #define wdpD (segB+segC+segD+segE+segG+segDP)
  42. #define wdpE (segA+segD+segE+segF+segG+segDP)
  43. #define wdpF (segA+segE+segF+segG+segDP)

  44. //引脚定义
  45. sbit    DIO=P1^0;
  46. sbit    CLK=P1^1;
  47. sbit    STB=P1^2;


  48. void TM1638_Write(unsigned char DATA);          //写数据函数
  49. unsigned char TM1638_Read(void);
  50. unsigned char Read_key(void);
  51. void Write_COM(unsigned char cmd);
  52. void Write_DATA(unsigned char add,unsigned char DATA);
  53. void init_TM1638(void);

  54. #endif


复制代码
全部资料(压缩包)下载:
Keil 89C52 驱动 V1.0.zip (36.4 KB, 下载次数: 242)
回复

使用道具 举报

ID:160782 发表于 2017-1-11 08:02 来自手机 | 显示全部楼层
这个,正是我在寻找的谢谢!
回复

使用道具 举报

ID:152920 发表于 2017-3-2 08:40 | 显示全部楼层
在寻找的谢谢!
回复

使用道具 举报

ID:152920 发表于 2017-3-2 08:40 | 显示全部楼层
这个,正是我在寻找的谢谢!
回复

使用道具 举报

ID:199079 发表于 2017-5-10 14:00 | 显示全部楼层
很好的东西,谢谢楼主分享
回复

使用道具 举报

ID:160782 发表于 2017-10-27 13:04 来自手机 | 显示全部楼层
这个TM1638的头文件需要另外下载么?谢谢!
回复

使用道具 举报

ID:160782 发表于 2017-10-29 19:25 来自手机 | 显示全部楼层
谢谢楼主,如果前面部分再注释一下的就更完美了!
回复

使用道具 举报

ID:196311 发表于 2017-11-4 16:13 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:196311 发表于 2017-11-4 17:46 | 显示全部楼层
终于可以下载了,谢谢管理员和楼主
回复

使用道具 举报

ID:244616 发表于 2017-11-24 16:18 | 显示全部楼层
您好  恳请大神解释这两段代码含义吧 谢谢了unsigned char code tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x40,0xef};这个编码是什么上面的编码
        还有这个writedata0=(tab[data0]&0x01)+((tab[data1]&0x01)<<1)+((tab[data2]&0x01)<<2)+((tab[data3]&0x01)<<3)+((tab[data4]&0x01)<<4)
                +((tab[data5]&0x01)<<5)+((tab[data6]&0x01)<<6)+((tab[data7]&0x01)<<7);是什么意思啊,谢谢您了

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:241128 发表于 2018-3-24 08:39 | 显示全部楼层
TM1638按键怎么消抖?以前单片机IO口用软件延时消抖效果很好,现在用这个按键消抖无从下手,用软件延时效果不理想,按键很不灵...

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:112693 发表于 2018-3-24 13:09 | 显示全部楼层
值得学习!!
回复

使用道具 举报

ID:281632 发表于 2018-4-20 21:55 | 显示全部楼层
在寻找的谢谢!
回复

使用道具 举报

ID:36359 发表于 2018-5-1 15:20 | 显示全部楼层
正在找这类程序
回复

使用道具 举报

ID:433219 发表于 2018-11-26 10:04 | 显示全部楼层
你这个是驱动 共阳 还是共阴的??网上都是共阴的,,,共阳的很少驱动,,
回复

使用道具 举报

ID:433219 发表于 2018-11-26 10:59 | 显示全部楼层
好不容易斩够积分下载程序测试,是共阳的,,,但是按键没有任何反应啊!奇怪?
回复

使用道具 举报

ID:240034 发表于 2018-11-26 14:30 | 显示全部楼层
看笔画是共阴管
回复

使用道具 举报

ID:412814 发表于 2019-2-14 11:20 | 显示全部楼层
谢谢楼主,学习了。
回复

使用道具 举报

ID:884711 发表于 2022-8-6 13:39 | 显示全部楼层
这是一个共阳的好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:884711 发表于 2022-8-6 13:41 | 显示全部楼层
fzhlpp 发表于 2018-3-24 08:39
TM1638按键怎么消抖?以前单片机IO口用软件延时消抖效果很好,现在用这个按键消抖无从下手,用软件延时效果 ...

TM1638按键依然用延时消抖
回复

使用道具 举报

ID:967056 发表于 2022-12-5 11:47 | 显示全部楼层
哈哈,某宝上有这个板子卖,提供原程序
回复

使用道具 举报

ID:996773 发表于 2022-12-5 13:46 | 显示全部楼层
fzhlpp 发表于 2018-3-24 08:39
TM1638按键怎么消抖?以前单片机IO口用软件延时消抖效果很好,现在用这个按键消抖无从下手,用软件延时效果 ...

看你程序安排,一般情况下程序设计是读取到1638按键数据过来就去执行子程序的,执行完了再去循环等待1638再次读键,执行子程序的时间正好消抖动,如果太快不够在另外延时
回复

使用道具 举报

ID:1055802 发表于 2022-12-5 16:25 | 显示全部楼层

谢谢楼主,如果前面部分再注释一下的就更完美了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表