IV-18(前苏联ИВ-18)荧光管电子钟【Energy Pillar.能量柱】

IV-18(ИВ-18)荧光电子数码管,上世纪80-90年代前苏联的产物,冷战时期曾大量制造并用于军事设备;冷战结束后,同其他海量的战争遗留物一起,被埋于地下,或被封存于冰冷的仓库角落。

第一次见到她是在英国的辉光钟爱好者Konstantin的网站上,国内见到应用这个管子的第一人是荆州老段(YeYuDo),第一次见到实物是在2011年年夏天。

同国产YS-13/18以及前苏联的IV-11等不同的是,她一根管内嵌入了8个7段数字,并且每个数字右下角都有小数点,在管子的左侧,还有一个表示负数的短横线,在短横线上面还有一个较大的圆点符号。

原版俄文说明书:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主要参数如下:
在这里插入图片描述
下面来两张正面和背面的裸照:
在这里插入图片描述
在这里插入图片描述
在背面清晰可见灰黑色的消气剂,以及管子型号和生产年月。

IV-18荧光管共有22根管脚,其中有3根管脚无任何连接,实际使用的有19根管脚,管脚定义见下图:
在这里插入图片描述
在这里插入图片描述

其中三根未使用的管脚进入管子内部以后,没有任何的电气连接,用肉眼即可分辨出来,见下图:
在这里插入图片描述
与一般的电子管一样,IV-18荧光管内部是真空,所以也有一个抽气口,但是她的抽气口做过处理,没有锋利的尖尖,而是平头,这样不容易被碰碎导致漏气,请见下图:
在这里插入图片描述
IV-18荧光管内部有两条灯丝,两条灯丝并联,贯穿于头尾之间。

灯丝很细,每根灯丝由顶部的一个很细的拉力弹簧来牵引,平行穿越每一个数字面前。

IV-18荧光管最独特的地方在于她的基板,与IV-11/22不同,IV-18的基板是一片透明的玻璃板,用于显示数字比划的每一段,以及连接每一个段的线路,均紧贴在玻璃板上;而每一个数字的栅网非常细腻,嵌在玻璃基板板两侧,浮于数字前端,通过玻璃基板被面的连接线连接到每一个管脚。

我们由此可以看出,整个荧光管的电气特性有点类似于我们当今所使用的LED数码管模块,必须采用动态扫描方式来驱动,因为她的每一个段都是连接在一起的,通过依次给每一个数字位的栅极通电来选择当前显示的位,然后给7段数字线条通电,来显示一个数字,依次快速动态刷新,来完成8个数字的显示。

具体的细节图请见照片:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

电路设计方面并不复杂,几乎没有什么技术含量,都是非常简单的典型应用。且本人没有催毛求疵的心态,只求整个电路运行稳定可靠,PCB布局合理,器件尽量的少;整个电路由升压电路、MCU主控、RTC模块、VFD驱动、外围及接口器件这几部分组成。

升压电路部分使用的还是廉价并经典的MC34063做高压升压,外扩了MOS管IRLR024,升压效率大幅提高,而且MC34063、电感、MOS管一点也感觉不到温度;IV-18的推荐工作电压为45v-70v,经过测试发现工作在49v的时候效果最佳。

下面是升压部分的电路原理图:
在这里插入图片描述
RTC模块依旧采用了内置温补晶振的DS3231SN高精度时钟芯片,配置CR1220锂电池,能确保断电3年内开机不用重新对时;

DS3231SN就不多介绍了,400k高速IIC接口,在0℃至40℃的工作温度范围内能提供±2ppm的输出精度;

有些朋友总是抨击DS3231SN,说它贵的不值,自己用DS1302都可以做到一年误差几秒钟云云,个人在这里不做评论,只是想说:

同样的RTC芯片,不同的外围电路,工作的状态截然不同;

同样的RTC芯片,同样的外围电路,不同的PCB布线,工作状态截然不同;

