找回密码
 立即注册

QQ登录

只需一步,快速开始

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

(原创)骑远飞TM1638模块显示功能实践 源程序

[复制链接]
跳转到指定楼层
楼主
  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  令第一位数码管显示0
  19.               第二位数码管显示1
  20.                           ......
  21. 下面是各数码管编号
  22. 0xC0,0xC2,0xC4,0xC6,0xC8,0xCA,0xCC,0xCE
  23. 下面是各LED编号
  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]); //轮显各数码管
  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. }
复制代码
  1. #ifndef _TM1638_H
  2. #define _TM1638_H
  3. #include "reg51.h"
  4. //TM1638模块引脚定义
  5. sbit DIO=P1^3; //数据线
  6. sbit CLK=P1^2; //时钟线
  7. sbit STB=P1^1; //片选线
  8. //共阴数码管显示代码
  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) //写数据函数
  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) //发送命令
  23. {
  24. STB=0;
  25. TM1638_Write(Command);
  26. STB=1;
  27. }
  28. void Write_Data(unsigned char add,unsigned char Data) //指定地址写入数据
  29. {
  30. STB=0;
  31. TM1638_Write(0x00|add);
  32. TM1638_Write(Data);
  33. STB=1;
  34. }
  35. //TM1638初始化函数
  36. void init_TM1638(void)
  37. {
  38. unsigned char i;
  39. Write_Command(0x8F);
  40. Write_Command(0x40); //采用地址自动加1
  41. STB=0;
  42. TM1638_Write(0xc0); //设置起始地址
  43. for(i=0;i<16;i++) //传送16个字节的数据
  44. TM1638_Write(0x00);
  45. STB=1;


  46. }
  47. #endif
复制代码

002.gif (95.66 KB, 下载次数: 4)

002.gif

004.jpg (79.83 KB, 下载次数: 3)

004.jpg

骑远飞TM1638模块显示.zip

1.18 KB, 下载次数: 5, 下载积分: 黑币 -5

这个是上面2个程序,可以直接从网页复制 不必下载

骑远飞TM1638模块显示视频.zip

3.82 MB, 下载次数: 2, 下载积分: 黑币 -5

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

使用道具 举报

沙发
ID:1112584 发表于 2024-4-19 13:53 | 只看该作者
TM1638芯片的数据手册很抽象,对于初学者来说各功能也很容易搞混,这里参考了网上资料和帖子将显示功能实践一番并加以记录,提供给同样的初学者一起探讨完善。如有更好的更详细的实例,欢迎交流。
回复

使用道具 举报

板凳
ID:996773 发表于 2024-4-19 16:14 | 只看该作者


已经用汇编写出1638程序并应用到数控收音系统,
回复

使用道具 举报

地板
ID:1112584 发表于 2024-4-19 16:26 来自手机 | 只看该作者
hi等你 发表于 2024-4-19 16:14
已经用汇编写出1638程序并应用到数控收音系统,

向你学习,我是初学者
回复

使用道具 举报

5#
ID:1064915 发表于 2024-4-19 16:52 | 只看该作者
74hc164读按键程序有没有
回复

使用道具 举报

6#
ID:1112584 发表于 2024-4-20 16:05 来自手机 | 只看该作者
joyb 发表于 2024-4-19 16:52
74hc164读按键程序有没有

没有呢,电脑资料里有仿真和hex文件
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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