我是如何用三个月的时间学会51单片机和PCB制板软件,最终做出“产品级”时钟电路板的
前段时间,手术室控制面板里的时钟坏了,时间静止,按按键调节也没有反应。下图左上角的一个(北京时间)
拆出里面的电路板如下图
简述一下电路板元件:图中TPIC6B595N和TD62783APG两个芯片配合起来驱动大尺寸数码管,TPIC6B595N有锁存数据功能。51内核单片机采用动态扫描数码管方式显示时间。
根据故障现象分析如下:
1. 单片机有程序跑飞或死机的可能。单片机出问题,按按键也会没反应,数码管显示数字也会静止。
2. 数码管显示时间静止,可能是驱动数码管显示芯片损坏所致。并且按按键数码管没反应这个现象可以佐证数码管驱动芯片损坏的推论。首先,我检查了给各个芯片、元件供电的电压,没有发现异常,芯片Vcc引脚上的电压也正常。简单测量了一下板子上的元件,没有发现问题。我开始怀疑晶振有问题,更换单片机和时钟芯片的晶振后,故障依然存在,顺带换掉负载电容,还是没有效果。接下来只能更换驱动数码管显示的芯片了。在淘宝上淘了TPIC6B595N和TD62783APG两种芯片,更换上去后还是不行。这时我感觉整个人都不好了,估计是单片机程序有问题。只能找厂家买个新的板子了。
持续更新中,,,,
厂家报价2000大洋,和厂家沟通了半天,他们也不肯优惠,真是狮子大开口啊!正巧我的同事提出我们自己做个时钟电路板的想法,我们商量了一下,他“拉”着我去和BOSS申请了一下,BOSS“竟然”同意了!上面加双引号是因为我根本就没学过如何画PCB板,那时候我还认为这个东西非常高深,不是一般的人能玩的转的。而且我平时做的小东西都是用MSP430F149这款单片机,个人感觉这款单片机不适合用来做大尺寸时钟。另外我同事在大学时接触过51单片机,但是工作几年他也把单片机忘的差不多了。
其实我们主要的目的是正好利用这个机会学点东西,自己不逼自己一把,你永远不知道自己有多优秀!基于很多方面考虑,我半年前就想着学学51单片机,虽然有很多搞单片机的大牛吐槽51单片机,但我感觉它还是有很多不错的地方。另外,我也一直梦想能自己画一块电路板!能自己画电路板是件多么牛掰的事!
说干就干!
在淘宝上买了块STC89C51的学习板,开始自学51单片机。
因为学过MSP430类型的单片机,有了点基础,所以51还是很好上手的。接下来,我先动手焊接了大尺寸数码管显示部分(下图)和其它外围芯片
接下来就是漫长而痛苦的编程、调试。
以前自己做些小东西玩时,对自己的要求不高,只要能实现功能就行,中间出些小问题也没过多关注。比如说,数码管显示经常会遇到这种情况:程序功能比较简单时,数码管亮度正常,但随着程序功能的叠加,数码管亮度会变暗,有时不该亮的数码管段也会微微发亮。有按键功能的程序,按按键时,数码管会闪等等。
因为我做出来的这个时钟电路板要给手术室使用,所以绝对不能让出现上面的状况,我一直怀着“做产品”的心态来设计时钟电路板,既然是产品,那么它的基本功能和稳定性,特别是稳定性是我必须要保证的!
还有一点要补充一下,就是硬件电路设计,这个也是很耗时间的。因为我用的是四个1.8寸和两个1.2寸的大尺寸数码管,所以必须加驱动芯片来驱动数码管,这也就是我为什么会设计两款时钟电路板,下面会提到的。
在调试程序的过程中,我也同时在自学PCB画板软件Altium Designer 6,感谢同事分享的资料
经过三个多月的折腾,终于调好了程序,画好了电路
电路原理图
PCB板图
在万能的淘宝上找到商家帮我生产PCB板,忐忑地等待了一个多星期,做好的板子终于拿到手了,包装的还挺严实
拿到板子后,我迫不及待地焊接了一块,成品如下(来自我的淘宝店的截图)正面图
反面图
通电测试图
测试了几天,运行正常!心中特别高兴。
但是,这款板子有个缺点——亮度不够高。数码管前面没有任何遮盖的话,亮度正常,但是手术室里是这样的,数码管前面有黑色塑料遮挡,数码管被遮挡后,亮度明显不够。
紧接着我又重新设计硬件电路和程序,做了一款新的时钟电路板。很幸运,这次也是一次成功。
正面图和原来的差不多,这里我就不贴图了,反面图如下
感谢小编分享(分享的方式略有点怪...),小编好像漏掉了些内容:
感谢提醒
新款时钟电路板安装到手术室里使用已经有将近四个月了,至今依然稳定运行,中间没有出现过问题。
新款板子比上面的那款复杂,功能也有增加。主要功能如下
1. 除了可显示时间,还可显示温度、湿度;
2. 板子自带三个调节时间的按键(模式键,增加键,减少键),有外接按键接口;
3. 新增蜂鸣器电路,可增加闹铃功能(暂未编写此功能程序);
4. 根据测试,时钟每天会快1-4秒,具体要看负载电容和晶振的匹配情况。
下面写写我的感受:
1. 搞软硬件开发的工程师们真心是不容易,曾经有好多次调程序调到想吐。有一段时间,因为坐的时间太长,导致腰椎疼了很长一段时间。在这里很想说一句:感谢你们!你们辛苦啦!
2. 要想真正地学一些实用的东西,我们最好要有着做一个“产品”的态度,只有这样我们才会更加有动力,才会对自己“苛刻”起来,这个过程中我们才会了解地更深。
3. 大胆去做,行动起来,有些东西没想象中的难。
作为一个电子爱好者菜鸟,上面有说错的地方欢迎大家拍砖
医用,对时间有要求的话,不妨用:
DS3231是低成本、高精度I²C实时时钟(RTC),具有集成的温补晶振(TCXO)和晶体。该器件包含电池输入端,断开主电源时仍可保持精确的计时。集成晶振提高了器件的长期精确度,并减少了生产线的元件数量。DS3231提供商用级和工业级温度范围,采用16引脚300mil的SO封装。
关键特性
- 0°C至+40°C范围内精度为±2ppm
- -40°C至+85°C范围内精度为±3.5ppm
- 为连续计时提供电池备份输入
- 工作温度范围
- 商用级:0°C至+70°C
- 工业级:-40°C至+85°C
- 低功耗
- 实时时钟产生秒、分、时、星期、日期、月和年计时,并提供有效期到2100年的闰年补偿
- 两个日历闹钟
- 可编程方波输出
- 高速(400kHz) I²C接口
- 工作在3.3V
- 数字温度传感器输出:精度为±3°C
- 老化修正寄存器
- /RST输出/按钮复位去抖输入
好的,看起来不错,我回去试试这款芯片感谢分享