找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1458|回復(fù): 5
收起左側(cè)

(原創(chuàng))騎遠(yuǎn)飛TM1638模塊顯示功能實(shí)踐 源程序

[復(fù)制鏈接]
ID:1112584 發(fā)表于 2024-4-19 13:38 | 顯示全部樓層 |閱讀模式
  1. #include "reg51.h"
  2. #include "tm1638.h"

  3. void DelayMs(unsigned int ms);
  4. void DelayMs(unsigned int ms)      
  5.   {
  6.    unsigned int i,j;
  7.         for(i=0;i<ms;i++)
  8.         for(j=0;j<200;j++);  
  9.          
  10.   }

  11. void main(void)
  12. {
  13. unsigned char i;
  14. init_TM1638(); //初始化TM1638
  15. for(i=0;i<8;i++)
  16. Write_Data(i,dis[10]); //初始化寄存器
  17. /***************************************
  18. 選中GRID1  令第一位數(shù)碼管顯示0
  19.               第二位數(shù)碼管顯示1
  20.                           ......
  21. 下面是各數(shù)碼管編號(hào)
  22. 0xC0,0xC2,0xC4,0xC6,0xC8,0xCA,0xCC,0xCE
  23. 下面是各LED編號(hào)
  24. 0xC1,0xC3,0xC5,0xC7,0xC9,0xCB,0xCD,0xCF
  25. ****************************************/
  26. while(1)
  27. {
  28. for(i=0;i<8;i++){
  29. Write_Data(0xC0+i*2,dis[i]); //輪顯各數(shù)碼管
  30. DelayMs(200);                                 //輪顯各LED
  31. Write_Data(0xC0+i*2+1,0xff);
  32. DelayMs(500);
  33. }
  34. Write_Command(0x80);
  35. DelayMs(500);
  36. init_TM1638();
  37. }
  38. }
復(fù)制代碼
  1. #ifndef _TM1638_H
  2. #define _TM1638_H
  3. #include "reg51.h"
  4. //TM1638模塊引腳定義
  5. sbit DIO=P1^3; //數(shù)據(jù)線(xiàn)
  6. sbit CLK=P1^2; //時(shí)鐘線(xiàn)
  7. sbit STB=P1^1; //片選線(xiàn)
  8. //共陰數(shù)碼管顯示代碼
  9. unsigned char code dis[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
  10. 0x7F,0x6F,0x00};
  11. void TM1638_Write(unsigned char Data) //寫(xiě)數(shù)據(jù)函數(shù)
  12. {
  13. unsigned char i;
  14. for(i=0;i<8;i++)
  15. {
  16. CLK=0;
  17. DIO=Data&0x01;
  18. Data>>=1;
  19. CLK=1;
  20. }
  21. }
  22. void Write_Command(unsigned char Command) //發(fā)送命令
  23. {
  24. STB=0;
  25. TM1638_Write(Command);
  26. STB=1;
  27. }
  28. void Write_Data(unsigned char add,unsigned char Data) //指定地址寫(xiě)入數(shù)據(jù)
  29. {
  30. STB=0;
  31. TM1638_Write(0x00|add);
  32. TM1638_Write(Data);
  33. STB=1;
  34. }
  35. //TM1638初始化函數(shù)
  36. void init_TM1638(void)
  37. {
  38. unsigned char i;
  39. Write_Command(0x8F);
  40. Write_Command(0x40); //采用地址自動(dòng)加1
  41. STB=0;
  42. TM1638_Write(0xc0); //設(shè)置起始地址
  43. for(i=0;i<16;i++) //傳送16個(gè)字節(jié)的數(shù)據(jù)
  44. TM1638_Write(0x00);
  45. STB=1;


  46. }
  47. #endif
復(fù)制代碼
002.gif
004.jpg

騎遠(yuǎn)飛TM1638模塊顯示.zip

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

這個(gè)是上面2個(gè)程序,可以直接從網(wǎng)頁(yè)復(fù)制 不必下載

騎遠(yuǎn)飛TM1638模塊顯示視頻.zip

3.82 MB, 下載次數(shù): 6, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 1黑幣 +70 收起 理由
admin + 70 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:1112584 發(fā)表于 2024-4-19 13:53 | 顯示全部樓層
TM1638芯片的數(shù)據(jù)手冊(cè)很抽象,對(duì)于初學(xué)者來(lái)說(shuō)各功能也很容易搞混,這里參考了網(wǎng)上資料和帖子將顯示功能實(shí)踐一番并加以記錄,提供給同樣的初學(xué)者一起探討完善。如有更好的更詳細(xì)的實(shí)例,歡迎交流。
回復(fù)

使用道具 舉報(bào)

ID:996773 發(fā)表于 2024-4-19 16:14 | 顯示全部樓層
225804oo08kajgizttsaji.jpg

已經(jīng)用匯編寫(xiě)出1638程序并應(yīng)用到數(shù)控收音系統(tǒng),
回復(fù)

使用道具 舉報(bào)

ID:1112584 發(fā)表于 2024-4-19 16:26 來(lái)自手機(jī) | 顯示全部樓層
hi等你 發(fā)表于 2024-4-19 16:14
已經(jīng)用匯編寫(xiě)出1638程序并應(yīng)用到數(shù)控收音系統(tǒng),

向你學(xué)習(xí),我是初學(xué)者
回復(fù)

使用道具 舉報(bào)

ID:1064915 發(fā)表于 2024-4-19 16:52 | 顯示全部樓層
74hc164讀按鍵程序有沒(méi)有
回復(fù)

使用道具 舉報(bào)

ID:1112584 發(fā)表于 2024-4-20 16:05 來(lái)自手機(jī) | 顯示全部樓層
joyb 發(fā)表于 2024-4-19 16:52
74hc164讀按鍵程序有沒(méi)有

沒(méi)有呢,電腦資料里有仿真和hex文件
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表