找回密码
 立即注册
楼主: qepuemc

请教32G12K128怎么带TM1640驱动数码管先分享我成功的在STC15W408AS上的成功经验

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-4-17 22:44:52 | 显示全部楼层
再分享一下不成功的例请懂的给看看哪里有问题。STC8H8K下 LQFP32

  1. //本例程基于STC8H8K64U为主控芯片的实验箱9进行编写测试,STC8G、STC8H系列芯片可通用参考.
  2. #include "stc8h.h"       //包含此头文件后,不需要再包含"reg51.h"头文件
  3. #include "intrins.h"
  4. //1.TM1640显示基本程序
  5. sbit DIN=P3^5;                                   //定义DIN数据端口
  6. sbit CLK=P3^4;                                   //定义CLK数据端口
  7. unsigned int  CODE[16]={0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,};  //共阴数码管0~F字型码,需根据硬件接法定义               
  8. //1.TM1640显示基本程序
  9. //2.TM1640显示基本程序
  10. /********************Start函数*************************/
  11. void I2CStart()
  12. {
  13.     DIN=1;
  14.     CLK=1;
  15.         _nop_();
  16.         _nop_();
  17.         DIN=1;
  18.         _nop_();
  19.         _nop_();
  20.         DIN=0;
  21.         _nop_();
  22.         _nop_();
  23.         _nop_();
  24.         _nop_();
  25.         CLK=0;
  26.         _nop_();
  27.         _nop_();
  28. }
  29. /********************Stop函数*************************/
  30. void I2CStop()
  31. {
  32.         CLK=1;
  33.         _nop_();
  34.         _nop_();
  35.         DIN=0;
  36.         _nop_();
  37.         _nop_();
  38.         DIN=1;
  39.         _nop_();
  40.         _nop_();
  41.         CLK=0;
  42.         DIN=0;
  43. }
  44. /***************发送8bit数据,从低位开始**************/
  45. void I2CWritebyte(unsigned char oneByte)
  46. {
  47.   unsigned char i;
  48.   for(i=0;i<8;i++)
  49.   {
  50.     CLK=0;
  51.         if(oneByte&0x01)
  52.           DIN=1;
  53.         else
  54.           DIN=0;
  55.         _nop_();
  56.         _nop_();
  57.         _nop_();
  58.         CLK=1;
  59.         oneByte=oneByte>>1;
  60.         }
  61.         CLK=0;
  62.         _nop_();
  63.         _nop_();
  64.         _nop_();
  65.         _nop_();
  66.         DIN=0;
  67.         _nop_();
  68.         _nop_();
  69. }
  70. /************显示函数,数码管1~16位显示0~F************/
  71. void disp()
  72. {
  73. unsigned char i;
  74. I2CStart();
  75. I2CWritebyte(0x40);        //数据命令设置:普通模式,地址自动加一
  76. I2CStop();
  77. I2CStart();
  78. I2CWritebyte(0xc0);        //地址命令设置:初始地址00H
  79. for(i=0;i<16;i++)                //发送16位显示数据
  80. {
  81.    I2CWritebyte(CODE[i]);
  82. }
  83. I2CStop();
  84. I2CStart();
  85. I2CWritebyte(0x8c);        //显示控制:显示开,脉冲宽度设为11/16
  86. I2CStop();
  87. }
  88. //2.TM1640显示基本程序
  89. void main()
  90. {
  91.        
  92.     P0M0 = 0x00; P0M1 = 0x00;
  93.     P1M0 = 0x00; P1M1 = 0x00;
  94.     P2M0 = 0x00; P2M1 = 0x00;
  95.     P3M0 = 0x00; P3M1 = 0x00;
  96.     P4M0 = 0x00; P4M1 = 0x00;
  97.     P5M0 = 0x00; P5M1 = 0x00;
  98.     P6M0 = 0x00; P6M1 = 0x00;
  99.     P7M0 = 0x00; P7M1 = 0x00;
  100.        
  101. while (1);
  102. {
  103.          
  104. //3.TM1640显示基本程序
  105. //重新定义数码管显示的数据
  106. //取数据
  107. CODE[0]=5;
  108. //取数据
  109. //取数据
  110. //取数据
  111. //数据比较
  112. //第1位
  113. switch(CODE[0]){       
  114.         case 0: CODE[0]=0x3F; break;
  115.         case 1: CODE[0]=0x06; break;
  116.         case 2: CODE[0]=0x5B; break;
  117.         case 3: CODE[0]=0x4F; break;       
  118.         case 4: CODE[0]=0x66; break;
  119.         case 5: CODE[0]=0x6D; break;
  120.         case 6: CODE[0]=0x7D; break;
  121.         case 7: CODE[0]=0x07; break;
  122.         case 8: CODE[0]=0x7F; break;
  123.         case 9: CODE[0]=0x6F; break;       
  124. }
  125. //第1位
  126. disp();                         //显示
  127. //3.TM1640显示基本程序
  128.          
  129. }
  130. }
复制代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

积分
1326
发表于 2024-4-18 00:20:16 | 显示全部楼层
我有1637的,感兴趣的话我可以贴下
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:523
  • 最近打卡:2025-05-02 06:09:34
已绑定手机

34

主题

459

回帖

2219

积分

金牌会员

积分
2219
发表于 2024-4-21 20:36:54 | 显示全部楼层
嵌入*** 发表于 2024-4-18 00:20
我有1637的,感兴趣的话我可以贴下

贴上来学习一下,谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

积分
1326
发表于 2024-4-21 22:41:03 | 显示全部楼层
jackf*** 发表于 2024-4-21 20:36
贴上来学习一下,谢谢

我本周整理下
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:523
  • 最近打卡:2025-05-02 06:09:34
已绑定手机

34

主题

459

回帖

2219

积分

金牌会员

积分
2219
发表于 2024-4-22 07:36:19 | 显示全部楼层

非常感谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 2024-4-22 09:02:42 | 显示全部楼层
截图202404220900414279.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-4-24 14:36:44 来自手机 | 显示全部楼层
xxkj2010 发表于 2024-4-22 09:02

代码就是人家给的例子。在stc15w可以用。stc32也可以用。stc8让我直接放弃1640
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 2024-4-24 15:02:00 | 显示全部楼层
用逻辑分析仪看一下波形。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-4-24 22:21:12 来自手机 | 显示全部楼层
xxkj2010 发表于 2024-4-24 15:02
用逻辑分析仪看一下波形。

该解决的问题已解决,解决不了的。就算了,波形什么的就算了吧。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-4-25 21:27:47 | 显示全部楼层
STC32G12*** 发表于 2024-3-23 09:48
stc32G驱动数码,其他客户测试的分享:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=5604&high ...

https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7602  在9楼
这个是我刚分离好的好理解的STC直接驱动PCB的例子。有需要可以参考一下
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 22:11 , Processed in 0.135005 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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