找回密码
 立即注册
查看: 673|回复: 15

降龙棍外接数码管记录贴

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

61

主题

818

回帖

1514

积分

金牌会员

积分
1514
发表于 2024-5-17 08:06:45 | 显示全部楼层 |阅读模式
本帖最后由 zhange 于 2024-5-17 17:27 编辑

1楼展示成果,待编辑  成功了

主要是焊接没焊接好,焊接还是得练习

初步已经成功   下一步添加上网络对时。因为这个降龙棍没有3.3v,买的配件没到,这里先用电脑接出来的3.3v  测试吧。。


微信图片_20240517135534.jpg



添加上网络授时:已经实现  网络授时

截图202405171724426810.jpg



回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-07 07:20:07

61

主题

818

回帖

1514

积分

金牌会员

积分
1514
发表于 2024-5-17 08:12:23 | 显示全部楼层
本帖最后由 zhange 于 2024-5-17 08:23 编辑

第一步:数码管买了好久了,还没搞清楚管脚


客服给发的测试了一下不对,还得自己测试,已知:这确实是共阳的数码管

测试步骤:

1.找到5v或3.3v电源  用杜邦线接出来 正极串上500欧姆电阻

2.正极接12管脚负极接1管脚以此接2.3.4.5.6.7.8.9.10.11  看看亮不亮  如果亮说明12是位码  亮的哪里就是哪个位的

3.测试完管脚如图:

微信图片_20240517081158.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-07 07:20:07

61

主题

818

回帖

1514

积分

金牌会员

积分
1514
发表于 2024-5-17 08:23:23 | 显示全部楼层
第二步:焊上接线柱 开搞。。


微信图片_20240517082307.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-07 07:20:07

61

主题

818

回帖

1514

积分

金牌会员

积分
1514
发表于 2024-5-17 08:28:24 | 显示全部楼层
第三步:接线测试焊接成果。。


我去我焊洛铁都关了,3脚没焊到一块。。。。。。。。

开开再来。。。。。。。。

焊完肉眼检查一下吧。。。



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-07 07:20:07

61

主题

818

回帖

1514

积分

金牌会员

积分
1514
发表于 2024-5-17 08:52:59 | 显示全部楼层
第四步:写程序。。。


先测试,先不上时间。。

  1. #include "stc32g.h"
  2. #include "intrins.h"
  3. #define  wei1 P34
  4. #define  wei2 P35
  5. #define  wei3 P36
  6. #define  wei4 P37
  7. #define  duan P2
  8. void main()
  9. {
  10.        
  11.           WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  12.     EAXFR = 1; //扩展寄存器(XFR)访问使能
  13.     CKCON = 0; //提高访问XRAM速度
  14.           P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
  15.     P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  16.     P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  17.     P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  18.     P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  19.     P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
  20.     P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
  21.     P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
  22.        
  23.         while(1)
  24.         {
  25.                 duan = 0;
  26.         }
  27. }
复制代码



测试通过。

微信图片_20240517085239.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-07 07:20:07

61

主题

818

回帖

1514

积分

金牌会员

积分
1514
发表于 2024-5-17 09:19:19 | 显示全部楼层
第五步:写时间