同样的RTC芯片,同样的外围电路,同样的PCB布线,不同的工作环境,工作状态截然不同;
在这里插入图片描述
本次选用的荧光管驱动芯片选用的是美信的VFD专用驱动芯片MAX6921,它有20个输出端口,恰好满足IV-18荧光管的需求,段和位选输出电压能够高达76V,外围只需几颗电容,无任何其他器件,并且仅需4根通讯线连接MCU进行串口通讯控制。

应用电路见下图:
在这里插入图片描述
主控选用的依旧是STC12C5628AD,LQFP32封装,体积比较小,而且内置EEPROM,可以用于存储所有的菜单设置。

DS3231SN的读写程序实在是太经典不过了,把它封装成程序模块,每次在其他项目中直接定义扩展函数就可以了,在这里贴出来源码,使用STC芯片的朋友改一下I/O定义即可。

下面是DS3231.c文件的源码:

/****************************************Copyright (c)**************************************************
**				
**	项目名称:			IV-18 VFD Clock
**	文件名称:			DS3231.c
**	模块功能:			实现DS3231SN的全功能控制
**
**------------------------------------------------------------------------------------------------------
**
** 	创 建 者:			严泽远
**	E-mail  :			yanzeyuan@163.com
**	QQ		:			6626209
**	Mobile	:			18602007878
**	创建时间:			2011-02-02
**	版    本:			v1.0.0
**	描    述:			基础程序
**
********************************************************************************************************/
 
#include				//加载STC12C5620AD.H头文件
#include						//加载Define.H头文件
#include//加载DS3231Variable.H头文件
 
/********************************************************************************************************
** 	全局常数定义
********************************************************************************************************/
bit	ack;							//应答标志位
 
/********************************************************************************************************
** 	函数名称:			BCD2HEX(uchar val)
**	功能描述:			BCD转HEX
**	入口参数:			val:BCD码
**	创 建 者:			严泽远
**	创建时间:			2011-01-25 20:33
**	版    本:			v1.0.0
********************************************************************************************************/
uchar	BCD2HEX(uchar val)
{
	return	((val>>4)*10)+(val&0x0f);
}
 
