數組基本概念:
1、具有相同的數據類型
2、具有相同的名字
3、在存儲器中的存儲是連續的
注意:區分數組下標和數組元素個數的概念,數組下標可以是常量或變量,數組賦值只能在初始化進行,程序只能進行單個元素賦值。
switch()
{
case 常量表達式1: 語句1;break;
default 常量表達式2:語句2;break;
}
switch 與if 的區別是,switch的每條語句都會執行,而 if 有一條符合,則跳過。
動態顯示:
多個數碼管顯示數字的時候,我們實際上是輪流點亮數碼管,利用人眼的視覺暫留現象(余暉效應)。
假如有6個數碼管,就有6個切換周期。10ms要重復刷新一個數碼管,才能讓人眼保持余暉效應。
在編寫程序,可以畫個流程圖,幫助編程。

#includesbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
unsigned char code LedChar[]={
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
unsigned char LedBuff[6]={
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
void main()
{
unsigned int cnt = 0;
unsigned long sec = 0;
unsigned char i = 0;
ENLED = 0;
ADDR3 = 1;
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x67;
TR0 = 1;
while(1)
{
if(TF0 ==1)
{
TF0 = 0;
TH0 = 0xFC;
TL0 = 0x67;
cnt++;
if(cnt >= 1000)
{
cnt = 0;
sec++;
LedBuff[0] = LedChar[sec%10];
LedBuff[1] = LedChar[sec/10%10];
LedBuff[2] = LedChar[sec/100%10];
LedBuff[3] = LedChar[sec/1000%10];
LedBuff[4] = LedChar[sec/10000%10];
LedBuff[5] = LedChar[sec/100000%10];
}
if(i == 0)
{ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=LedBuff[0];}
else if(i == 1)
{ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=LedBuff[1];}
else if(i == 2)
{ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=LedBuff[2];}
else if(i == 3)
{ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=LedBuff[3];}
else if(i == 4)
{ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=LedBuff[4];}
else if(i == 5)
{ADDR2=1; ADDR1=0; ADDR0=1; i=0; P0=LedBuff[5];}
}
}
}
}
}
}
關鍵字:中斷 數碼管 動態顯示
引用地址:
中斷與數碼管動態顯示
推薦閱讀最新更新時間:2025-05-13 05:53
單片機小白學習之路(七)---數碼管的動態顯示
上篇講到了用74LS138來控制數碼管的位選,那是怎么選的呢?我們先來看看這個譯碼器的說明書 74LS138 /Y0--/Y7是數據輸出 A0--A2是數據輸入 /E1,/E2,E3是使能控制,/E1和/E2是低電平有效,E3是高電平有效 VDD是接電源;GND接地 最重要的是真值表了,來解釋其運行方式 /E1和/E2是低電平有效,E3是高電平有效,只要其中一個不滿足條件則/Y0--/Y7全部輸出高電平,我們是共陰式數碼管那么不會亮 從第四行開始都滿足了,這時候就可以看看A0--A2了,順序是A2- A1-A0,其從上往下依次是000,001,010,011,100,101,110,111.這樣看出
[單片機]
基于單片機的數碼管動態顯示器的設計方案
1.前言 數碼管靜態顯示系統需要占用過多的單片機口線,但是可以保證正常的亮度。為了解決占用口線較多而浪費硬件資源等問題,研究人員開發了一系列諸如74HC595的數碼管驅動芯片,該類芯片可以實現串行轉并行的工作方式,驅動數碼管實現靜態和動態顯示。但是,這樣一種工作方式暴露出控制系統實時性不足等問題,在某些對系統響應時間要求比較高的場合的應用產生了一定的限制。為了解決上述幾個弊端,本文提出了一種基于單片機的數碼管動態顯示器的設計方案,以IAP15F2K61S2系列單片機做控制核心,并采用全新的軟硬件電路實現數碼管的動態顯示。 2.控制系統硬件設計 2.1 顯示器外觀設計 本顯示器采用六個共陽極的數碼管,按照通常的做法,六個數碼管水平排
[電源管理]
一種基于51單片機利用74HC595驅動數碼管的技術
基于51單片機利用八個數碼管花樣顯示如下: xxx11xxx→xx2222xx→x333333x→44444444→x555555x→xx6666xx→x777777x→88888888 每個狀態各一秒,顯示反復循環,其中x表示對應的數碼管熄滅 問題補充:是共陽極的數碼管,利用595芯片驅動的。采用C語言。 =================================================== 最佳答案:程序設計完畢,采用PROTEUS仿真截圖如下。 程序如下: //============================================= #include #define uint uns
[單片機]
51單片機利用74HC595驅動數碼管
基于51單片機利用八個數碼管花樣顯示如下: xxx11xxx→xx2222xx→x333333x→44444444→x555555x→xx6666xx→x777777x→88888888 每個狀態各一秒,顯示反復循環,其中x表示對應的數碼管熄滅 問題補充:是共陽極的數碼管,利用595芯片驅動的。采用C語言。 =================================================== 最佳答案:程序設計完畢,采用PROTEUS仿真截圖如下。 程序如下: //============================================= #include reg52.h #define u
[單片機]
電子小制作單片機最小系統_按鍵控制數碼管顯示
單片機最小系統_按鍵控制數碼管顯示,這個項目,主要學習單片機的鍵盤工作原理與顯示方面的知識,電子小制作的好課題。鍵盤電路作為單片機的輸入部分,數碼顯示電路作為單片機的輸出部分,由鍵盤電路通過單片機控制數碼管顯示電路的八路鍵控數碼管電路。按下S0到S7號按鍵時,數碼管顯示立刻顯示數字0到7。 電子制作 的好課題下面是單片機最小系統_按鍵控制數碼管顯示原理圖,實作時,按原理圖焊好電路,單片機中寫入程序。 ORG 0000H ;隨后的指令代碼從0000H單元開始存放。 LJMP START ;轉到標號START處 ORG 0030H ;隨后的指令代碼從0030H單元開始存放。 START:MOV P0
[單片機]
用Proteus學習51單片機之數碼管
今天學的是數碼管和鎖存器的使用。用鎖存器的目的,是為了減小IO口的使用,本來至少得用15根IO口的,用了鎖存器后,只需要用10根IO口,若是繼續增加數碼管,IO口的增加也是一根根增加了。 鎖存器的作用,是把當然IO口的狀態保存下來,具體由鎖存器的LE腳控制,當LE腳為高電平時,鎖存器的輸出和輸入一樣,若LE腳為低電平時,則把LE腳電平改變前的輸入腳的狀態保存下來作為輸出,此時不管輸入怎么變,它的輸出也不會變了。這樣,就做到了單片機的1組輸出腳,可以控制多個設備的目的。 原理圖請見上圖,在圖中,可以看到導線很少,這是因為要連接的導線很多,如果直接用導線連接的話,會導致整個設計圖亂成一片,根本看不清楚,所以,這里使用標號來連接
[單片機]
數碼管動態掃描三種實現方法
本程序所用的原理圖下載: 點這里 ,單片機芯片使用的stc89c51;找到數碼管部分的原理圖即可.這是一整個單片機開發板的電路圖其他的忽略. 以下是3個程序的源碼: /**********利用定時器定時50毫秒動態掃描數碼管***********/ /** *功能:定時器T1實現數碼管動態掃瞄123456(if) *作者:徐冉 *日期:2013-06-12-22:10 *備注:不同的方法實現顯示設備的動態掃描,節約能耗 **/ /****************AT89C52-RC MCU*************/ /****************51hei開發板*************/ #include reg52.h
[單片機]
LED數碼管檢測裝置
LED數碼管是一種顯示數字和符號的半導體發光器件,在數字化儀表儀器和電氣設備中已廣泛使用。 LED是由發光二極管的段碼構成的,最常用的是七段LED,其內部有8個發光二極管,由7個發光二極管構成一個 8 字,各段的代號分別為a,b、c、d、e、f,g,另一個發光二極管在數字右下方為小數點.代號是dp。LED能顯示0-9中的任一數字和小數點,外形見圖1。這種數碼管內部結構有共陰極和共陽極兩種接法。 圖2為共陰極接法,當某個發光管的陽極為高電平時將其點亮。圖3為共陽極接法.當某個發光管的陰極為低電平時將其點亮。引腳③和⑧(在內部已連通)是電源腳,共陰極接法時需接電源 端,共陽極接法時需接電源 十 端。 可用一個檢測裝置(電路見圖4),對
[測試測量]