【参赛】VFD屏幕显示时钟
本帖最后由 Edward 于 2012-1-5 02:01 编辑版权声明:本文系本人原创,未经允许不得转载或用于商业用途。
事先说明一下,由于PCB的设计、完善完成于这个学期末,打样、焊接、程序编写也是完成于期末,时间仓促。并且现在正处于考试周,在比赛停止接收作品前没有足够的时间来写帖子,所以这个帖子不能像我以的帖子那样详细了。并且程序只是将主要功能完成,还有一些Bug存在,在发帖前已经没有时间修改了。今天也是抽空才写的帖子。
这个作品是使用前一段时间坛友卖的超便宜8位米子VFD做的,通过μPD16311或与之兼容的VFD驱动专用芯片和51单片机搭配DS1302、DHT11温湿度模块、DS18B20来实现时间日期、温度、湿度显示和闹钟等功能。
完整的作品可实现如下功能:
时间、日期的显示;
温度、湿度的测量与显示(自动检测是否焊接了温、湿度模块);
2组闹钟;
二级英文滚动设置菜单;
软件自动校时(需预先知道时钟每周快或慢多少秒);
掉电继续走时;
闹钟、校时数据掉电不丢失(需使用原装DS1302);
多种显示方式(包括固定、滚动等方式);
可显示全部数字、大写英文字母(y除外)和部分标点;
可选Mini-USB接口供电、引线或支座供电;
支持STC89C52单片机和AT89S52单片机;
关键IO口全引出;
可立于桌面之上,与桌面约成60°;
等。
由于制作时间仓促,现在作品不完整,主要存在以下问题:
程序不完整,没有温、湿度检测、测量、显示部分;
程序有几个小Bug,原因尚未查明;
只有2种显示模式,种类少;
在STC单片机下调试通过的程序换用AT单片机时间显示有点问题,原因尚未查明;
下面来说说制作过程。
首先是电路设计,由于电路繁复,并且VFD的脚距是2.0mm,驱动芯片也是贴片的,使用洞洞板会很麻烦,所以直接考虑PCB打样。
VFD的结构、显示、驱动原理我就不再赘述了,具体可参考:
这个VFD是坛友卖的超便宜8位米子VFD,可以显示全部英文字母,没有小数点,但是有冒号,所以很适合作为时钟显示。不过作为自制仪表的显示也不是不可以,每一位都可以显示成一个点,不过可显示数字的位数就少了一位。其他的具体参数也不赘述了,可以看其Datasheet:
使用专用驱动芯片简单、方便同时成本也不高,我用的是常见的NEC公司生产μPD16311和与之相兼容的国产芯片(包括SS6311、PT6311、PS6311、SM6311、SC6311等),该芯片采用SPI串行通信接口,若只写入数据只需3个IO口,并且外围元件少,只需外接一个约56kΩ的振荡电阻。该芯片为QFP-52封装。
6311的Datasheet:
单片机首选自己会用且成本低廉的STC89C52单片机和AT89S52单片机,IO口和性能足够用了。因为要求不高,同时希望编程能方便点,晶振就用的6M的。
时钟就选择的最常见也便宜的DS1302,接口也是SPI,用IIC总线的DS1307也可以。我特意选用了5ppm精度的时钟晶振,以保证走时的准确性。同时因为DS1302的负载电容是6pF,而一般只能买到12pF的晶振,所以要使用外接电容以调整负载电容防止走时误差增大。DS1302本身有31字节可在掉电后通过后备电池供电保持数据的RAM,但是国产的芯片一般掉电后这个RAM中的数据就丢失了,这个要注意。
DHT11
湿度测量就选择价格和精度可以接受的DHT11模块,只用它测湿度,因为它的测温精度太差了。DHT11是单总线通信。测温另外接了一个常用的DS18B20,也是单总线。
DHT11的Datasheet:
单片机、DS1302、DS18B20的Datasheet请自行下载。
下面是最麻烦的VFD驱动电路,由于采用了专用驱动芯片,所以VFD的灯丝必须使用一组独立供电,鉴于PCB空间和成本等的限制,这部分直接采用了淘宝上的DC-DC隔离电源模块B0505-1W,这个模块不便宜,要7块钱一个。驱动VFD还需要一个负高压,大约20-35V,这部分使用MC34063的典型负压电路。VFD灯丝供电还要和这个负压以某种方式相连,以保证阳极、栅极能获得高压,我采用的上述VFD驱动原理文档中直流灯丝供电时的推荐接法。
隔离电源Datasheet:
其他就是周边的比如2个轻触开关、蜂鸣器、旁路电容等等都很简单,一看电路就懂了。上面没有特殊提到电路的元件都是按照典型接法用的。供电处我加了一个反接的5.6V稳压二极管作为接反电源或过压的保护。
为了适应特殊需要,板子供电、灯丝供电、负高压都单独引出,所以可以单独提供。单片机也引出了串口和ISP两种下载方式使用的IO,VFD驱动芯片的数据IO也引出了,所以板子上也可以不安装单片机,只作为一个VFD显示板。
完整电路图:
之后就是画PCB板、打样,也没有什么好说的,就是在板子两侧中下部开孔,安装铜柱,板子就可直立在桌面上了。打样是在阿莫那打的,超便宜。板子设计过2回,第一回有缺陷,第二回基本就是重新画了。
打样到了之后就是焊接和调程序。焊接也没什么可说的,注意先从贴片开始焊,检查无误之后再焊直插。综合考虑了PCB尺寸、成本等方面问题,能用贴片的我基本都用贴片了。
最后就是程序编写和调试。这次又写了个对于我来说很长的程序,有一千多行了,而且温湿度测量显示部分还没写进去。这个是源程序,有些小Bug,不过不影响使用。时间不够,当时也就没写注释,现在也没时间添进去了。
C源程序:
时间仓促,不能写图文混排的帖子了,就集中看下图片吧,图片也没来得及多拍几张。图片顺序基本就是焊接过程。
这个是焊好的成品,没有焊接温、湿度测量部分。
最后来段视频,仓促中拍摄的,大概意思还是能看出来的。因为程序在AT单片机里跑有问题,所以用的STC单片机那个拍摄的。
这套东西本来想做好出套件的,不过期末才设计完,计划就搁浅了。
最后感谢sudo1234等的帮助。
补充内容 (2013-10-24 19:33):
DS1302并不是SPI接口,是一种原理类似于SPI接口的接口。 不错,高手。这个要顶 这个真该顶:lol 自持,期待楼主完善程序,出个套件 CR1220 +级那个 固定用的 片片 是咋安装的?
0805的封装还是觉得偏小,焊接起来不爽;P 回复 5# xiaomu
点焊……
可以用直插代替贴片的。 做的很好,值得拥有。 不错啊,值得学习 这个很好,不错 期待点亮的pp~ 期待点亮的pp~
mymomomg 发表于 2012-1-10 12:26 http://www.crystalradio.cn/bbs/images/common/back.gif
其实最后一张就是点亮的,VFD屏幕拍不好照片啊…… 不仔细看还真看不出来啊还真是点亮的
把灯关掉拍试试 出套件的时候通知学生一下,我也DIY一个玩玩 手头正好有在一乐那里买的这块屏10个,楼主能出PCB吗,或则是共享PCB文件也成 我也想要PCB!能让一点出来吗?