/********************************************************************************************************
** 	函数名称:			HEX2BCD(uchar val)
**	功能描述:			HEX转BCD
**	入口参数:			val:HAX码
**	创 建 者:			严泽远
**	创建时间:			2011-01-25 20:34
**	版    本:			v1.0.0
********************************************************************************************************/
uchar	HEX2BCD(uchar val)
{
	return	(((val%100)/10)&lt

下面是DS3231Variable.h文件的源码:

/****************************************Copyright (c)**************************************************
**				
**	项目名称:			YS18-3 Clock
**	文件名称:			DS3231Variable.h
**	模块功能:			全局变量定义
**
**------------------------------------------------------------------------------------------------------
 
** 	创 建 者:			严泽远
**	E-mail  :			yanzeyuan@163.com
**	QQ		:			6626209
**	Mobile	:			18602007878
**	创建时间:			2011-02-02
**	版    本:			v1.0.0
**	描    述:			基础程序
**
********************************************************************************************************/
 
/********************************************************************************************************
**  I/O接口定义
********************************************************************************************************/
sbit	SCL			=	P2^7;		//DS3231数据接口
sbit	SDA			=	P2^6;		//DS3231数据接口
 
/********************************************************************************************************
** 	DS3231常数定义
********************************************************************************************************/
#define DS3231_WriteAddress 0xD0    //器件写地址 
#define DS3231_ReadAddress  0xD1    //器件读地址
 
#define DS3231_SECOND       0x00    //秒
#define DS3231_MINUTE       0x01    //分
#define DS3231_HOUR         0x02    //时
#define DS3231_WEEK         0x03    //星期
#define DS3231_DAY          0x04    //日
#define DS3231_MONTH        0x05    //月
#define DS3231_YEAR         0x06    //年
//闹铃1            
#define DS3231_ALARM1SECOND 0x07    //秒
#define DS3231_ALARM1MINUTE 0x08    //分
#define DS3231_ALARM1HOUR   0x09    //时
#define DS3231_ALARM1WEEK   0x0A    //星期/日
//闹铃2
#define DS3231_ALARM2MINUTE 0x0b    //分
#define DS3231_ALARM2HOUR   0x0c    //时
#define DS3231_ALARM2WEEK   0x0d    //星期/日
 
#define DS3231_CONTROL      0x0e    //控制寄存器
#define DS3231_STATUS       0x0f    //状态寄存器
#define BSY                 2       //忙
#define OSF                 7       //振荡器停止标志
#define DS3231_XTAL         0x10    //晶体老化寄存器
#define DS3231_TEMPERATUREH 0x11    //温度寄存器高字节(8位)
#define DS3231_TEMPERATUREL 0x12    //温度寄存器低字节(高2位)

MAX6921的通讯过程与大多数串行数据通讯时序一致,仅需DIN, CLK LOAD三个通讯接口,下面是时序图:
在这里插入图片描述
MAX6921一共有20个输出端口,所以串行数据共20bit,即D0-D19,不过在这次的应用中,只需要控制IV-18荧光管的9个栅极和8个阳极,所以一共只需要17个bit数据即可。

根据原理图可以看出,17个bit对应的D9-D16共8bit为动态扫描某一时刻的8个阳极状态,D0-D8共9bit为动态扫描某一时刻的栅极状态,所以仅需要在一个定时器中断里不停的与MAX6921通讯,进行动态扫描即可。

在这里选用了STC12C5628AD的定时器0中断,并将定时器溢出时间配置为10us,共使用8个栅极(未使用IV-18荧光管最左边的符号位),8次扫描为一个周期,每次将相应的栅极和阳极数据传送至MAX6921即可,代码很简单:

i=17;					
for(;i>0;i--)
{
	DIN = Tmp&0x0001;	_nop_();
	CLK = 1;			_nop_();
	CLK = 0;			_nop_();
	Tmp>>=1;
}		
LOAD	=	1;	_nop_();
LOAD	=	0;	_nop_();

转载至严泽远的博客

YS18-3的荧光管电子时钟曾是饱含了我所有期待的完美的荧光管电子时钟,它的功能比较完备,也受到了很多DIYer的关注与支持。应很多朋友的要求,今天我将所有源代码(包括完整的Keil工程)全部无偿放送,希望能与大家一同交流软件方面的技术与心得。(有不懂得,详见附件内容制作步骤) MCU采用STC12C5628AD,其实20AD就足够用了; 代码全部采用C语言编写; EEWORLD坛的YS18-3的完整制作帖在这里(多图、有视频) 源代码非常完整,包括我做的所有注释,而且全部是模块化,里面包括如下常用模块,非常经典,也久经考验,很稳定,大家需要的话移植很方便: 1、红外线遥控器解码模块; 2、DS3231完整的通讯及操作模块(包括时间日期读取、设定,闹钟读取、设定); 3、74HC595完整的通讯函数; 4、RGB LED全彩控制IC(LPD6803)的完整通讯程序; 5、三种荧光管数字呼吸切换效果的完整实现程序; 6、DS18B20温度传感器完整的读取温度函数; 7、公历与农历的换算完整函数代码; 8、STC内部EEPROM完整的存储及读取函数代码; 硬件原理图也包含很多完整的模块,也都是很成熟的应用,需要的朋友可以直接移植到你们的系统中即可: 1、MC34063 DC-DC升压电路; 2、LM317线性稳压电路; 3、STC12C5628AD典型完整系统应用电路; 4、DS3231完整应用电路; 5、LPD6803完整应用电路; 6、H0038B红外线接收头应用电路; 7、DS18B20应用电路; 8、74HC595级联完整应用电路; 类似更精彩的项目设计: 全彩LED灯时钟设计,蓝牙控制(硬件+APP+硬件驱动+BOM等) 链接:https://www.cirmall.com/circuit/2081/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值