找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8290|回复: 13
收起左侧

IV-11荧光管时钟制作 附单片机源程序+电路图

  [复制链接]
ID:115571 发表于 2019-8-26 22:11 | 显示全部楼层 |阅读模式
  荧光管也是本人在大学时期,偶然的情况下接触到的,当时也是好奇,便对其进行了一些接触,之后便一发而不可收。         说到制作荧光管时钟,是一直想做的事情,在闲暇时候,做了一个荧光管时钟,采用uln2803+74hc595方案。先上张图

效果还不错

效果还不错

设计的时候采用了lm2596芯片提供IV-11荧光管启动需要的1.5V灯丝电压,注意降压电路中的二极管一定要是肖特基二极管!!!(灯丝电流单管可能就能达到100ma,六根荧光管可能就有达到600ma因此lm2596可能会有些温度)升压模块就使用了某宝上就有的升压模块,这种升压模块价格不高就几块钱,而且使用的时候也几乎感觉不到温度,所以当然是选择它了,不然用什么mc3063升压方案,PCB板上看着好像高大上都是电容电阻,好不好用不说,电源转换效率也不是很高。荧光管的阳极驱动当然就没什么好说的了,uln2803达林顿管驱动,这管子耐压能到50V,静态显示的荧光管只需要25V左右就够了,肯定是没有问题的。之后便是画板布线,本人没有什么吹毛求疵的毛病,也只是业余玩玩,因此布线布局等方面没有什么要求,能稳定工作就可以了,当然了也可以用万用板搭,反正电路也不复杂,笔者也曾经用万用板搭过两个iv-11荧光管时钟,一个ys27荧光管时钟一个z570m辉光管时钟,只有逻辑清晰,基本上都可以搭出来,不用纠结要不要打板,打板无非就是偷懒而已。底座的led是使用595驱动的可以实现每个灯亮不同的颜色,当然如果你要调整灯的亮度,请将每个595的OE使能端单独接出来即可,此电路并不能使led调整亮度。程序笔者只写了最简单的驱动程序和最简单的led显示循环,并没有拓展。思来想去还是觉得可以开源,这样会有更多的人修改电路等,让设计变的更加完美。最后,祝诸君都能做出属于自己的荧光管时钟。另若有需要可以上闲鱼搜索荧光管时钟 iv-11资料包.rar (652.59 KB, 下载次数: 122)

5V转1.2V降压电路

5V转1.2V降压电路

全套原理图

全套原理图

PCB图纸(不是什么高手,也没有什么吹毛求疵的毛病,只求稳定工作,因此布线不是很好看见谅)

