日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]數(shù)碼管的使用方法與發(fā)光二極管沒(méi)什么區(qū)別,只是把七或八只發(fā)光二極管組合在一個(gè)模件上組成了個(gè)8字和小數(shù)點(diǎn),用以顯示數(shù)字。為了減少管腳,把各個(gè)發(fā)光管的其中同一個(gè)極接在一起作為共用點(diǎn),因此就產(chǎn)生了共陽(yáng)極和共陰極

數(shù)碼管的使用方法與發(fā)光二極管沒(méi)什么區(qū)別,只是把七或八只發(fā)光二極管組合在一個(gè)模件上組成了個(gè)8字和小數(shù)點(diǎn),用以顯示數(shù)字。為了減少管腳,把各個(gè)發(fā)光管的其中同一個(gè)極接在一起作為共用點(diǎn),因此就產(chǎn)生了共陽(yáng)極和共陰極數(shù)碼之說(shuō)。共陽(yáng)管就是把各個(gè)發(fā)光管的正極接在一起,而共陰管就剛好相反。見(jiàn)下圖:

一般來(lái)說(shuō)大部分的邏輯IC的吸收電流要強(qiáng)于輸出電流。因此,大家都愛(ài)使用共陰極的數(shù)碼管,因?yàn)榭蛇x的IC多些。很可惜,我的這組數(shù)碼管是共陽(yáng)的,因此公共端我打算用三級(jí)管來(lái)驅(qū)動(dòng)。我的最小系統(tǒng)板:我用最常用的S9012,首先我得計(jì)劃好電路方式,就采用最常用的動(dòng)態(tài)掃描顯示。先搭建最簡(jiǎn)電路,調(diào)試出需采用元件的參數(shù)。先不接上圖的R2和74HC244,將數(shù)碼管一個(gè)段直接接地。調(diào)節(jié)R1,測(cè)得S9012基極電流為0.21mA時(shí)集電極也就是數(shù)碼管上已有40mA,說(shuō)明放大倍數(shù)足夠了。這時(shí)接上R2和74HC244,調(diào)節(jié)R2使數(shù)碼管電流控制在15mA,這樣當(dāng)8個(gè)段一起點(diǎn)亮?xí)r三極管上得通過(guò)120mA的電流。而基極上需要0.63mA,為了減小三極管的負(fù)荷應(yīng)使三極管過(guò)飽和,,調(diào)節(jié)R1使基極電流為2mA,此時(shí)測(cè)得集電極和漏極之間的電壓約0.1V。好!此時(shí)R1為2K。R2為240歐姆。確定。接下來(lái)就是確定電路。電路的接口與AT89S51間有三組接口:段碼、位碼和電源。為了讓AT89S51獨(dú)立出來(lái)這三級(jí)接口都采用插針做接口,用排線自由連接到AT89S51的P1-P3口,電源用短路帽連接,完成后的板子見(jiàn)下圖反面:說(shuō)明:然后就是寫程序。先寫個(gè)查詢方式的吧!
//六位管碼管在以0.3秒的間隔在閃爍,這是采用查詢方式的,比較占CUP資源
/********************************************************************
定義管腳:P2_0-------上橫 a P3_0-------個(gè)位
P2_1-----右上豎 b P3_1-------十位
P2_2-----右下豎 c P3_2-------百位
P2_3----- 下橫 d P3_3-------千位
P2_4-----左下豎 e P3_4-------萬(wàn)位
P2_5-----左上豎 f P3_5-------十萬(wàn)位
P2_6-----中間橫 g
P2_7-----小數(shù)點(diǎn) H
*********************************************************************/
# include
typedef unsigned char uchar;
uchar code bit_num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//位碼值表:0,1,2,3,4,5
uchar code meg_val[]={0x03,0x9f,0x25,0x0d,0x99,0x49};//段碼值表:0,1,2,3,4,5
uchar code hello[]={0x03,0xe3,0xe3,0x61,0x91,0xff}; //HELLO
uchar code beybey[]={0x89,0x61,0xc1,0x89,0x61,0xc1};//beybey
uchar code ab6789[]={0xc1,0x11,0x09,0x01,0x1f,0x41};//ab6789
void delay(int n);
void main(void)
{
uchar i,m;
P2=0xff; //先將段碼關(guān)閉
P3=0xff; //將位碼關(guān)閉
delay(20);//等待一會(huì)
while(1)
{
for (m=30;m>0;m--) //顯示30次約0.3秒
{
for(i=0;i<=5;i++)
{
P2=0xff;
P3=bit_num[i]; //輸出位碼到P3口
P2=ab6789[i]; //輸出段碼到P2口
delay(5);
}
}
P2=0xff; //關(guān)閉段碼
P3=0xff; //關(guān)閉位碼
delay(1000); //等待0.3秒
}
}void delay(int n) //子程序
{
int j;
uchar k;
for(j=0;j {
for(k=255;k>0;k--);
}
}
======================================
當(dāng)我插把程序?qū)懭肫?,插上電運(yùn)行時(shí),是亂碼。你猜怎么回事?
原來(lái)那個(gè)P2口方向是反的,您注意過(guò)沒(méi)有,在AT89S51管腳排列上,P0--P1和P3都是上方為PX_0。而唯獨(dú)P2口管腳排列是下方為P2_0。方向則好是反的。既然反了,我就把段碼表重寫一下。再試,一切正常。
在這里我說(shuō)一下段碼的排列,好多人問(wèn)數(shù)碼管段碼是如何排列的,我也在網(wǎng)上查了,好像沒(méi)有什么標(biāo)準(zhǔn)的排法,隨自己的接法而定,這也是導(dǎo)致為什么在網(wǎng)上下載的一些數(shù)碼管程序在自己的板子上不能正常顯示的原因。就普遍而言我最上面的那張圖示的標(biāo)法最多,在上面程序里原打算也是P2_0對(duì)應(yīng)段碼a(也就是上面的橫)。一直到P2_7對(duì)應(yīng)段為h(就是小數(shù)點(diǎn))。結(jié)果哪知道P2口剛好是反的。這樣一來(lái)也就是倒過(guò)來(lái)了,P2_0對(duì)應(yīng)段h(小數(shù)點(diǎn)了)。例如我原先定義的數(shù)碼管顯示“2”段碼為10100100B的,一接反了就不再是“2”了。而要想再顯示“2”那就把段碼的高低位倒過(guò)來(lái)。改為00100101B就OK了。下面再寫個(gè)用中斷來(lái)顯示的://這是采用中斷方式的,也是帶閃爍的。
/********************************************************************
定義管腳:P2_0------小數(shù)點(diǎn) P3_0------個(gè)位
P2_1------中橫 P3_1------十位
P2_2------左上豎 P3_2------百位
P2_3------左下豎 P3_3------千位
P2_4------下橫 P3_4------萬(wàn)位
P2_5------右下豎 P3_5------十萬(wàn)位
P2_6------右上豎
P2_7------上橫
*********************************************************************/
# include
typedef unsigned char uchar;
uchar code bit_num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//位碼:0,1,2,3,4,5
uchar code meg_val[]={0x49,0x99,0x0d,0x25,0x9f,0x03};//段碼:0,1,2,3,4,5
uchar i,aa; //定義全局變量
bit fg; //定義一個(gè)亮起和熄滅標(biāo)志void timer0(void) interrupt 1 using 1 //中斷程序
{
if (fg) //當(dāng)fg為1時(shí)點(diǎn)亮6位數(shù)碼管
{ P2=0xff;
if (i>=6)
{
i=0;
}
else
{
P3=bit_num[i]; //輸出位碼到P3口
P2=meg_val[i]; //輸出段碼到P2口
i++;
}
}
else //當(dāng)fg為0時(shí)熄滅數(shù)碼管
{
if(aa==0)
{
P3=0xff;
P2=0xff;
}
}
aa++;
if (aa>=254) //當(dāng)aa值累加至254時(shí)fg標(biāo)志翻轉(zhuǎn)。
{
fg=~fg;
aa=0;
}
TH0=0xf8; //重裝定時(shí)器初值,2ms,值為65536-2000
TL0=0x30;
}
void main(void)
{
P2=0xff; //先將段碼關(guān)閉
P3=0xff; //將位碼關(guān)閉
TMOD=0x01;//設(shè)置T0為模式1
TH0=0xf8; //裝入計(jì)數(shù)初值高位
TL0=0x30; //裝入計(jì)數(shù)初值低位
EA=1; //總充許
ET0=1; //T0充許
fg=1; //將亮、滅標(biāo)志設(shè)置為亮
TR0=1; //啟動(dòng)中斷
while(1);
}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在電動(dòng)汽車(EV)領(lǐng)域,牽引逆變器作為關(guān)鍵組件之一,扮演著至關(guān)重要的角色。它不僅影響電動(dòng)汽車的驅(qū)動(dòng)性能和效率,還直接關(guān)聯(lián)到整車的安全性和耐用性。本文將詳細(xì)介紹在選擇電動(dòng)汽車牽引逆變器時(shí)需要考量的多個(gè)方面,包括其保護(hù)機(jī)制與...

