找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3785|回复: 1
打印 上一主题 下一主题
收起左侧

TM1638模块源单片机程序

[复制链接]
跳转到指定楼层
楼主
ID:581686 发表于 2019-7-30 22:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TM1638 驱动数码管显示模块

单片机源程序如下:

  1. #include "TM1638.h"

  2. int LED_Buff[8];

  3. void TM1638_writeByte(unsigned char Num)                                //写入数据函数
  4. {
  5.         int i;
  6.         for (i = 0; i < 8; i++)
  7.         {
  8.                 CLK = 0;
  9.                 if(Num & (0x01))
  10.                         DIO = 1;
  11.                 else
  12.                         DIO = 0;
  13.                 CLK = 1;
  14.           Num >>= 1;
  15.         }
  16. }

  17. void TM1638_write_CMD(unsigned char cmd)   //发送控制命令函数
  18. {
  19.         STB = 1;
  20.         STB = 0;
  21.         TM1638_writeByte(cmd);                                       
  22. }



  23. //用于LED显示亮度,开关控制
  24. void TM1638_Disp_Ctl(unsigned char DispCtl)
  25. {
  26.         STB = 0;
  27.         DispCtl |= 0x80;
  28.        
  29.         TM1638_writeByte(DispCtl);
  30.          
  31.         STB = 1;
  32. }


  33. //把buffer里的数据送到TM1638的显示寄存器里面
  34. void TM1638_Refresh()
  35. {
  36.         int i;
  37.         STB = 0;
  38.         TM1638_writeByte(0x40); //设置数据命令
  39.         STB = 1;
  40.         STB = 0;
  41.         TM1638_writeByte(0xC0); //设置显示地址
  42.        
  43.         for(i=0;i<8;i++)
  44.         {
  45.                 switch(LED_Buff[i])
  46.                 {
  47.                         case 0 : TM1638_WriteData(0x00,0x00);break;
  48.                         case 1 : TM1638_WriteData(0x06,0x00);break;
  49.                         case 2 : TM1638_WriteData(0x5b,0x00);break;
  50.                         case 3 : TM1638_WriteData(0x4f,0x00);break;
  51.                         case 4 : TM1638_WriteData(0x66,0x00);break;
  52.                         case 5 : TM1638_WriteData(0x6d,0x00);break;
  53.                         case 6 : TM1638_WriteData(0x7d,0x00);break;
  54.                         case 7 : TM1638_WriteData(0x07,0x00);break;
  55.                         case 8 : TM1638_WriteData(0x7f,0x00);break;
  56.                         case 9 : TM1638_WriteData(0x5f,0x00);break;
  57.                 }
  58.                
  59.         //        TM1638_writeByte(LED_Buff[i]);
  60.         }
  61.        
  62.         STB = 1;
  63.        
  64.         //TM1638_Disp_Ctl( TM1638_DSP_LIGHT07 | TM1638_DSP_ON  );
  65.        
  66. }

  67. void LED_disp(unsigned int num)
  68. {
  69. //        unsigned int num = A / 1000;
  70. //        unsigned int B = A - num*1000;
  71. //        LED_Buff[7] = B % 10;
  72. //        LED_Buff[6] = B / 10 % 10;
  73. //        LED_Buff[5] = B / 100 % 10;
  74.         LED_Buff[4] = num % 10;
  75.         LED_Buff[3] = num / 10 % 10;
  76.         LED_Buff[2] = num / 100 % 10;
  77.         LED_Buff[1] = num / 1000 % 10;
  78.         LED_Buff[0] = num / 10000 % 10;
  79.         TM1638_Refresh();
  80. }

  81. void TM1638_WriteData(unsigned char num1,unsigned char num2)
  82. {
  83.         TM1638_writeByte(num1);
  84.         TM1638_writeByte(num2);
  85. }
复制代码

所有资料51hei提供下载:
TM1638.zip (80.49 KB, 下载次数: 66)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2019-7-30 23:29 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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