標(biāo)題: TM1637四位數(shù)碼管模塊驅(qū)動(dòng)(TM1637.h頭文件)51單片機(jī)C語(yǔ)言 [打印本頁(yè)]

作者: lmn2005    時(shí)間: 2019-2-15 07:10
標(biāo)題: TM1637四位數(shù)碼管模塊驅(qū)動(dòng)(TM1637.h頭文件)51單片機(jī)C語(yǔ)言
TM1637四位數(shù)碼管模塊是一個(gè)帶時(shí)鐘點(diǎn)的4位共陽(yáng)數(shù)碼管(0.36英寸)的顯示模塊,驅(qū)動(dòng)芯片為TM1637,驅(qū)動(dòng)方式為IIC,因此只需2根信號(hào)線即可使單片機(jī)控制4位8段數(shù)碼管(數(shù)碼管8級(jí)灰度可調(diào))。
控制接口:共4個(gè)引腳(GND、VCC、DIO、CLK),GND為地,VCC為供電電源,DIO為數(shù)據(jù)輸入輸出腳,CLK為時(shí)鐘信號(hào)腳。


TM1637.h單片機(jī)源程序如下:


  1. sbit CLK= P3^4;   //定義模擬IIC總線的時(shí)鐘線
  2. sbit DIO = P3^5;   //定義模擬IIC總線的數(shù)據(jù)線
  3.   
  4. code unsigned char tab[] =
  5. {
  6.         0x3F,/*0*/
  7.         0x06,/*1*/
  8.         0x5B,/*2*/
  9.         0x4F,/*3*/
  10.         0x66,/*4*/
  11.         0x6D,/*5*/
  12.         0x7D,/*6*/
  13.         0x07,/*7*/
  14.         0x7F,/*8*/
  15.         0x6F,/*9*/
  16.         0x77,/*10 A*/
  17.         0x7C,/*11 b*/
  18.         0x58,/*12 c*/
  19.         0x5E,/*13 d*/
  20.         0x79,/*14 E*/
  21.         0x71,/*15 F*/
  22.         0x76,/*16 H*/
  23.         0x38,/*17 L*/
  24.         0x54,/*18 n*/
  25.         0x73,/*19 P*/
  26.         0x3E,/*20 U*/
  27.     0x00,/*21 黑屏*/
  28. };

  29. void Delay_us(unsigned  int i)
  30. {
  31.     for(;i>0;i--)
  32.         _nop_();;
  33. }

  34. //IIC開(kāi)始
  35. void TM1637_start(void)
  36. {
  37.      CLK=1;
  38.      DIO=1;
  39.      Delay_us(2);
  40.      DIO=0;
  41. }


  42. //IIC應(yīng)答
  43. void TM1637_ack(void)
  44. {
  45.     uchar i;
  46.     CLK=0;
  47.     Delay_us(5);
  48.      //DIO=1;   
  49.     while(DIO==1&&(i<250))i++;
  50.     CLK=1;
  51.     Delay_us(2);
  52.     CLK=0;
  53. }

  54. //IIC停止
  55. void TM1637_stop(void)
  56. {
  57.      CLK=0;
  58.      Delay_us(2);
  59.      DIO=0;
  60.      Delay_us(2);
  61.      CLK=1;
  62.      Delay_us(2);
  63.      DIO=1;
  64.      Delay_us(2);
  65. }

  66. //寫數(shù)據(jù)函數(shù)
  67. void TM1637_Write(unsigned char DATA)   
  68. {
  69.     unsigned char i;   
  70.     for(i=0;i<8;i++)        
  71.     {
  72.         CLK=0;     
  73.         if(DATA & 0x01)
  74.             DIO=1;
  75.         else DIO=0;
  76.          Delay_us(3);
  77.         DATA=DATA>>1;      
  78.         CLK=1;
  79.          Delay_us(3);
  80.     }  
  81.     //TM1637_ack();
  82. }



  83. //按順序顯示
  84. void TM1637_display(uchar a,uchar b,uchar c,uchar d,uchar h)
  85. {

  86.     TM1637_start();
  87.     TM1637_Write(0x40);//寫數(shù)據(jù)+自動(dòng)地址加1+普通模式
  88.     TM1637_ack();
  89.     TM1637_stop();
  90.     TM1637_start();
  91.     TM1637_Write(0xc0);//設(shè)置顯示首地址即第一個(gè)LED
  92.     TM1637_ack();

  93.     TM1637_Write(tab[a]);
  94.     TM1637_ack();
  95.     TM1637_Write(tab[b]|h<<7);//h為1時(shí)顯示時(shí)鐘中間的兩點(diǎn)
  96.     TM1637_ack();
  97.     TM1637_Write(tab[c]);
  98.     TM1637_ack();
  99.     TM1637_Write(tab[d]);
  100.     TM1637_ack();

  101.     TM1637_stop();
  102.     TM1637_start();
  103.     TM1637_Write(0x89);//開(kāi)顯示,2/16亮度
  104.     TM1637_ack();
  105.     TM1637_stop();
  106. }

