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

本文所讨论的是在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[]是数码管的编码数组,可以参考前面博文中的共阴极的数码管代码数组。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章