找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10506|回復(fù): 18
打印 上一主題 下一主題
收起左側(cè)

TM1640 含51單片機主程序帶電路圖 驅(qū)動共陽5位7斷數(shù)碼管

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:725358 發(fā)表于 2021-2-27 19:47 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
適合小白學(xué)習(xí)51通過TM1640驅(qū)動共陽數(shù)碼管 含51主程序和電路圖 燒錄不用更改即可顯示 模塊化編程 方便移值

單片機源程序如下:
  1. #include "TM1640.h"

  2. /*void delay_ms(int ms)                //@11.0592MHz
  3. {
  4.         unsigned char i, j;
  5.         do{
  6.         _nop_();
  7.         i = 2;
  8.         j = 199;
  9.         do
  10.         {
  11.                 while (--j);
  12.         } while (--i);
  13.         }while(--ms);
  14. } */



  15. void TM1640_Start(void)
  16. {
  17.         TM1640_SCK_HIGH;
  18.         TM1640_DOUT_HIGH;
  19.         //delay_us(10);
  20.         TM1640_DOUT_LOW;
  21.         //delay_us(10);
  22.         TM1640_SCK_LOW;
  23.         //delay_us(10);
  24. }

  25. void TM1640_Stop(void)
  26. {
  27.         TM1640_DOUT_LOW;
  28.         TM1640_SCK_HIGH;
  29.         //delay_us(10);
  30.         TM1640_DOUT_HIGH;
  31.         //delay_us(10);
  32. }

  33. void TM1640_Write_Byte(unsigned char date)
  34. {
  35.         unsigned char i;
  36.         unsigned char Temp;
  37.         Temp=date;
  38.         TM1640_SCK_LOW;
  39.         TM1640_DOUT_LOW;
  40.         for(i=0;i<8;i++)
  41.         {
  42.                 TM1640_SCK_LOW;
  43.                 //delay_us(2);

  44.                 if(Temp&0x01)
  45.                 {        
  46.                         TM1640_DOUT_HIGH;
  47.                         //delay_us(10);
  48.         
  49.                 }
  50.                 else
  51.                 {
  52.                         TM1640_DOUT_LOW;
  53.                         //delay_us(10);

  54.                 }
  55.                 TM1640_SCK_HIGH;
  56.                 //delay_us(1);
  57.                 Temp = Temp >> 1;
  58.         }
  59.         TM1640_SCK_LOW;
  60.   TM1640_DOUT_LOW;
  61. }

  62. void Write_Com(unsigned char date)//發(fā)送命令字
  63. {
  64.         TM1640_Start();
  65.         TM1640_Write_Byte(date);
  66.         TM1640_Stop();
  67. }

  68. /*void Write_DATA(unsigned char add,unsigned char DATA)                //指定地址寫入數(shù)據(jù)
  69. {
  70.         Write_Com(0x44); //44固定地址 40連續(xù)地址
  71.         TM1640_Start();
  72.         TM1640_Write_Byte(0xc0|add);
  73.         TM1640_Write_Byte(DATA);
  74.         TM1640_Stop();
  75. }*/
  76. void Write_DATA(unsigned char DATA0 ,unsigned char DATA1,unsigned char DATA2,unsigned char DATA3,unsigned char DATA4,unsigned char DATA5,unsigned char DATA6)                //指定地址寫入數(shù)據(jù)
  77. {
  78.         Write_Com(0x44); //44固定地址 40連續(xù)地址
  79.         TM1640_Start();
  80.         TM1640_Write_Byte(0xc0);
  81.         TM1640_Write_Byte(DATA0);
  82.         TM1640_Stop();
  83.         TM1640_Start();
  84.         TM1640_Write_Byte(0xc1);
  85.         TM1640_Write_Byte(DATA1);
  86.         TM1640_Stop();
  87.         TM1640_Start();
  88.         TM1640_Write_Byte(0xc2);
  89.         TM1640_Write_Byte(DATA2);
  90.         TM1640_Stop();
  91.         TM1640_Start();
  92.         TM1640_Write_Byte(0xc3);
  93.         TM1640_Write_Byte(DATA3);
  94.         TM1640_Stop();
  95.         TM1640_Start();
  96.         TM1640_Write_Byte(0xc4);
  97.         TM1640_Write_Byte(DATA4);
  98.         TM1640_Stop();
  99.         TM1640_Start();
  100.         TM1640_Write_Byte(0xc5);
  101.         TM1640_Write_Byte(DATA5);
  102.         TM1640_Stop();
  103.         TM1640_Start();
  104.         TM1640_Write_Byte(0xc6);
  105.         TM1640_Write_Byte(DATA6);
  106.         TM1640_Stop();
  107. }

  108. void cls_TM1640(void)//清屏函數(shù)
  109. {
  110.         unsigned char i;        
  111.         Write_Com(0x44);//連續(xù)地址模式
  112.         TM1640_Start();
  113.         TM1640_Write_Byte(0xc0);
  114.         for(i=0;i<16;i++)
  115.                 TM1640_Write_Byte(0x00);
  116.         TM1640_Stop();
  117. }

  118. void init_TM1640(void)
  119. {
  120.         cls_TM1640();
  121.         //Write_Com(0x8c);//亮度0x88~0x8F 已放主程序里面調(diào)節(jié)
  122. }