PCB图纸(不是什么高手,也没有什么吹毛求疵的毛病,只求稳定工作,因此布线不是很好看见谅)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:328014 发表于 2019-8-27 02:38 | 显示全部楼层
好东东啊,楼主的主程序如下:
  1. //******************************************************//
  2. //****************若使用该代码请注明出处****************//
  3. //*******************Designed by HHL ******************//
  4. //*****************************************************//
  5. #include <stc15.h>
  6. #include "ds3231.h"
  7. #include "myiic.h"
  8. #include "delay.h"
  9. //*************************************//
  10. #define FOSC  12000000L               
  11. #define T1MS (65536-FOSC/1000)
  12. #define uchar unsigned char
  13. #define uint unsigned int
  14. //************************************//iv-11显示595
  15. sbit   STCP=P1^4;
  16. sbit   SHCP=P1^5;           //时钟线
  17. sbit   OE  =P1^3;           //锁存线  
  18. sbit   DS  =P1^2;           //数据线
  19. //***********************************//RGB灯显示595
  20. sbit  STCPl=P1^0;
  21. sbit  SHCPl=P1^1;
  22. sbit  OE1=P3^7;
  23. sbit  DSl=P3^6;
  24. //************************************//
  25. uchar code SMG[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92,0x82, 0xf8, 0x80, 0x90};
  26. uchar code RGB[]={0x88,0xcc,0x99,0xaa,0xee,0xdd,0xbb};     //RGB,RG,GB,RG,R,G,B
  27. uint aaa,bbb,kaiqi;
  28. //***********************************//
  29. void HC595(unsigned char DA)//荧光管 595驱动程序
  30. {unsigned char i;
  31.           STCP=0;
  32. for(i=0;i<8;i++)
  33.      {
  34.                 SHCP=0;
  35.           DS=DA&0x01;
  36.           DA>>=1;
  37.           SHCP=1;
  38.      }
  39.           STCP=1;
  40.     delayus(20);
  41.           STCP=0;
  42. }   
  43. //************************************************//
  44. void HC595RGB(unsigned char DA1)//led 595驱动程序
  45. {unsigned char i;
  46.           STCPl=0;
  47. for(i=0;i<8;i++)
  48.      {
  49.                 SHCPl=0;
  50.           DSl=DA1&0x01;
  51.           DA1>>=1;
  52.           SHCPl=1;
  53.      }
  54.           STCPl=1;
  55.     delayus(20);
  56.           STCPl=0;
  57. }  
  58. //***********************************************//
  59. void display(unsigned char a,unsigned char b,unsigned char c,unsigned char d,unsigned char e,unsigned char f)//显示荧光管
  60. {         
  61.                                                         HC595(SMG[a]);//显示第1个74HC595
  62.                                                         HC595(SMG[b]);//显示第2个74HC595
  63.                                                         HC595(SMG[c]);//显示第3个74HC595
  64.                           HC595(SMG[d]);//显示第4个74HC595
  65.                     HC595(SMG[e]);//显示第5个74HC595
  66.                     HC595(SMG[f]);//显示第6个74HC595

  67. }
  68. //************************************************//
  69. void displayRGB(unsigned char a1,unsigned char b1,unsigned char c1)//led彩灯
  70. {         
  71.                                                         HC595RGB(RGB[a1]);//显示第1个74HC595
  72.                                                         HC595RGB(RGB[b1]);//显示第2个74HC595
  73.                                                         HC595RGB(RGB[c1]);//显示第3个74HC595
  74. }
  75. //*********************************************************//
  76. void show ()               //读取时间,并显示
  77. {
  78.         unsigned char Htemp1,Htemp2,Mtemp1,Mtemp2,Stemp1,Stemp2;
  79.         unsigned char shi1,shi2,fen1,fen2,miao1,miao2;
  80.         //*********************************//
  81.     Htemp1=read_random(DS3231_HOUR);    //时 24小时制
  82.     Htemp1&=0x3f;                  
  83.     Htemp2=BCD2HEX(Htemp1);
  84.     Mtemp1=read_random(DS3231_MINUTE);  //分
  85.     Mtemp2=BCD2HEX(Mtemp1);
  86.     Stemp1=read_random(DS3231_SECOND);  //秒
  87.     Stemp2=BCD2HEX(Stemp1);
  88.         //********************************//
  89.                                 shi1=Htemp2/10;
  90.                                 shi2=Htemp2%10;
  91.                                 fen1=Mtemp2/10;
  92.                                 fen2=Mtemp2%10;
  93.                                 miao1=Stemp2/10;
  94.                                 miao2=Stemp2%10;
  95.         //********************************//
  96.        
  97.         display(shi1,shi2,fen1,fen2,miao1,miao2);//显示时间
  98. }
  99. //***************************************************//
  100. //void showRGB()
  101. //{
  102. //          
  103. //       
  104. //                displayRGB(3,3,3);
  105. //                displayRGB(4,4,4);
  106. //                displayRGB(5,5,5);
  107. //                displayRGB(6,6,6);
  108. //                displayRGB(7,7,7);
  109. //}
  110. //**********************************************//
  111. void Timer0Init(void)                //定时器初始化函数
  112. {
  113.         AUXR = 0x80;               
  114.         TMOD &= 0xFc;               
  115.         TL0 = (65536-T1MS);            
  116.         TH0 = (65536-T1MS) >> 8;               
  117.         TR0 = 1;       
  118.         ET0=1;
  119.         EA=1;
  120. }
  121. //*********************************************//
  122. void main(void)
  123. {
  124.         OE=1;             //时钟开启开关 1为关闭,0为打开
  125.         OE1=1;            //led开启开关  1为关闭,0为打开
  126. //         ModifyTime(19,5,6,21,49,30);       //初始化时钟,设定时间
  127. //   修改时间   19年6月21日21时49分30秒  
  128. //   接除屏蔽代码下载至单片机后,断电屏蔽该行代码再重新下载至单片机再上电即可

  129.         Timer0Init();
  130.         while(1);
  131. }
  132. //********************************************//
  133. void shuaxin () interrupt 1       //定时器中断函数
  134. {
  135.         aaa++;
  136.   bbb++;
  137.         kaiqi++;
  138.         if(kaiqi==300)
  139.         {
  140.                 OE=0;
  141.                 OE1=0;
  142.   }
  143.         if(aaa==10)
  144.         {
  145.            show();    //定时器中断刷新显示时间
  146.                 aaa=0;
  147.         }
  148.         if(bbb==200)
  149.         {displayRGB(0,0,0);  //显示led颜色
  150.         }
  151.         if(bbb==400)
  152.         {        displayRGB(1,1,1);
  153.         }
  154.         if(bbb==600)
  155.         {displayRGB(2,2,2);
  156.         }
  157.         if(bbb==800)
  158.         {        displayRGB(3,3,3);
  159.         }
  160.         if(bbb==1000)
  161.         {        displayRGB(4,4,4);
  162.         }
  163.         if(bbb==1200)
  164.         {displayRGB(5,5,5);
  165.         }
  166.         if(bbb==1400)
  167.         {displayRGB(6,6,6);
  168.                 bbb=0;
  169.         }
  170.        
  171.        
  172. }
