www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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

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

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

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