復(fù)制代碼


作者: 敏敏BB    時(shí)間: 2019-2-18 11:03
支持一下
作者: 敏敏BB    時(shí)間: 2019-2-18 11:04
可不可以提供技術(shù)幫助
作者: lmn2005    時(shí)間: 2019-2-18 15:01
敏敏BB 發(fā)表于 2019-2-18 11:04
可不可以提供技術(shù)幫助

有什么問(wèn)題發(fā)到論壇上共同討論和解答。這論壇的高手真的如云呀!高手們的解答也很快的。其他論壇我不清楚,51hei論壇真的人才濟(jì)濟(jì),有些問(wèn)題的解決效率甚至比技術(shù)QQ群還快。不過(guò)每次發(fā)言發(fā)貼都必須審核,本論壇的工作人員實(shí)在太辛苦了!
作者: ioulaumhe    時(shí)間: 2019-3-6 16:01
請(qǐng)教下,這個(gè)tm1637能改矩陣鍵掃描為電容按鍵掃描嗎

作者: freezing51    時(shí)間: 2019-3-7 23:02
過(guò)幾天1637到了我試試
作者: k2866    時(shí)間: 2019-3-8 00:01
ioulaumhe 發(fā)表于 2019-3-6 16:01
請(qǐng)教下,這個(gè)tm1637能改矩陣鍵掃描為電容按鍵掃描嗎

這個(gè)應(yīng)該不行。
作者: initialize111    時(shí)間: 2019-4-1 14:17
請(qǐng)問(wèn)是必須要用IIC的嗎
作者: 吳鵬彬    時(shí)間: 2019-4-1 14:48
這個(gè)很好哦
作者: aking991    時(shí)間: 2019-4-2 08:19
之前也買過(guò)這種模塊,一直沒(méi)時(shí)間測(cè)試,先收藏參考
作者: qysj22    時(shí)間: 2019-6-11 22:34
我的為什么不能用呀
作者: qysj22    時(shí)間: 2019-6-20 13:25
請(qǐng)樓主幫幫忙吧,我按程序走的,為什么不會(huì)亮
作者: lovepurple    時(shí)間: 2019-8-18 10:29
TM1637 供電有電流限制嗎?為什么我直接使用其他的5V供電沒(méi)法顯示,
作者: mobicity    時(shí)間: 2019-9-4 08:53
支持下,感謝
作者: jndy    時(shí)間: 2019-10-28 21:20
學(xué)習(xí)學(xué)習(xí)。。。
作者: Amorxu    時(shí)間: 2019-11-3 12:20
很有用啊
作者: zxy2266    時(shí)間: 2019-12-22 11:00
這樣接線少,CPU選擇余地很大,可以加鍵盤,但程序俺不會(huì)玩
作者: zxy2266    時(shí)間: 2019-12-22 11:04
ioulaumhe 發(fā)表于 2019-3-6 16:01
請(qǐng)教下,這個(gè)tm1637能改矩陣鍵掃描為電容按鍵掃描嗎

大家可以按照這個(gè)加鍵盤,程序調(diào)通了別忘共享下

tm1638.pdf

873.68 KB, 下載次數(shù): 70, 下載積分: 黑幣 -5


作者: wanghuailin    時(shí)間: 2020-1-9 20:39
謝謝分享
作者: txdrdr1988    時(shí)間: 2020-2-5 17:06
可以用。試過(guò)了。
作者: cfbkl    時(shí)間: 2020-2-26 00:36
樓主這個(gè)基本就是按1638官方文檔寫的沒(méi)改什么東西呀
作者: yangfeng2068    時(shí)間: 2020-2-26 21:26
m1637能改矩陣鍵掃描為電容按鍵掃描
作者: donny123800    時(shí)間: 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 黑屏*/
};
這個(gè)編碼是共陰的編碼?不是說(shuō)1637是共陽(yáng)的驅(qū)動(dòng)么?
作者: donny123800    時(shí)間: 2020-2-29 21:44
你的這個(gè)編碼是共陰的編碼?
作者: txdrdr1988    時(shí)間: 2020-3-20 08:21
就是,好奇怪,用共陰編碼,但居然正常顯示

