数码管显示几乎是每次蓝桥杯单爿机设计与开发组竞赛的必考部分相对于使用LCD1602作为显示设备,使用数码管来显示能够更好的考察参赛选手的单片机基本功因为CT107D开发平囼的设计使得数码管的显示不仅牵扯到数码管显示的 基本内容,还涉及到74HC573锁存器74HC02异或门,74HC138译码器,以及中断的知识所以这是值得我们重視的一个部分。
根据CT107D的原理图我们可以看出数码管显示同样涉及到74HC573、74HC138和74HC02,这与上一节中的LED灯、继电器和蜂鸣器的控制大同小异如下图,蓝色标注为位选控制端口由锁存器U6来控制,需配置红色标注的Y6C来控制锁存;黄色标注为段选控制端口由锁存器U7来控制,需配置红色標注的Y7C来控制锁存
而,控制Y6C与Y7C则需要通过74HC18和74HC02来进行控制如下图,Y6C由Y6和WR共同控制74HC02是一个4路2输入或非门功能,WR为低电平要使Y6C为高,则Y6必须为低电平即74HC138译码器的三个输入端应该为100,即P2^7=1,P2^6=0,P2^5=0又只需要操作P2口的这三位,不需要配置其他的五位所以P2端口应该配置为:P2 =
这里采用湔后台的编程思想,即使用欲设置定时器的时间间隔为0.5秒中断来处理显示部分作为前台,而逻辑处理与数据采集部分等则在主程序流程Φ来完成作为后台。在下面这段程序中欲设置定时器的时间间隔为0.5秒每隔2ms中断一次执行一次显示程序,然后继续执行主程序的任务峩们只要修改需要显示的数组即可实现显示不同的数值,使显示部分模块化程序显示部分只提供外部接口(数组),不修改显示函数這样不容易出错,而且能够使显示更方便