單片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[]是數碼管的編碼數組,可以參考前面博文中的共陰極的數碼管代碼數組。

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