单片595控制显示多位数码管

    技术2022-07-10  113

    本文所讨论的是在proteus下仿真的,利用arduino及595控制的多位数码管的显示。 一、电路连接 如下图所示,提供了三种常见的数码管显示。 从前面的显示二位数码管的例子中我们已经熟悉了,多位数码管无非就是多了几层循环用来将高位的数字代码重复从595中shiftout出去到数码管的管脚。

    二、参考代码 外层可以根据需要设置6层循环,或者索性如下面的代码,给你一个固定的显示数字的数字即可,比如下面代码中的disNum[].

    for(int k=0;k<speed;k++) { for(int bitSelect=8;bitSelect<14;bitSelect++) { digitalWrite(bitSelect,1); digitalWrite(latchPin,HIGH); switch(bitSelect) { case 8: shiftOut(dataPin,clockPin,LSBFIRST,cseg[disNum[5]]); break; case 9: shiftOut(dataPin,clockPin,LSBFIRST,cseg[disNum[4]]); break; case 10: shiftOut(dataPin,clockPin,LSBFIRST,cseg[disNum[3]]); break; case 11: shiftOut(dataPin,clockPin,LSBFIRST,cseg[disNum[2]]); break; case 12: shiftOut(dataPin,clockPin,LSBFIRST,cseg[disNum[1]]); break; case 13: shiftOut(dataPin,clockPin,LSBFIRST,cseg[disNum[0]]); break; default: shiftOut(dataPin,clockPin,LSBFIRST,cseg[0]); break; } digitalWrite(latchPin,LOW); digitalWrite(bitSelect,0); delay(1); } }

    cseg[]是数码管的编码数组,可以参考前面博文中的共阴极的数码管代码数组。

    Processed: 0.011, SQL: 9