说道数码管,学过单片机的同学都知道,而且都会用,也就是说数码管本身没什么技术含量,事实也是如此。
今年初到现在,总共接到3个和数码管有关的项目,有的用在了上千万甚至过亿的生产线上并发挥重要作用,可见这种没有技术含量的小东西作用还是不可忽视的,于是我决定留个纪念,写了这个实用案例。
先说为什么强调是4寸数码管。
初学单片机的时候,大家都接触过数码管,常见的是0.36或者0.56英寸的,这种小尺寸的数码管都是单管芯的,5V或者3.3V都可以直接驱动,而且本身电流也不大,可以和单片机使用同一个电源,但是4寸的数码管,如下图所示(某宝借来的一款共阳型4英寸数码管,带水印),每一个段由8颗灯芯二并四串组合而成,每颗灯芯的工作电压通常是2.2V,这样,每一段的工作电压至少要8.8V,这里就需要选一个合适的电源,常见的电压等级的电源比较容易获得,而且价格便宜,12V电源随手就可以得到,8.8V?恐怕需要定做了。限流电阻比较好算,8管芯的电流号称40ma,为了安全起见,取20ma,(12-8.8)/0.02=160,5%的电阻150R的常规值,小数点是二串,限流电阻算法类似,电阻功率1/4W,因为体积比较大,焊接相对容易一点。
由于使用环境的因素,要求亮度要高一些,所以本设计才用了静态显示,而不是动态扫描显示,单片机是ATMEGA128,没有别的原因,手上有现货,而且要求双串口,就地取材。单片机SPI接口和74hc595连接,不用IO口模拟,软件开发省心很多,因为数码管用的是12V电源,所以74HC595输出不能直接驱动,经过ULN2803驱动数码管。74HC595前面还有一个74hc245,考虑到工业现场环境比较恶劣,用户还需要级联,为了增强抗干扰能力,所有的信号线从排线接入后都经过74HC245再送入595.
然后是5V电源,给单片机等芯片提供工作电压,使用LM2575-5,提供5V1A的电源。
显示模块就这些,接下来是控制卡,控制卡的功能包括显示模块内容刷新,通信和协议解析,实际就是一个单片机和一些232、485芯片,TVS都是双向的,不用去纠结方向,由于是工作环境是室内,所以不考虑雷击因素,3块显示模块的级联,做在了控制卡上,可以支持1行2行和3行显示。
稍后添加部分程序代码。