微控制器c51輸出數碼管顯示為什麼共陽極0是0xc0,共陰極是

2021-03-22 08:08:45 字數 4625 閱讀 8752

1樓:匿名使用者

這是根據數碼管的特性決定的(因為一個段位的數碼管是由8個二極體組成的),因為共陽極的數碼管,公共腳接的是電源vcc,所以,想要把那一個二極體點亮就必需將這個點接地,它就會發亮了,例如:要顯示數字「0」,就要把「a、b、c、d、e、f」這幾個發光二極體接地,其它二極體接vcc,它就會顯示成一個「0」了,把它轉換成二進位制碼:1100 0000,所以它的十六進位制為:

0xc0,而共陰極的段位數碼管正確的二進位制碼應該是:0011 1111,十六進位制為:0x3f.

2樓:匿名使用者

就由於二極體的單向導電性決定的,如果共陽,0需要的管腳需要加負電壓,就是0需要的管腳輸出0,才能點亮,如果共陰,0需要的管腳需要加正電壓,就是0需要的管腳輸出1,才能點亮

51微控制器共陽極數碼管顯示程式裡編碼為什麼會有共陰極的編碼?

3樓:匿名使用者

你好!共陰和共陽的編碼其實是通用的,用的時候,只要取反就行了

p0=~data_[temp/100];

~ 就是取反了

51微控制器數碼管顯示

4樓:匿名使用者

我寫過8位的,帶有刪除功能,這是自己寫的東西。我微控制器有外接753晶片的,相當於io口擴充套件,所以可以用8個io口控制8跟數碼管。輸出為p1,程式裡的latch1和latch2是用來控制753晶片的。

我的數碼管是動態掃描顯示的,不知道你微控制器的電路長啥樣。不過大致原理就是在main函式裡不斷掃描按鍵,如果有掃描到按鍵,就更新我所要顯示的變數(val[i])。然後用定時器(scheduler())的部分來動態掃描我的數碼管,每隔2.

4微妙切換到下一個數碼管(我用12兆晶振)。

我是沒試過,不過我估計也可以用定時器來安排按鍵掃描,然後在main迴圈裡面掃描數碼管。或者更牛的就是兩項工作全部弄在一個定時器裡,這種方法叫做scheduler,可以用來做簡單的多工微控制器。

#include

unsigned char code tubepos = ;

unsigned char code tubenum = ;//0xff為不顯示

sbit latch1 = p2^0;

sbit latch2 = p2^1;

sbit latch3 = p3^5;

int i,j,pos,val[8]=; //8個數碼管都不顯示

unsigned char k;

void shift(num)

val[0]=num;

}void delete()

val[7]=16;

}void display(num,pos)

void delayus2x(unsigned char t)

void main()

}p3=0xf0;

while(p3!=0xf0)}}

}void scheduler() interrupt 1

}i++;

if(i>9)}

5樓:

假設:顯緩a(0),a(1),a(2),a(3)對應從左到右4位顯示,b為剛輸入的資料,每次有輸入時

a(0)=a(1);a(1)=a(2);a(2)=a(3);a(3)=b;

6樓:匿名使用者

程式太複雜了,不出血誰能白給你做。

c51微控制器數碼管的顯示

7樓:陳學陽

#include

//定義位操作

sbit ls1=p0^5; //千位公共極sbit ls2=p0^4; //百位公共極sbit ls3=p0^3; //十位公共極sbit ls4=p0^2; //個位公共極#define out p1 //資料輸出端unsigned char tab=; //共陽// 實際顯示 0 1 2 3 4 5 6 7 8 9

//延時----------------------------delay(unsigned int t)//主程式--------------------------main()

}程式只要你稍微改下,這個是我們自己做的程式,已經執行沒問題了,嘿嘿,分給我吧

如果對您有幫助,請記得采納為滿意答案,謝謝!祝您生活愉快!

8樓:做而論道

b,是特殊功能暫存器,不能再當做變數。

下面的,都加了個1 ,就可以編譯了。

#include

sbit m1=p1^0;

sbit a1=p2^2;

sbit b1 =p2^3;

sbit c1 =p2^4;

void main()

微控制器的po口連數碼管,現控制數碼管迴圈顯示0-9,迴圈顯示間隔1s。數碼管共陰極要畫圖,寫程式。

9樓:匿名使用者

把 數碼管的 1-9 的 對應的碼算出來就好了例如:#include

//數字0-9的字形碼

unsigned char code table=;

unsigned char dispcount;

void delay02s(void);