用定时器0中断产生时间

  1. //#include "shumaguan.h"
  2. #include "stc32g.h"
  3. #include "intrins.h"
  4. #define  wei1 P34
  5. #define  wei2 P35
  6. #define  wei3 P36
  7. #define  wei4 P37
  8. #define  duan P2
  9. unsigned char i,s,f,m,d;
  10. unsigned char duanma[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
  11. void Timer0_Init(void)                //50毫秒@11.0592MHz
  12. {
  13.         AUXR &= 0x7F;                        //定时器时钟12T模式
  14.         TMOD &= 0xF0;                        //设置定时器模式
  15.         TL0 = 0x00;                                //设置定时初始值
  16.         TH0 = 0x4C;                                //设置定时初始值
  17.         TF0 = 0;                                //清除TF0标志
  18.         TR0 = 1;                                //定时器0开始计时
  19.         ET0 = 1;                                //使能定时器0中断
  20. }
  21. void Delay1000ms(void)        //@11.0592MHz
  22. {
  23.         unsigned long edata i;
  24.         _nop_();
  25.         _nop_();
  26.         i = 2764798UL;
  27.         while (i) i--;
  28. }
  29. void main()
  30. {
  31.        
  32.           WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  33.     EAXFR = 1; //扩展寄存器(XFR)访问使能
  34.     CKCON = 0; //提高访问XRAM速度
  35.           P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
  36.     P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  37.     P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  38.     P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  39.     P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  40.     P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
  41.     P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
  42.     P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
  43.                 P3M0 = 0xf0; P3M1 = 0x00;   //p34 p35 36 37 设为推完
  44.        
  45.                 EA = 1;                                        //CPU开放中断,打开总中断。
  46.        
  47.         while(1)
  48.         {
  49.                 for(d=0;d<10;d++)
  50.                 {
  51.                        
  52.                         duan = duanma[d];
  53.                         Delay1000ms();
  54.                 }
  55.                
  56.         }
  57. }
  58. void Timer0_Isr(void) interrupt 1
  59. {
  60.         i++;
  61.         if(i==20)
  62.         {
  63.                 m++;
  64.                 i=0;
  65.                 if(m==60)
  66.                 {
  67.                         f++;
  68.                         m=0;
  69.                         if(f==60)
  70.                         {
  71.                                 s++;
  72.                                 f=0;
  73.                                 if(s==24)
  74.                                 {
  75.                                         s=0;
  76.                                 }
  77.                         }
  78.                 }
  79.         }
  80.        
  81. }
复制代码



下载测试。出问题,带不动??????????显示的数码管多了  第一位不显示。。。。。。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-07 07:20:07

61

主题

818

回帖

1514

积分

金牌会员

积分
1514
发表于 2024-5-17 09:38:35 | 显示全部楼层
不是带不动,是焊接有链接到一块的地方。11脚和12脚连到一块了。。。。。。。。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-07 07:20:07

61

主题

818

回帖

1514

积分

金牌会员

积分
1514
发表于 2024-5-17 10:19:20 | 显示全部楼层
本帖最后由 zhange 于 2024-5-17 10:23 编辑

第六部:扫面显示数码管

奶奶的  焊接的不行    ,重新焊接个   不接板子了  直接上线?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-05-07 21:13:10

0

主题

336

回帖

1510

积分

金牌会员

积分
1510
发表于 2024-5-17 12:36:25 | 显示全部楼层
你这焊功还得练啊,这种直插件是很好焊的啊
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-07 07:20:07

61

主题

818

回帖

1514

积分

金牌会员

积分
1514
发表于 2024-5-17 13:56:50 | 显示全部楼层
第六步:又重新焊接了   成功了


微信图片_20240517135534.jpg


  1. //#include "shumaguan.h"
  2. #include "stc32g.h"
  3. #include "intrins.h"
  4. #define  wei1 P34
  5. #define  wei2 P35
  6. #define  wei3 P36
  7. #define  wei4 P37
  8. #define  duan P2
  9. int i;
  10. unsigned char s,f,m,d;
  11. unsigned char sg,ss,fg,fs;
  12. unsigned char duanma[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};//不带小数点
  13. unsigned char duanma1[10] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,};//带小数点
  14. void Timer0_Init(void)                //1000微秒@11.0592MHz
  15. {
  16.         AUXR |= 0x80;                        //定时器时钟1T模式
  17.         TMOD &= 0xF0;                        //设置定时器模式
  18.         TL0 = 0xCD;                                //设置定时初始值
  19.         TH0 = 0xD4;                                //设置定时初始值
  20.         TF0 = 0;                                //清除TF0标志
  21.         TR0 = 1;                                //定时器0开始计时
  22.         ET0 = 1;                                //使能定时器0中断
  23. }
  24. void Delay1000ms(void)        //@11.0592MHz
  25. {
  26.         unsigned long edata i;
  27.         _nop_();
  28.         _nop_();
  29.         i = 2764798UL;
  30.         while (i) i--;
  31. }
  32. void Delay1ms(void)        //@11.0592MHz
  33. {
  34.         unsigned long edata i;
  35.         _nop_();
  36.         _nop_();
  37.         i = 2763UL;
  38.         while (i) i--;
  39. }
  40. void Delay3ms(void)        //@11.0592MHz
  41. {
  42.         unsigned long edata i;
  43.         _nop_();
  44.         i = 8293UL;
  45.         while (i) i--;
  46. }
  47. void Delay2us(void)        //@11.0592MHz
  48. {
  49.         unsigned long edata i;
  50.         _nop_();
  51.         i = 4UL;
  52.         while (i) i--;
  53. }
  54. // 延时函数
  55. void delay(unsigned char z)
  56. {
  57.     unsigned char x,y;
  58.     for(x=z;x>0;x--)
  59.         for(y=110;y>0;y--);
  60. }
  61. void main()
  62. {
  63.        
  64.          WTST = 0;  //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
  65.    EAXFR = 1; //扩展寄存器(XFR)访问使能
  66.    CKCON = 0; //提高访问XRAM速度
  67.         P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
  68.   P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  69.   P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  70.   P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  71.   P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  72.   P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
  73.   P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
  74.   P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
  75.         P3M0 = 0xf0; P3M1 = 0x00;   //p34 p35 36 37 设为推完
  76.         wei1 = 0;
  77.         wei2 = 0;
  78.         wei3 = 0;
  79.         wei4 = 0;
  80.         Timer0_Init();
  81.         EA = 1;                                        //CPU开放中断,打开总中断。
  82.         s = 13;
  83.         f = 51;
  84.         while(1)
  85.         {
  86.                 wei1 = 1;
  87.     P2 = duanma[s/10];  // 显示对应的数字或字符,这里假设每个数码管显示的是其索引值
  88.                 Delay3ms();
  89.                 wei1 = 0;
  90.                
  91.                
  92.                 if(i<=500)
  93.                 {
  94.                         wei2 = 1;
  95.                         P2 = duanma[s%10];  // 显示对应的数字或字符,这里假设每个数码管显示的是其索引值
  96.                         Delay3ms();
  97.                         wei2 = 0;                               
  98.                 }else if(i>500 &&i<1000)
  99.                 {
  100.                         wei2 = 1;
  101.                         P2 = duanma1[s%10];  // 显示对应的数字或字符,这里假设每个数码管显示的是其索引值
  102.                         Delay3ms();
  103.                         wei2 = 0;       
  104.                 }
  105.                
  106.        
  107.                
  108.                 wei3 = 1;
  109.     P2 = duanma[f/10];  // 显示对应的数字或字符,这里假设每个数码管显示的是其索引值
  110.                 Delay3ms();
  111.                 wei3 = 0;
  112.                 wei4 = 1;
  113.     P2 = duanma[f%10];  // 显示对应的数字或字符,这里假设每个数码管显示的是其索引值
  114.                 Delay3ms();
  115.                 wei4 = 0;               
  116. //                wei1 = 1;
  117. //                wei2 = 0;
  118. //                wei3 = 0;
  119. //                wei4 = 0;
  120. //                P2 = duanma[0];       
  121. //                Delay2us();
  122. //                wei1 = 0;
  123. //                wei2 = 1;
  124. //                wei3 = 0;
  125. //                wei4 = 0;
  126. //                P2 = duanma[1];       
  127. //               
  128. //                Delay2us();
  129. //                wei1 = 0;
  130. //                wei2 = 0;
  131. //                wei3 = 1;
  132. //                wei4 = 0;
  133. //                if(i<=10)
  134. //                {
  135. //                        P2 = duanma[f/10];
  136. //                }else
  137. //                {
  138. //                        P2 = duanma1[f/10];
  139. //                }
  140. //               
  141. //                Delay2us();
  142. //                wei1 = 0;
  143. //                wei2 = 0;
  144. //                wei3 = 0;
  145. //                wei4 = 1;
  146. //                P2 = duanma[f%10];
  147. //                Delay2us();
  148. //               
  149. //                P2 = 0xff;
  150. //                Delay2us();
  151.         }
  152. }
  153. void Timer0_Isr(void) interrupt 1
  154. {
  155.         i++;
  156.         if(i==1000)
  157.         {
  158.                 m++;
  159.                 i=0;
  160.                 if(m==60)
  161.                 {
  162.                         f++;
  163.                         m=0;
  164.                         if(f==60)
  165.                         {
  166.                                 s++;
  167.                                 f=0;
  168.                                 if(s==24)
  169.                                 {
  170.                                         s=0;
  171.                                 }
  172.                         }
  173.                 }
  174.         }
  175.        
  176. }
复制代码



代码简单
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-8 02:11 , Processed in 0.205071 second(s), 104 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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