關(guān)鍵字: 逆變器 電動(dòng)汽車 驅(qū)動(dòng)

7月3日消息,AMD顯卡戰(zhàn)未來(lái),再添實(shí)錘證據(jù)!

關(guān)鍵字: 驅(qū)動(dòng) 英偉達(dá)

在當(dāng)今高速發(fā)展的電子系統(tǒng)領(lǐng)域,信號(hào)完整性已然成為確保系統(tǒng)性能與可靠性的關(guān)鍵要素。從驅(qū)動(dòng)到連接器的信號(hào)傳輸路徑宛如一條信息高速公路,而接收端則如同這條公路的終點(diǎn)收費(fèi)站,其設(shè)置的合理性直接關(guān)乎信號(hào)能否準(zhǔn)確無(wú)誤地抵達(dá)目的地。若...

關(guān)鍵字: 信號(hào) 連接器 驅(qū)動(dòng)

在復(fù)雜的嵌入式系統(tǒng)或高性能計(jì)算環(huán)境中,以太網(wǎng)驅(qū)動(dòng)的穩(wěn)定性與可靠性至關(guān)重要。然而,有時(shí)開(kāi)發(fā)者會(huì)遇到一些難以解釋的現(xiàn)象,比如拔掉一個(gè)網(wǎng)口后,另一個(gè)原本工作正常的網(wǎng)口突然無(wú)法接收數(shù)據(jù)。這種看似不合邏輯的問(wèn)題,往往隱藏著深層次的...