作者: hbcqd    時(shí)間: 2020-3-20 11:55
能發(fā)個(gè)TM1637參數(shù)PDF嗎,謝謝分享!
作者: univers    時(shí)間: 2020-3-21 11:14
這個(gè)官方的數(shù)據(jù)表格全有的。
作者: peili    時(shí)間: 2020-4-13 19:16
手上有個(gè)這樣的模塊,把這個(gè).H文件套進(jìn)去,顯示正常,效果不錯(cuò)
作者: lmn2005    時(shí)間: 2020-4-14 08:58
donny123800 發(fā)表于 2020-2-29 21:44
你的這個(gè)編碼是共陰的編碼?

不是,是共陽(yáng)的
作者: lmn2005    時(shí)間: 2020-4-14 09:08
hbcqd 發(fā)表于 2020-3-20 11:55
能發(fā)個(gè)TM1637參數(shù)PDF嗎,謝謝分享!

不知道好用不好用

數(shù)碼管驅(qū)動(dòng)芯片規(guī)格書-TM1637_V2[1].rar

462.89 KB, 下載次數(shù): 43, 下載積分: 黑幣 -5


作者: a461624201    時(shí)間: 2020-5-31 02:09
還是這個(gè)論壇好啊,百度幾個(gè)小時(shí)都找不到資料。
TM1637可惜不能和DS3231通用I2C協(xié)議,不然可以運(yùn)行在STC15F104上了。
作者: 中恒電子asus    時(shí)間: 2020-6-14 20:45
支持一下
作者: ubun16.04    時(shí)間: 2020-7-15 09:37
測(cè)試成功謝謝樓主!NTP網(wǎng)絡(luò)時(shí)鐘制作中!
作者: zhoulejun    時(shí)間: 2020-9-26 21:13
下載了   準(zhǔn)備移植到stm32上試試
作者: STC2    時(shí)間: 2021-1-26 12:33
怎么用51單片機(jī)做時(shí)鐘呢?

作者: zsw3721    時(shí)間: 2021-1-26 20:34
非常好用。我用了你的例程做好了延時(shí)插座,單片機(jī)用兩個(gè)IO口就能顯示倒計(jì)時(shí),太完美了。
作者: love510    時(shí)間: 2021-5-3 11:29
請(qǐng)問(wèn)一下大哥些,由于是小白,改顯示數(shù)據(jù)參數(shù)改哪一個(gè)

作者: love510    時(shí)間: 2021-5-3 11:30
zsw3721 發(fā)表于 2021-1-26 20:34
非常好用。我用了你的例程做好了延時(shí)插座,單片機(jī)用兩個(gè)IO口就能顯示倒計(jì)時(shí),太完美了。

大哥請(qǐng)問(wèn)顯示數(shù)據(jù)改哪個(gè)參數(shù),比如顯示1.5

作者: catlu    時(shí)間: 2021-5-3 14:08
用TM1637模塊做過(guò)帶遙控功能的電子鐘,看到樓主寫了通用庫(kù),下載來(lái)用著方便,謝謝樓主
作者: zuiqf1978    時(shí)間: 2021-10-6 08:18
我購(gòu)買了一個(gè)1637模塊,官方驅(qū)動(dòng)有共陰和共陽(yáng)編碼,用共陽(yáng)效果一樣!(倒計(jì)時(shí)程序),看來(lái)得深挖程序!
作者: lmn2005    時(shí)間: 2021-10-7 10:38
本帖最后由 新新科技 于 2021-10-8 08:00 編輯
love510 發(fā)表于 2021-5-3 11:30
大哥請(qǐng)問(wèn)顯示數(shù)據(jù)改哪個(gè)參數(shù),比如顯示1.5

我的數(shù)碼管是顯示時(shí)鐘的,不帶小數(shù)點(diǎn),帶小數(shù)點(diǎn)的模塊還沒(méi)有用過(guò),不知道某一個(gè)寶是否能找到。
作者: 乙豬    時(shí)間: 2022-3-22 10:42
這個(gè)論壇就是好。隨時(shí)可以找到自己想要的東東,以前怎么沒(méi)發(fā)現(xiàn)它呢。
作者: haokucn    時(shí)間: 2022-4-8 00:01
能出個(gè)詳細(xì)用法嗎
作者: 6313    時(shí)間: 2022-4-8 10:41
怎么生成庫(kù)文件
作者: zhxiufan    時(shí)間: 2022-8-15 17:09
TM1637模塊,數(shù)據(jù)要用共陰極的,數(shù)碼管要選擇共陽(yáng)極的。用起來(lái)還是比較方便的,動(dòng)態(tài)掃描那塊不用自己去做了。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1