复制代码
回复

使用道具 举报

ID:612348 发表于 2019-9-24 14:30 来自手机 | 显示全部楼层
感谢小编无私贡献
回复

使用道具 举报

ID:433936 发表于 2019-9-24 18:00 | 显示全部楼层
谢谢!楼主的分享
回复

使用道具 举报

ID:66872 发表于 2019-10-6 23:44 来自手机 | 显示全部楼层
不错,不过我有更好的方案,不用转接板,可以支持荧光数码管插拔
回复

使用道具 举报

ID:9835 发表于 2019-11-8 10:36 | 显示全部楼层
感谢小编无私贡献
回复

使用道具 举报

ID:628452 发表于 2020-1-15 17:07 | 显示全部楼层
大佬可否给一份iv-11管子的封装啊,qaq
回复

使用道具 举报

ID:615610 发表于 2020-6-11 12:25 | 显示全部楼层
感谢楼主无私贡献
回复

使用道具 举报

ID:74784 发表于 2020-11-24 20:32 | 显示全部楼层
595+2803不如直接用573。
回复

使用道具 举报

ID:846386 发表于 2020-11-25 12:01 | 显示全部楼层
这个真漂亮,收下研究
回复

使用道具 举报

ID:866584 发表于 2020-12-23 20:42 | 显示全部楼层
感谢,无私奉献
回复

使用道具 举报

ID:820198 发表于 2021-1-9 10:05 | 显示全部楼层
管子哪里找啊??求个链接
回复

使用道具 举报

ID:20088 发表于 2023-12-22 16:10 | 显示全部楼层
感谢,无私奉献
回复

使用道具 举报

ID:20088 发表于 2023-12-22 16:14 | 显示全部楼层
51hei团团 发表于 2019-8-27 02:38
好东东啊,楼主的主程序如下:

感谢小编无私贡献
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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