關(guān)鍵字: 以太網(wǎng) 驅(qū)動(dòng)

在嵌入式開(kāi)發(fā)過(guò)程中,許多系統(tǒng)通常使用串口驅(qū)動(dòng)來(lái)滿足通信要求,但在實(shí)際應(yīng)用中,使用SPI通信方式會(huì)更加高效和快捷。

關(guān)鍵字: 串口 驅(qū)動(dòng)

變頻調(diào)速電機(jī)簡(jiǎn)稱變頻電機(jī),是變頻器驅(qū)動(dòng)的電動(dòng)機(jī)的統(tǒng)稱,優(yōu)點(diǎn)是具備有啟動(dòng)功能;采用電磁設(shè)計(jì),減少了定子和轉(zhuǎn)子的阻值;適應(yīng)不同工況條件下的頻繁變速;在一定程度上節(jié)能。

關(guān)鍵字: 變頻 調(diào)速電機(jī) 驅(qū)動(dòng)

發(fā)光二極管驅(qū)動(dòng)芯片按類型可分為:恒壓式驅(qū)動(dòng)芯片、恒流式驅(qū)動(dòng)芯片以及脈沖式驅(qū)動(dòng)芯片。其中恒壓式驅(qū)動(dòng)芯片一般就是我們常見(jiàn)的DC/DC升壓芯片居多。

關(guān)鍵字: 二極管 驅(qū)動(dòng) 芯片

在電子工程領(lǐng)域,圖騰柱電路(Totem Pole Circuit)以其獨(dú)特的結(jié)構(gòu)和廣泛的應(yīng)用場(chǎng)景,成為了數(shù)字電路與模擬電路之間不可或缺的橋梁。這種電路結(jié)構(gòu)以其高效的驅(qū)動(dòng)能力和快速的開(kāi)關(guān)速度,在電力電子、開(kāi)關(guān)電源、微控制器...

關(guān)鍵字: 圖騰柱電路 驅(qū)動(dòng) 信號(hào)轉(zhuǎn)換

在Linux操作系統(tǒng)的廣闊世界中,設(shè)備驅(qū)動(dòng)扮演著至關(guān)重要的角色,它們作為內(nèi)核與用戶空間之間的橋梁,使得用戶可以高效地與硬件設(shè)備進(jìn)行交互。其中,字符設(shè)備驅(qū)動(dòng)因其簡(jiǎn)單直接的交互模式,成為眾多硬件設(shè)備驅(qū)動(dòng)的首選實(shí)現(xiàn)方式。本文將...

關(guān)鍵字: 字符設(shè)備 Linux內(nèi)核 驅(qū)動(dòng)

根據(jù)具體應(yīng)用的不同,LED可能會(huì)采用不同的電源來(lái)供電,如交流線路、太陽(yáng)能板、12 V汽車電池、直流電源或低壓交流系統(tǒng),甚至是基于堿和鎳的電池或鋰離子電池等。

關(guān)鍵字: 交流 離線電源 驅(qū)動(dòng)
關(guān)閉