找回密码
 立即注册
查看: 2980|回复: 14

tm1621d驱动可以用的例子谁有可以发下吗

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:387
  • 最近打卡:2025-05-12 07:41:26

43

主题

336

回帖

627

积分

高级会员

积分
627
发表于 2024-10-20 17:24:41 来自手机 | 显示全部楼层 |阅读模式
研究了一两个月了,实在研究不出来。
哪位大哥的理由可以发出来分享一下吗?
IMG_20241020_165129.jpg
现在的情况就是没有输出。别的都不考虑。现在就考虑能输出就行。
谢谢谢谢
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:247
  • 最近打卡:2025-05-12 01:35:10

22

主题

282

回帖

939

积分

高级会员

积分
939
发表于 2024-10-20 19:47:27 来自手机 | 显示全部楼层
使用逻辑分析仪查看
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:387
  • 最近打卡:2025-05-12 07:41:26

43

主题

336

回帖

627

积分

高级会员

积分
627
发表于 2024-10-21 08:57:28 来自手机 | 显示全部楼层
邮箱 发表于 2024-10-20 19:47
使用逻辑分析仪查看

万用表也不是傻子,万用表测不出来电压
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:247
  • 最近打卡:2025-05-12 01:35:10

22

主题

282

回帖

939

积分

高级会员

积分
939
发表于 2024-10-21 11:27:21 来自手机 | 显示全部楼层
qepuemc 发表于 2024-10-21 08:57
万用表也不是傻子,万用表测不出来电压

逻辑分析仪看通信时序是否正确
REMOVEUNUSED
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:387
  • 最近打卡:2025-05-12 07:41:26

43

主题

336

回帖

627

积分

高级会员

积分
627
发表于 2024-10-21 11:39:25 来自手机 | 显示全部楼层
邮箱 发表于 2024-10-21 11:27
逻辑分析仪看通信时序是否正确

就算我有逻辑分析一。就算我去看。我也看不懂
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:387
  • 最近打卡:2025-05-12 07:41:26

43

主题

336

回帖

627

积分

高级会员

积分
627
发表于 2024-10-21 11:40:39 来自手机 | 显示全部楼层
邮箱 发表于 2024-10-21 11:27
逻辑分析仪看通信时序是否正确

我知道的,就是把程序下载进去就完活了.有意思的就是根本就找不到。这么基本的东西,不知道为啥要藏着掖着
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:191
  • 最近打卡:2025-05-11 10:09:53

5

主题

37

回帖

521

积分

高级会员

积分
521
发表于 2024-10-21 11:58:59 | 显示全部楼层
找1621d的手册去编, 或者找类似的芯片程序去改
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:191
  • 最近打卡:2025-05-11 10:09:53

5

主题

37

回帖

521

积分

高级会员

积分
521
发表于 2024-10-21 12:17:45 | 显示全部楼层
Ai8H2K32U驱动HT1621再驱动段码LCD
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11050

这个去改
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:387
  • 最近打卡:2025-05-12 07:41:26

43

主题

336

回帖

627

积分

高级会员

积分
627
发表于 2024-10-22 08:08:39 | 显示全部楼层
本帖最后由 qepuemc 于 2024-10-22 08:41 编辑
vip2*** 发表于 2024-10-21 12:17
Ai8H2K32U驱动HT1621再驱动段码LCD
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11050


这个。代码之前就已经看过了。当时一看没法用,也就没试好。
刚才改了改,把没用的去掉。已经成功发信号到了1621   终于看到点亮的希望了。
非常感谢。{:5_272:}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:387
  • 最近打卡:2025-05-12 07:41:26

43

主题

336

回帖

627

积分

高级会员