復(fù)制代碼

所有程序51hei提供下載:
TM1640紅綠點陣STC89單片機.7z (16.06 KB, 下載次數(shù): 282)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏9 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:822028 發(fā)表于 2021-4-9 19:31 | 只看該作者
兄弟,下倒是下載了,不會用啊
回復(fù)

使用道具 舉報

板凳
ID:725358 發(fā)表于 2021-10-6 14:44 | 只看該作者
zxjnhs 發(fā)表于 2021-4-9 19:31
兄弟,下倒是下載了,不會用啊

驅(qū)動的是共陽數(shù)碼管 ,具體哪里不會?
回復(fù)

使用道具 舉報

地板
ID:904368 發(fā)表于 2021-10-6 16:19 | 只看該作者
兄弟,壓縮包里面沒有電路圖哦
回復(fù)

使用道具 舉報

5#
ID:725358 發(fā)表于 2021-10-6 16:41 | 只看該作者
yangyouyoulin 發(fā)表于 2021-10-6 16:19
兄弟,壓縮包里面沒有電路圖哦

壓縮包里沒電路圖  你要自己畫了 我原圖沒有了  除51以外的都在那了貼子最上方的圖片上了 51除基本電路外就只有  SCLK接 P1^3 口 ;
DIN 接 P1^2  口  這樣接了你直接就可以跑起來了
回復(fù)

使用道具 舉報

6#
ID:970326 發(fā)表于 2021-10-8 11:29 | 只看該作者
樓主 我想用stc15w408as驅(qū)動tm1640控制2個4位一體共陰數(shù)碼管怎么寫啊,我想做一個定時時鐘
回復(fù)

使用道具 舉報

7#
ID:970326 發(fā)表于 2021-10-8 11:32 | 只看該作者
樓主 我用stc15w408as驅(qū)動tm1640控制2個4位一體共陰數(shù)碼管,做一個顯示時間的定時時鐘,怎么寫?
回復(fù)

使用道具 舉報

8#
ID:26229 發(fā)表于 2021-11-13 09:19 | 只看該作者
怎樣改動可以操作到16個數(shù)碼管?
回復(fù)

使用道具 舉報

9#
ID:994319 發(fā)表于 2021-12-19 17:52 | 只看該作者
我的編譯器貌似有問題呀
回復(fù)

使用道具 舉報

10#
ID:297735 發(fā)表于 2022-1-1 18:35 | 只看該作者
沒有任何顯示樓主 請教下是什么問題啊
回復(fù)

使用道具 舉報

11#
ID:725358 發(fā)表于 2022-5-6 08:14 | 只看該作者
wkaikai 發(fā)表于 2021-10-8 11:29
樓主 我想用stc15w408as驅(qū)動tm1640控制2個4位一體共陰數(shù)碼管怎么寫啊,我想做一個定時時鐘

2位共陰只需要10個腳 你有16腳的MCU就可以直接驅(qū)動了 要1640干嘛
回復(fù)

使用道具 舉報

12#
ID:725358 發(fā)表于 2022-5-6 08:15 | 只看該作者
fdc2011 發(fā)表于 2021-11-13 09:19
怎樣改動可以操作到16個數(shù)碼管?

16位共陰是可以的
回復(fù)

使用道具 舉報

13#
ID:1037785 發(fā)表于 2022-6-30 17:09 | 只看該作者
這個代碼全面嗎
回復(fù)

使用道具 舉報

14#
ID:1037785 發(fā)表于 2022-6-30 17:18 | 只看該作者
程序源碼全面嗎
回復(fù)

使用道具 舉報

15#
ID:725358 發(fā)表于 2022-7-12 20:30 | 只看該作者

全面的點亮的
回復(fù)

使用道具 舉報

16#
ID:878399 發(fā)表于 2022-7-20 20:44 | 只看該作者
請問一下樓主,這個程序在TM1637.TM1650上也可以用嗎?
回復(fù)

使用道具 舉報

17#
ID:725358 發(fā)表于 2022-10-22 12:56 | 只看該作者
shzx 發(fā)表于 2022-7-20 20:44
請問一下樓主,這個程序在TM1637.TM1650上也可以用嗎?

不清楚呢 估計不行 你可以試下
回復(fù)

使用道具 舉報

18#
ID:1077165 發(fā)表于 2023-5-13 15:14 | 只看該作者
共陽數(shù)碼管
回復(fù)

使用道具 舉報

19#
ID:98880 發(fā)表于 2023-11-3 09:55 | 只看該作者
謝謝提供代碼,只是有一些地方寫的復(fù)雜了。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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