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微控制器中在編寫數碼管動態顯示時,書上是這樣做的 開啟段選,送段選資料,關閉段選,消影,開啟位
按照你的順序來說,輸出下一位數字時是會在上一位的數碼管上顯示一會兒的,因為你先開啟內的是段選。所以容在送下一位段選訊號時,位選仍然保持在上一位數碼管那裡,但是由於程式執行很快,所以你只看到上一位數碼管會隱隱約約的顯示下一位數字 由於顯示正確資料加了延時,使得正確的顯示時間比較長,所以你看到會很清晰,...