积分
627
发表于 2024-10-31 23:00:00 | 显示全部楼层
自己分享一个吧。用stc15w408AS的 这类的都可以。
代码直接贴出保证可以编译也可以用。只是实现可以驱动 正常连接
  1. #include <STC15WX.h>                                         //MCU头文件
  2. #include "intrins.h"                                         //包含nop指令头文件
  3. #define uchar unsigned char                                 //数据类型宏定义
  4. #define uint unsigned int                                 //数据类型宏定义
  5. #define nop _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //宏定义
  6. /******************TM1621D模块命令定义*********************/
  7. #define SYSDIS   0x00         //关系统振荡器和LCD偏压发生器        
  8. #define SYSEN    0x02    //打开系统振荡器        
  9. #define LCDOFF   0x04     //关LCD偏压
  10. #define LCDON    0x06     //开LCD偏压
  11.                                                          
  12. #define RC       0x30     //内部RC振荡        
  13. #define BIAS     0x52     //1/3偏压 4公共口        
  14. /********************定义控制端口**********************/
  15. sbit CS=P1^3;
  16. sbit WRITE=P1^4;
  17. sbit DATA=P1^5;
  18. /********************定义数据*************************/
  19. //uchar code Smg[16]={0xeb,0x60,0xc7,0xE5,0x6C,0xAD,0xaf,0xE0,0xef,0xed,0xee,0x2f,0x8b,0x67,0x8f,0x8e};  //0~F字型码
  20. uchar code Smg[16]={0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};  //0~F字型码
  21. uchar code Tab0[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //清屏
  22. /********************延时函数*************************/
  23. void delay_nms(uint n)
  24. {
  25.    uint i;
  26.    while(n--)
  27.      for(i=0;i<500;i++);
  28. }
  29. /********************从高位写入数据*************************/
  30. void Write_Data_H(uchar Data, uchar Cnt)           //Data的高cnt位写入TM1621D,高位在前
  31. {
  32. uchar i;
  33. for(i=0;i<Cnt;i++)
  34. {
  35.   WRITE=0;
  36.   if(Data&0x80)                                   //从最高位发送
  37.     DATA=1;               
  38.   else
  39.     DATA=0;
  40.   nop;
  41.   nop;
  42.   WRITE=1;
  43.   Data<<=1;
  44. }
  45. WRITE=0;
  46. DATA=0;
  47. }
  48. /********************从低位写入数据*************************/
  49. void Write_Data_L(uchar Data,uchar Cnt) //Data 的低cnt位写入TM1621D,低位在前
  50. {
  51. unsigned char i;
  52. for(i=0;i<Cnt;i++)
  53. {
  54.    WRITE=0;
  55.    if(Data&0x01)                                 //从低位发送
  56.      DATA=1;  
  57.    else
  58.      DATA=0;
  59.         nop;
  60.         nop;
  61.         WRITE=1;
  62.         Data>>=1;
  63. }
  64.   WRITE=0;
  65.   DATA=0;  
  66. }
  67. /********************写入控制命令*************************/
  68. void WriteCmd(uchar Cmd)
  69. {
  70. CS=0;
  71. nop;
  72. Write_Data_H(0x80,4);     //写入命令标志100
  73. Write_Data_H(Cmd,8);      //写入命令数据
  74. CS=1;
  75. nop;
  76. }
  77. /*********指定地址写入数据,实际写入后4位************/
  78. void WriteOneData(uchar Addr, uchar Data)
  79. {
  80. CS=0;
  81. Write_Data_H(0xa0,3);     //写入数据标志101
  82. Write_Data_H(Addr<<2,6);  //写入地址数据
  83. Write_Data_L(Data,4);     //写入数据
  84. CS=1;
  85. nop;
  86. }
  87. /*********连续写入方式,每次数据为8位,写入数据************/
  88. void WriteAllData(uchar Addr,uchar *p,uchar cnt)
  89. {
  90. uchar i;
  91. CS=0;
  92. Write_Data_H(0xa0,3);          //写入数据标志101
  93. Write_Data_H(Addr<<2,6);        //写入地址数据
  94. for(i=0;i<cnt;i++)                //写入数据
  95. {
  96.    Write_Data_L(*p,8);            
  97.    p++;
  98. }
  99. CS=1;
  100. nop;
  101. }
  102. /*******************TM1621D初始化**********************/
  103. void TM1621D_init()
  104. {
  105. CS=1;
  106. WRITE=1;
  107. DATA=1;
  108. nop;
  109. delay_nms(1);                        
  110. WriteCmd(BIAS);                 //1/3偏压 4公共口
  111. WriteCmd(RC);                         //内部RC振荡
  112. WriteCmd(SYSDIS);                 //关系统振荡器和LCD偏压发生器
  113. WriteCmd(SYSEN);                 //打开系统振荡器
  114. WriteCmd(LCDON);                 //开LCD偏压
  115. }
  116. void main()
  117. {
  118. TM1621D_init();                //开机初始化
  119. delay_nms(1);
  120. WriteAllData(0,Tab0,16);         //LCD清显存
  121. while(1)
  122. {
  123. // WriteAllData(0x0b,Smg,6);          //LCD SEG10到SEG21显示0~5
  124.        
  125.        
  126.         WriteOneData(0x09,0x0a); //  1234   3
  127.        
  128.         WriteOneData(0x0B,0x0b); //  1234   4
  129.        
  130.         WriteOneData(0x0e,0x0c); //  1234   4
  131.        
  132.         WriteOneData(0x0f,0x0f); //  1234   4
  133.                  //WriteAllData(0x0e,Smg,1);          //LCD SEG10到SEG21显示0~5
  134. }
  135. }
复制代码
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-13 00:45 , Processed in 0.131137 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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