void main(void)}}

void delay02s(void)

補充:微控制器(microcontrollers)是一種積體電路晶片,是採用超大規模積體電路技術把具有資料處理能力的**處理器cpu、隨機儲存器ram、只讀儲存器rom、多種i/o口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調製電路、模擬多路轉換器、a/d轉換器等電路)整合到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位微控制器,發展到現在的300m的高速微控制器

微控制器兩位數碼管顯示數字 10

10樓:匿名使用者

#include

#define uchar unsigned char;

uchar distab=;  //0到fuchar number,dat=29;

void t0isr() interrupt 1}main()

51微控制器 在控制位選時(是位選不是段選)是給1亮還是給0亮 與數碼管是共陰極還是共陽極有關係嗎

11樓:匿名使用者

51微控制器 在控制位選時是給1亮還是給0亮 與數碼管是共陰極還是共陽極有關係,當然還與數碼管的驅動方式有關。

微控制器數碼管顯示的數值編碼

12樓:匿名使用者

昏,你學過數位電路麼?關於7段數碼管的部分(其實我們用的是8段),數碼管中有8斷二極體,從最上到小數點,分別是a,b,c,d,e,f,g,h(這個是小數點),8個數碼管統一接在地線或者高電平,所以只要看二極體的那一面接為啥,這也就是什麼共陽極和共陰極了,你可以手工自己面一下碼,比如說你上面所說的共陽極吧,如果想要顯示1的話,是不是b段,c段為低電平呀,其他為高呀,對應的編碼是不是1111 1001.(最低位是a,次位為b,後c,。。。。

) ,那不是0xf9麼?。。。。

13樓:蒼生何辜_彭亮

首先確定是哪種接發:共陰還是共陽。

共陰極的:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71

共陽極的:0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x84,0x0e

14樓:8問題

數碼管的a,b,c,d,e,f,g,h分別對應微控制器八個埠的0~7位。

15樓:匿名使用者

首先確定是哪種接發:共陰還是共陽。然後就有個順序

為什麼我微控制器數碼管段碼是共陰極的而位碼是共陽極的?

16樓:

位碼的數字和電路是有直接關係的。

位碼沒有共陰極和共陽極之分,而只是數碼管的內部結構的不同。

0x3f....這些是共陰極的數碼管的段碼錶。

0xc0.... 是共陽極數碼管的段碼錶。

17樓:匿名使用者

位碼是0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,這

應該是共陰呀,

段碼是0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,這也是共陰的碼。

18樓:成秀珍愛嫣

一般來說

數碼管是共陰極的,那麼位碼是

陽極(如果你想讓數碼管全亮,就把所有陽極並接在一起,但是最好也要每個陽極串個限流電阻,再並接,不過這也不是叫共陽極)。

如果不是這樣那你的數碼管有沒有型號或資料手冊,幫你看一下。

還有多個數碼管的話是可以把不同的數碼管位碼接在一起,這也不叫共陽極,只是因為它們一般不會同時導通而已。

51微控制器,數碼管顯示問題,求大神解釋

stc89c52rc 與 stc12c5a60s2 的指令執行 週期時間不一樣,有關延時程式 會有影響。其它方面 應該沒有什麼影響。具體問題可以與老師一起 微控制器數碼管的動態顯示問題,求大神看看 出錯了 程式的中的tt,並沒有起任何作用。刪掉的效果一樣。從你程式的高速重新整理來看,除了不知道顯示了...

51微控制器位選的問題,51微控制器數碼管實驗位選和段選問題共陰極

比如數碼管是共陽的,位選 就是置1,共陰的就是置0 共陽管,原則就是位選先高專電平,屬再送段選段選控制碼,延時1 5ms,位選低電平熄滅,再下一位。你上面的程式 差個延時。送段選 後才幾微秒時間 眼睛還沒反應就滅了,這是錯的。我看過他的。每復一個數碼管都是八制 個發光二極體構成,其陰極是全部接在一起...

51微控制器中在編寫數碼管動態顯示時,書上是這樣做的 開啟段選,送段選資料,關閉段選,消影,開啟位

按照你的順序來說,輸出下一位數字時是會在上一位的數碼管上顯示一會兒的,因為你先開啟內的是段選。所以容在送下一位段選訊號時,位選仍然保持在上一位數碼管那裡,但是由於程式執行很快,所以你只看到上一位數碼管會隱隱約約的顯示下一位數字 由於顯示正確資料加了延時,使得正確的顯示時間比較長,所以你看到會很清晰,...