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)<
下面是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_();
转载至严泽远的博客
IV-18(前苏联ИВ-18)荧光管电子钟【Energy Pillar.能量柱】相关推荐
- OD使用教程18 - 调试篇18
OD使用教程18 - 调试篇18 让编程改变世界 Change the world by program 十八,是一个神奇的数字. 每每提起,总让人心旷神怡. 例如十八精神,例如十八岁的天空,例如 ...
- 阅读一定时间后获得实现逻辑_大家都在好奇,18天读18本书的60分钟高效阅读,怎么这么火...
昨晚激动人心的开营仪式,围绕18天训练营要学什么,做什么才能完成人生目标,走出改变人生的重要一步,镜姐为我们解决了三个问题: 一.作业完不成怎么办? 我们的作业有3个部分: 1.18天18本书建立18 ...
- ChemOffice Suite 2018 18.1.2.18
文章目录 1. 介绍 1.1. 主要功能 1.2. 应用领域 1.3. 优势特征 1.4. 官网 2. 安装步骤 3. 激活说明 4. 使用说明 5. 下载地址 1. 介绍 ChemDraw作为一款强 ...
- 《树莓派实战秘籍》——1.18 技巧18在移动中给Pi供电
本节书摘来异步社区<树莓派实战秘籍>一书中的第1章,第1.18节,作者:[美]Ruth Suehle ,Tom Callaway,更多章节内容可以访问云栖社区"异步社区" ...
- HTML 18 HTML5 特性 18.10 HTML5 无障碍
HTML 文章目录 HTML 18 HTML5 特性 18.10 HTML5 无障碍 18.10.1 什么是无障碍 What is accessibility? 18.10.2 HTML: 为无障碍提 ...
- HTML 18 HTML5 特性 18.2 HTML5 浏览器支持
HTML 文章目录 HTML 18 HTML5 特性 18.2 HTML5 浏览器支持 18.2.1 HTML5 浏览器支持 18.2.2 把 HTML5 元素定义为块级元素 18.2.3 向 HTM ...
- 前苏联IV-18荧光数码管时钟开发(ИВ-18)
开发历程 1. 前言 2. 电路设计 2.1 主控部分 2.2 电源部分 2.3 外设部分 2.4 显示部分 2.5 PCB设计 2.5.1 封装制作 2.5.2 电路绘制 2.5.3 投板+采购 2 ...
- 18级计算机应用基础期中考试题,早安正能量 励志新开始---法学与社会学学院18级新生开展早自习活动...
为响应学校"三度"建设精神,法学与社会学学院从第十周起开设早自习课程.2018级学生大学军事理论课程.专业入门指导课程.计算机应用基础课程.大学写作课程,于第八周正式结束.整体上, ...
- React-18(组件化开发) -- 插槽 Context的应用场景 setState(18之前与18的对比)
React React中的插槽(slot) React对于需要插槽的情况非常灵活,有两种方案可以实现: 组件的children子元素: props属性传递React元素 children实现插槽 每个 ...
- 我的创作纪念日(2021.7.18 - 2022.7.18)
机缘 2022 年 7 月 18 日是我的创作一周年纪念日.一年前的今天,大三年级的我还是一名 IT 小白,也并没有考研的想法,谨防自己在毕业后没有一门拿得出手的专业技术,我开始了前端的学习,偶尔一次 ...
最新文章
- 2016年9月c语言真题,2016年9月计算机二级C语言基础试题及答案
- 我作为一个程序员,除了写程序还会干什么?什么都不会了!
- AVIO内存输入模式
- Java并发编程实战_阿里P9整理分享的亿级流量Java高并发与网络编程实战PDF
- MFC鼠标OnMouseHover使用
- CentOs6.5 更新python2.7,以及tab自动补全
- Spring Boot + JPA + Oracle 自增长字段实现示例
- ITU-T Technical Paper: 测量QoS的基本网络模型
- CCF CSP 201604-1 折点计数
- EMOS批量创建用户邮箱
- 企业数据采集的10个经典方法
- 怎样解决“在禁用UAC时,无法激活此应用”问题
- Wireguard 全互联模式(full mesh)权威指南
- linux 前台和后台,Linux前台进程与后台进程的区别
- Latex去掉proof后面显示的小白框 (\qed)
- 根据string查询是否是当月_发票勾选、查询、认证等25问!简直太全了!打印出来贴在桌子上学习!...
- 原生js预览ofd文件,JavaScript
- com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException UNAVAILABLE io exception
- python七段数码管绘制实验报告_Python绘制七段数码管实例代码
- 面试:Jetpack相关
热门文章
- UltraISO制作U盘系统盘安装CentOS经验分享
- HDU 4791 Alice's Print Service
- linux安装键盘鼠标失灵,在archlinux安装界面这卡住了,鼠标键盘失灵
- 提高DevExpress winform 控件加载速度
- 【安全攻防知识-4】CTF之MISC
- 《电子元器件的可靠性》——第3章可靠性试验
- verilog 四舍五入_IEEE 754 round-to-nearest-even Verilog代码
- css 取偶数节点_CSS选择器:奇偶匹配nth-child(even)
- 英特尔 back,全新架构 coming
- ThreeJs DRACO压缩并加载gltf模型