A. 圖是89C52單片機控制共陰極四位數碼管顯示時間,這電路是怎麼工作的具體寫一下信號的傳輸。
你的圖不是很清楚,根據你圖上的功能來看,器件應該是:
單片機(51系列) -> 8路緩沖器(74HC245) -> 數碼管(四位)
1、由於單片機IO口的驅動能力有限,在單片機和數碼管中間增加了緩沖器
這樣可以有效的保護單片機,提高了驅動能力。
2、接法:四位數碼管有四個選擇端,保證統一時間只A-G欄位,只對一個數碼管有效。
3、點亮數碼管,通過選取不同的選擇端,選擇好某一位數碼管,通過A-G欄位點亮。
B. 51單片機控制的數碼管原理是什麼
數碼管其實是由發光二極體組成,有共陰極和共陽極之分,對於共陽極來說,一位數碼管由8個二極體組成,他們的陽極接在一起接+5v電源,而各個陰極與某個埠,如p1的8個引腳相連,當某個引腳輸出低電平的時候數碼管對應的二極體亮。
問題補充:
因為人的眼睛具有遲滯性,如果給一位數碼管接通0.3秒地時間,然後再給另一個接通0.3秒,不斷地給幾個數碼管輪流接通0.3秒,因為人眼的遲滯,就顯示出您所要求顯示的數,當然具體接通時間,要看數碼管的位數等情況自己調節。
C. 單片機電路圖P2埠控制碼真值表 4x4矩陣原理 數碼顯示器工作原理分別是什麼
這個電路就是P0埠的復用,通過選通信號分別實現鍵盤操作、數碼管段碼、位碼輸出的功能;
如通過設置 P2.5=0、P2.6=0、P2.7=0,就讓P0口僅接通鍵盤;
當設置 P2.5=1、P2.6=1、P2.7=0,就讓P0口僅接通數碼管的段數據線,可讓P0輸出段碼;
當設置 P2.5=1、P2.6=0、P2.7=1,就讓P0口僅接通數碼管的位數據線,可讓P0輸出位碼;
還不明白的請追問;
D. 如何利用單片機讓4位數碼管顯示
程序如下(用的是STC89C52晶元):
#include<reg52.h>//52系列單片機頭文件
#defineucharunsignedchar
#defineuintunsignedint
uintx,y;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//共陰極數碼管編碼
voiddisplay(uchar,uchar,uchar,uchar);//聲明子函數
voiddelay(int);//聲明子函數
voidmain()
{
while(1)
{
display(1,2,3,4);//主程序始終調用數碼管顯示子程序
}
}
voiddisplay(uchara,ucharb,ucharc,uchard)
{
P2=0xef;
P0=table[a];//給第一個數碼管送"a"
delay(1);//延時1ms
P2=0xdf;
P0=table[b];//給第二個數碼管送"b"
delay(1);//延時1ms
P2=0xbf;
P0=table[c];//給第三個數碼管送"c"
delay(1);//延時1ms
P2=0x7f;
P0=table[d];//給第三個數碼管送"d"
delay(1);//延時1ms
}
voiddelay(uintz)//延時子函數
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
(4)單片機四位數碼管工作原理擴展閱讀
led數碼管是由多個發光二極體封裝在一起組成「8」字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。led數碼管常用段數一般為7段有的另加一個小數點,還有一種是類似於3位「+1」型。
位數有半位,1,2,3,4,5,6,8,10位等等,led數碼管根據LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數碼管,除了它們的硬體電路有差異外,編程方法也是不同的。
E. 4位共陽極led數碼管動態顯示驅動原理
要是數碼管顯示數字,有兩個條件:1.是要在VT端加合適的電源(一般每顆LED還需串上合適的電阻,起限流作用);2.要使(a,b,c,d,e,f,g,dp)端接低電平或「0」電平。這樣才能顯示的
能夠點亮數碼管後,就可以通過單片機控制數碼管顯示數字或字母。為了控制方便,我們將數碼管的a~dp引腳依次連接單片機的P10-P17引腳
F. 用單片機控制數碼管顯示電路圖的運行原理
單片機控制數碼管顯示電路圖的運行原理是利用人眼「視覺暫留」的原理來實現的。
1、根據科學論斷,人眼視覺暫留時間是一幀也就是1/24秒,大約42毫秒時間。
2、在多個數碼管顯示電路中,控制上是通過掃描顯示也就是分別分時給每個數碼管送顯示數據(段碼+位碼),而全部數碼管的一次掃描時間不超過1/24秒。
3、要想達到穩定顯示,經過試驗,每個數碼管數據暫留時間又不能太少,一般不少於3毫秒。因此一個單片機的掃描控制流程最多可以控制14個數碼管。
4、掃描控制,一般用定時器來實現,51單片機有2個定時器,因此,最多可以同時控制28個數碼管穩定顯示。
G. 問一下 單片機 數碼管接線原理
首先,這數碼管是四位一體共陰型的,用單片機的P0口做段控,因P0口需要加上拉電阻,所以那8個電阻就上拉電阻。P2口做位控,這是一個典型的動態顯示電路。按這個圖畫模擬圖是可以的,但做實物就不行了,因P2驅動電流很小,無法驅動數碼管正常顯示。所以,這只是一個原理圖而已。
H. 51單片機控制的數碼管原理是什麼
數碼管其實是由發光二極體組成,有共陰極和共陽極之分,對於共陽極來說,一位數碼管由8個二極體組成,他們的陽極接在一起接+5v電源,而各個陰極與某個埠,如p1的8個引腳相連,當某個引腳輸出低電平的時候數碼管對應的二極體亮。
問題補充:
因為人的眼睛具有遲滯性,如果給一位數碼管接通0.3秒地時間,然後再給另一個接通0.3秒,不斷地給幾個數碼管輪流接通0.3秒,因為人眼的遲滯,就顯示出您所要求顯示的數,當然具體接通時間,要看數碼管的位數等情況自己調節。
I. 使用單片機實現四位八段的數碼管顯示,顯示出852.6如何實現,請寫出實現流程
有兩種方式,一種是動態掃描,假設你數碼管有COM1,COM2,COM3,COM4,然後有8個段,常見的是7個控制數碼管段還有一個小數點一共8個段
那麼這里就描述單片機一次掃描4位的過程,首先,如果你的數碼管是共陽,那麼顯示第一位就將COM1引腳拉到高電平,然後8個引腳接到單片機IO口上,你說你要顯示852.6,那麼第一位是8,7個段全亮,所以7個IO全部拉低電平就行,隨後延遲差不多1ms左右
接下來就是顯示第二個數碼管,和之前一樣,COM2拉高,然後你要顯示5的話有兩個段是不亮的,所以哪兩個腳你不想讓他亮,你直接把對應的IO拉高就行,你要讓剩下哪5個段亮直接拉高電平即可,隨後再延時1ms左右
接下來兩位和上面一樣,對應位的COM口拉高電平,對應的欄位IO你要讓哪個段亮就把哪個拉低電平,哪個段不想亮就拉高電平,最後延時1ms就行
最後程序外面套個while(1)就可以實現無限循環了
還有一種方式就是用74HC595和4個數碼管連接起來,74HC595是一個串列鎖存寄存器,只需要4個74HC595和4個數碼管就行,最少只佔用單片機2個IO
這里就說明一下74HC595的控制方式
首先74HC595應該有個EN口,拉低,然後時鍾拉高,循環8次,再把時鍾信號拉低,用一個AND運算,如你要傳輸一個0XAA,那麼就是
void InputData(0XAA)
{
for(int i=0;i<8;i++)
{
if(dat&0x01==1)
{
digitalWrite(SCK,LOW);
digitalWrite(DAT,HIGH);
delayMicroseconds(10);
}
else
{
digitalWrite(SCK,LOW);
digitalWrite(DAT,LOW);
delayMicroseconds(10);
}
dat=dat>>1;
digitalWrite(SCK,HIGH);
}
}
這里我是直接復制我以前寫的一個arino驅動74HC595的程序,SCK是時鍾,DAT是數據
建議你把單片機和你數碼管的電路圖發出來,你說如何實現我不知道你是怎麼接的數碼管