标题: TM1637四位数码管模块驱动(TM1637.h头文件)51单片机C语言 [打印本页]
作者: lmn2005 时间: 2019-2-15 07:10
标题: TM1637四位数码管模块驱动(TM1637.h头文件)51单片机C语言
TM1637四位数码管模块是一个带时钟点的4位共阳数码管(0.36英寸)的显示模块,驱动芯片为TM1637,驱动方式为IIC,因此只需2根信号线即可使单片机控制4位8段数码管(数码管8级灰度可调)。
控制接口:共4个引脚(GND、VCC、DIO、CLK),GND为地,VCC为供电电源,DIO为数据输入输出脚,CLK为时钟信号脚。
TM1637.h单片机源程序如下:
- sbit CLK= P3^4; //定义模拟IIC总线的时钟线
- sbit DIO = P3^5; //定义模拟IIC总线的数据线
-
- code unsigned char tab[] =
- {
- 0x3F,/*0*/
- 0x06,/*1*/
- 0x5B,/*2*/
- 0x4F,/*3*/
- 0x66,/*4*/
- 0x6D,/*5*/
- 0x7D,/*6*/
- 0x07,/*7*/
- 0x7F,/*8*/
- 0x6F,/*9*/
- 0x77,/*10 A*/
- 0x7C,/*11 b*/
- 0x58,/*12 c*/
- 0x5E,/*13 d*/
- 0x79,/*14 E*/
- 0x71,/*15 F*/
- 0x76,/*16 H*/
- 0x38,/*17 L*/
- 0x54,/*18 n*/
- 0x73,/*19 P*/
- 0x3E,/*20 U*/
- 0x00,/*21 黑屏*/
- };
-
- void Delay_us(unsigned int i)
- {
- for(;i>0;i--)
- _nop_();;
- }
- //IIC开始
- void TM1637_start(void)
- {
- CLK=1;
- DIO=1;
- Delay_us(2);
- DIO=0;
- }
- //IIC应答
- void TM1637_ack(void)
- {
- uchar i;
- CLK=0;
- Delay_us(5);
- //DIO=1;
- while(DIO==1&&(i<250))i++;
- CLK=1;
- Delay_us(2);
- CLK=0;
- }
- //IIC停止
- void TM1637_stop(void)
- {
- CLK=0;
- Delay_us(2);
- DIO=0;
- Delay_us(2);
- CLK=1;
- Delay_us(2);
- DIO=1;
- Delay_us(2);
- }
- //写数据函数
- void TM1637_Write(unsigned char DATA)
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- CLK=0;
- if(DATA & 0x01)
- DIO=1;
- else DIO=0;
- Delay_us(3);
- DATA=DATA>>1;
- CLK=1;
- Delay_us(3);
- }
- //TM1637_ack();
- }
-
- //按顺序显示
- void TM1637_display(uchar a,uchar b,uchar c,uchar d,uchar h)
- {
- TM1637_start();
- TM1637_Write(0x40);//写数据+自动地址加1+普通模式
- TM1637_ack();
- TM1637_stop();
- TM1637_start();
- TM1637_Write(0xc0);//设置显示首地址即第一个LED
- TM1637_ack();
- TM1637_Write(tab[a]);
- TM1637_ack();
- TM1637_Write(tab[b]|h<<7);//h为1时显示时钟中间的两点
- TM1637_ack();
- TM1637_Write(tab[c]);
- TM1637_ack();
- TM1637_Write(tab[d]);
- TM1637_ack();
- TM1637_stop();
- TM1637_start();
- TM1637_Write(0x89);//开显示,2/16亮度
- TM1637_ack();
- TM1637_stop();
- }
复制代码
作者: 敏敏BB 时间: 2019-2-18 11:03
支持一下
作者: 敏敏BB 时间: 2019-2-18 11:04
可不可以提供技术帮助
作者: lmn2005 时间: 2019-2-18 15:01
有什么问题发到论坛上共同讨论和解答。这论坛的高手真的如云呀!高手们的解答也很快的。其他论坛我不清楚,51hei论坛真的人才济济,有些问题的解决效率甚至比技术QQ群还快。不过每次发言发贴都必须审核,本论坛的工作人员实在太辛苦了!
作者: ioulaumhe 时间: 2019-3-6 16:01
请教下,这个tm1637能改矩阵键扫描为电容按键扫描吗
作者: freezing51 时间: 2019-3-7 23:02
过几天1637到了我试试
作者: k2866 时间: 2019-3-8 00:01
这个应该不行。
作者: initialize111 时间: 2019-4-1 14:17
请问是必须要用IIC的吗
作者: 吴鹏彬 时间: 2019-4-1 14:48
这个很好哦
作者: aking991 时间: 2019-4-2 08:19
之前也买过这种模块,一直没时间测试,先收藏参考
作者: qysj22 时间: 2019-6-11 22:34
我的为什么不能用呀
作者: qysj22 时间: 2019-6-20 13:25
请楼主帮帮忙吧,我按程序走的,为什么不会亮
作者: lovepurple 时间: 2019-8-18 10:29
TM1637 供电有电流限制吗?为什么我直接使用其他的5V供电没法显示,
作者: mobicity 时间: 2019-9-4 08:53
支持下,感谢
作者: jndy 时间: 2019-10-28 21:20
学习学习。。。
作者: Amorxu 时间: 2019-11-3 12:20
很有用啊
作者: zxy2266 时间: 2019-12-22 11:00
这样接线少,CPU选择余地很大,可以加键盘,但程序俺不会玩
作者: zxy2266 时间: 2019-12-22 11:04
大家可以按照这个加键盘,程序调通了别忘共享下
-
-
tm1638.pdf
873.68 KB, 下载次数: 70, 下载积分: 黑币 -5
作者: wanghuailin 时间: 2020-1-9 20:39
谢谢分享
作者: txdrdr1988 时间: 2020-2-5 17:06
可以用。试过了。
作者: cfbkl 时间: 2020-2-26 00:36
楼主这个基本就是按1638官方文档写的没改什么东西呀
作者: yangfeng2068 时间: 2020-2-26 21:26
m1637能改矩阵键扫描为电容按键扫描
作者: donny123800 时间: 2020-2-29 21:43
code unsigned char tab[] =
{
0x3F,/*0*/
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
0x6F,/*9*/
0x77,/*10 A*/
0x7C,/*11 b*/
0x58,/*12 c*/
0x5E,/*13 d*/
0x79,/*14 E*/
0x71,/*15 F*/
0x76,/*16 H*/
0x38,/*17 L*/
0x54,/*18 n*/
0x73,/*19 P*/
0x3E,/*20 U*/
0x00,/*21 黑屏*/
};
这个编码是共阴的编码?不是说1637是共阳的驱动么?
作者: donny123800 时间: 2020-2-29 21:44
你的这个编码是共阴的编码?
作者: txdrdr1988 时间: 2020-3-20 08:21
就是,好奇怪,用共阴编码,但居然正常显示
作者: hbcqd 时间: 2020-3-20 11:55
能发个TM1637参数PDF吗,谢谢分享!
作者: univers 时间: 2020-3-21 11:14
这个官方的数据表格全有的。
作者: peili 时间: 2020-4-13 19:16
手上有个这样的模块,把这个.H文件套进去,显示正常,效果不错
作者: lmn2005 时间: 2020-4-14 08:58
不是,是共阳的
作者: lmn2005 时间: 2020-4-14 09:08
不知道好用不好用
-
-
数码管驱动芯片规格书-TM1637_V2[1].rar
462.89 KB, 下载次数: 43, 下载积分: 黑币 -5
作者: a461624201 时间: 2020-5-31 02:09
还是这个论坛好啊,百度几个小时都找不到资料。
TM1637可惜不能和DS3231通用I2C协议,不然可以运行在STC15F104上了。
作者: 中恒电子asus 时间: 2020-6-14 20:45
支持一下
作者: ubun16.04 时间: 2020-7-15 09:37
测试成功谢谢楼主!NTP网络时钟制作中!
作者: zhoulejun 时间: 2020-9-26 21:13
下载了 准备移植到stm32上试试
作者: STC2 时间: 2021-1-26 12:33
怎么用51单片机做时钟呢?
作者: zsw3721 时间: 2021-1-26 20:34
非常好用。我用了你的例程做好了延时插座,单片机用两个IO口就能显示倒计时,太完美了。
作者: love510 时间: 2021-5-3 11:29
请问一下大哥些,由于是小白,改显示数据参数改哪一个
作者: love510 时间: 2021-5-3 11:30
大哥请问显示数据改哪个参数,比如显示1.5
作者: catlu 时间: 2021-5-3 14:08
用TM1637模块做过带遥控功能的电子钟,看到楼主写了通用库,下载来用着方便,谢谢楼主
作者: zuiqf1978 时间: 2021-10-6 08:18
我购买了一个1637模块,官方驱动有共阴和共阳编码,用共阳效果一样!(倒计时程序),看来得深挖程序!
作者: lmn2005 时间: 2021-10-7 10:38
本帖最后由 新新科技 于 2021-10-8 08:00 编辑
我的数码管是显示时钟的,不带小数点,带小数点的模块还没有用过,不知道某一个宝是否能找到。
作者: 乙猪 时间: 2022-3-22 10:42
这个论坛就是好。随时可以找到自己想要的东东,以前怎么没发现它呢。
作者: haokucn 时间: 2022-4-8 00:01
能出个详细用法吗
作者: 6313 时间: 2022-4-8 10:41
怎么生成库文件
作者: zhxiufan 时间: 2022-8-15 17:09
TM1637模块,数据要用共阴极的,数码管要选择共阳极的。用起来还是比较方便的,动态扫描那块不用自己去做了。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |