導航:首頁 > 使用方法 > 數碼管使用方法

數碼管使用方法

發布時間:2023-03-26 09:24:22

『壹』 2位7段數碼管怎麼使用

1、2是公共端,控制位碼,控制那個數碼管亮(左右),如果是纖遲虛共陰的則接低電平,若為供陽的則相反。(這個可以用萬用表的二極體檔來判斷,最好買的時候穩毀燃清楚),a-g、dp是控制斷碼,控制9個二極體的亮暗,可以直接接51的輸出口(P0要加上拉電阻),如果是共陰的則接旦哪高電平來使數碼管亮,若為供陽的則相反。用8位碼控制,用16進製表示!二極體從最上面順時針分別為a,b,c,d,e,f中間橫線為g,點為dp。

『貳』 2位7段共陽數碼管如何使用應如何和單片機進行連接。

嘿嘿 可以按照下面的圖 進行連接

一個接在P0口、一個接在P2口上,分別為7段數碼管提供段形,採用共陰極的數碼管,數碼管的3、8引腳都接地,即公地。送高電平可陪遲以點亮相應的各段掘橋。

為靜態顯示方式。

呵呵 滿意判亂猛就選滿意回答

『叄』 數碼管顯示方式及特點

數碼管的顯示方式有兩種:靜態顯示和動態顯示。

靜卜鄭態顯示方式特點:所謂靜態顯示就是指無論是多少位數碼管,同時處於顯示狀態。 當單片機系統中使用靜態數碼管顯示時,需要在每一個數碼管上添加一個鎖存器,當需要某個數碼管顯示其他內容時,只需要修改與其相連的型檔頌鎖存器的值蠢舉即可。

動態顯示方式特點:所謂動態顯示,是指無論在任何時刻只有一個數碼管處於顯示狀態,每個數碼管輪流顯示。當數碼管處於動態顯示時,所有位選線分離,而每個數碼管的各條段選線相連。

『肆』 數碼管在PLC中如何使用

只需用一個共陰極七段數碼管,每段接一個2.2K的頌渣電阻,電阻的另一端接PLC的一組輸出口(如:Q1.0、Q1.1、。。。Q1.6),數碼管的共陰極接PLC輸出側的地,這樣,運行時,如使Q1.0=1,則Q1.0對應的那一段就友罩亮,如Q1.0=0,,則Q1.0對應的那一段就滅。記住每一個輸出口對應數碼管的段,編出數字由0到9輸出口對應的輸出狀態的值,編程時,在顯示送數前,先判斷送出的數是幾,再把這「幾對應的狀態值」送給輸出野告悄口就可以是數碼管顯示「幾」。S7-200有7段解碼指令,用它就可省事多了。

『伍』 數碼管怎麼使用

數碼管是嵌入式開發中比較常用的一個模塊,本篇文章根據查閱的資料以及學習筆記整理成文,盡可能詳盡的講解常用數碼管原理和使用方法。有不足和疏忽的地方,請不吝指正。

一、工作原理

數碼管是一種半導體發光器件,其基本單元是發光雀游二極體。能顯示4位數字的叫四位數碼管,當然也有多位和只有一位的數碼管,他們的電氣原理相同。數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發光二極體單元(多一個小數點顯示);按發光二極體單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極體的陽極接到一起形成公共陽極(COM)的數碼管。共陽數碼管在應用時應將公共極COM接到+5V,當某一欄位發光二極體的陰極為低電平時,相應欄位就點亮。當某一欄位的陰極為高電平時,相應欄位就不亮。共陰數碼管是指將所有發光二極體的陰極接到一起形成公共陰極(COM)的數碼管。共陰數碼管在應用時應將公共極COM接到地線GND上,當某一欄位發光二極體的陽極為高電平時,相應欄位就點亮。當某一欄位的陽極為低電平時,相應欄位就不亮。

二、電氣特性

單位數碼管有十個管腳,其中有8根是用頃嘩銷來點亮a,b,c,d,e,f,dp 共8個發光二極體(原理中有介紹),3,8兩個管腳為公共COM腳,它們相連通且作用相同,可接任意一根。為了更清楚介紹,貼圖如下

共陰數碼管腳位對應圖

三、驅動方式

1、靜態驅動也稱直流驅動。靜態驅動是指每個數碼管的每一個段碼都由一個單片機的I/O埠進行驅動,或者使用如BCD碼二-十進制解碼器解碼進行驅動。靜態驅動的優點是編程簡單,顯示亮度高,缺點是佔用I/O埠多,如驅動5個數碼管靜態顯示則需要5×8=40根I/O埠來驅動,要知道一個89S51單片機可用的'I/O埠才32個呢:),實際應用時必須增加解碼驅動器進行驅動,增加了硬體電路的復雜性。

2、數碼管動態顯示介面是單片機中應用最為廣泛的一種顯示方式之一,動態驅動是將所有數碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決於單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的的COM端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示過程中,每位數碼管的點亮時間為1~2ms,由於人的視覺暫留現象及發光二極體的余輝效應,盡管實際上各位數碼管並非同時點亮,蘆瞎但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感,動態顯示的效果和靜態顯示是一樣的,能夠節省大量的I/O埠,而且功耗更低。

四、開發實例

下面講解一下四位數碼管的動態驅動顯示,首先看一下接線引腳圖如下。

接下來用51單片機設計目標:通過編寫c語言程序經編譯連接後下載到單片機中,使四位數碼管依次顯示1,2,3,4

#define uchar usigned char

#define uint usigned int

//位選控制埠

sbit p20=P2^0;

sbit p21=P2^1;

sbit p22=P2^2;

sbit p23=P2^3;

//數碼管段選編碼數組,分別為顯示:1,2,3,4的編碼

uchar code BianMa[] ={0x7,0xb,0xd,0xe};

//延時1ms函數(用於數碼管動態刷新)

void Delay1ms(int time);

void main()

{

while(1)

{

p20 =0; //共陰極數碼管低位選有效,表示已選中第一位數碼管

P0 =BianMa[0];//通過I/O口P0向數碼管送段選編碼

Delay1ms(500);//第一位數碼管顯示0.5秒,然後換到第二位,依次下去,由於視覺停留和數碼管余輝,所以感覺四位都在顯示

p20 =1;

p21 =0; //第二位亮

P0 =BianMa[1];

Delay1ms(500);

p21 =1;

p22 =0; //第三位亮

P0 =BianMa[2];

Delay1ms(500);

p22 =1;

p23 =0; //第四位亮

P0 =BianMa[3];

Delay1ms(500);

p23 =1;

}

//延時函數體

void Delay1ms(int time

{

int i,j;

for(i =time;i>0;i--)

for(j =110;j>0;j--)

}

五、關於亮度和鎖存器

一般來說靜態驅動的亮度要高於動態驅動的亮度,但不影響使用。實際使用中為了達到更好的效果,會配合鎖存器如74HC573一起使用,可以記憶先前狀態數據直到有新數據覆蓋。對做51單片機應用開發來說,相對LCD液晶,液晶模塊編程更方便,樣式更多樣,但是其缺點亮度不夠。這也恰恰是數碼管的優勢,如果做簡單的計數顯示,數碼管是最好選擇。

六、使用中注意事項

數碼管的基本組成是發光二極體,因此其可以通過的電流只有幾mA,接5V直流電源做測試的時候一定要串上一個幾十K大小的電阻。否則,很容易燒掉,此外用萬用表的測電阻檔就可將其點亮,足以說明其電流之小。


『陸』 數碼管——wiringPi介面的使用

我們先來看下數碼管的實物圖

數碼管由四個引腳:CLK,DIO,VCC,GND

VCC接5V   GND接GND   CLK和DIO接GPIO。

實現原理: https://blog.csdn.net/q1241580040/article/details/45815245

數碼管顯示原理:https://www.cnblogs.com/yuwl26/p/3307337.html

數碼管相對於之前的LED,按鈕之類要復雜,想要了解詳情的可以看以上兩個鏈接。

我就簡單的介紹下數碼管原理:通過CLK DIO 兩個引腳的高低電平變化來寫入數據。

數碼管接收到開始信號後 可以寫入數據 接收到停止信號後結束寫入。

數碼管分兩種:共陰極  和 共陽極

數碼管上的每個數字都由七條短杠 和 一個小數點組成,共陰極的數碼管 當短杠接收到高電平時會通電發光,供陽極則為低電平通電發光。

這樣說不是很好理解 我就舉個例子,比方說我們想讓共陰極的數碼管顯示數字 5,那就要讓afgcd 這五個短杠 為高電平1,那個abcdefgD(D表示小數點)為 10110110,這里的數據寫入格式為 Dgfedcba ,即01101101,轉換為十六進制為 0x6d

unsigned char code table[]={//共陰極0~f數碼管編碼

0x3f,0x06,0x5b,0x4f,    //0~3

0x66,0x6d,0x7d,0x07,  衡胡  //4~7

0x7f,0x6f,0x77,0x7c,    //8~b

0x39,0x5e,0x79,0x71    祥棚//c~f

};

除了顯示數字字母 數碼管還有一些固定的咐宴攔命令

0xc0~0xc3 表示數碼管上四個數字的地址

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <wiringPi.h>

#include <unistd.h>

#include <signal.h>

#include <time.h>

#define CLK 27

#define DIO 22

//共陰極0~f數碼管編碼

char segdata[]={

0x3f,0x06,0x5b,0x4f,    //0~3

0x66,0x6d,0x7d,0x07,    //4~7

0x7f,0x6f,0x77,0x7c,    //8~b

0x39,0x5e,0x79,0x71,    //c~f

0x00  //不顯示

};

//共陰極0~9帶小數點的數碼管編碼

char segdatadp[]={

0xbf,0x86,0xdb,

0xcf,0xe6,0xed,

0xfd,0x87,0xff,0xef

};

//初始化wiringPi 使用BCM編碼

void tm1637_init()

{

if(-1==wiringPiSetupGpio())

{

exit(-1);

}

pinMode(CLK,OUTPUT);

pinMode(DIO,OUTPUT);

}

//當CLK高電平時,DIO由高變低則代表開始信號

void tm1637_start()

{

digitalWrite(CLK,1);

usleep(140);

digitalWrite(DIO,1);

usleep(140);

digitalWrite(DIO,0);

usleep(140);

digitalWrite(CLK,0);

usleep(140);

}

//當CLK高電平時,DIO由低變高則代錶停止信號

void tm1637_stop()

{

digitalWrite(CLK,0);

usleep(140);

digitalWrite(DIO,0);

usleep(140);

digitalWrite(CLK,1);

usleep(140);

digitalWrite(DIO,1);

usleep(140);

}

void write_bit(char bit)

{

digitalWrite(CLK,0);

usleep(140);

if(bit){

digitalWrite(DIO,1);

}else{

digitalWrite(DIO,0);

}

usleep(140);

digitalWrite(CLK,1);

usleep(140);

}

void write_byte(char data)

{

char i = 0;

for(i=0;i<8;i++)

{

write_bit((data>>i)&0x01);

}

digitalWrite(CLK,0);

usleep(140);

digitalWrite(DIO,1);

usleep(140);

digitalWrite(CLK,1);

usleep(140);

pinMode(DIO,INPUT);

while(digitalRead(DIO));

pinMode(DIO,OUTPUT);

}

void write_command(char cmd)

{

tm1637_start();

write_byte(cmd);

tm1637_stop();

}

void write_data(char addr,char data)

{

tm1637_start();

write_byte(addr);

write_byte(data);

tm1637_stop();

}

void number_display(int h_shi,int h_ge,int m_shi,int m_ge)

{

write_command(0x40);//寫數據

write_command(0x44);//固定地址

write_data(0xc0,segdata[h_shi]);//寫入第一個數碼管

write_data(0xc1,segdata[h_ge]);

write_data(0xc2,segdata[m_shi]);

write_data(0xc3,segdata[m_ge]);

write_command(0x88);//顯示開

}

void time_display(int h_shi,int h_ge,int m_shi,int m_ge,int f_dp)

{

write_command(0x40);//寫數據

write_command(0x44);//固定地址

write_data(0xc0,segdata[h_shi]);//寫入第一個數碼管

if(f_dp)

{

write_data(0xc1,segdata[h_ge]);

}else{

write_data(0xc1,segdatadp[h_ge]);

}

write_data(0xc2,segdata[m_shi]);

write_data(0xc3,segdata[m_ge]);

write_command(0x88);//顯示開

}

//sigint信號處理函數 退出並關閉數碼管

void handler(int signo)

{

number_display(16,16,16,16);

exit(-1);

}

int main()

{

char FLAGDP = 1;

signal(SIGINT,handler);

tm1637_init();

char i = 0;

#if 0

while(1)

{

for(i=0;i<10;i++)

{

number_display(i,i,i,i);

sleep(1);

}

}

#endif

while(1)

{

FLAGDP^=1;

time_t t = time(NULL);

struct tm* _mt = gmtime(&t);

int h_s=0,h_g=0,m_s=0,m_g=0;

h_s = (_mt->tm_hour+8)/10;//時區+8

h_g = (_mt->tm_hour+8)%10;

m_s = _mt->tm_min/10;

m_g = _mt->tm_min%10;

time_display(h_s,h_g,m_s,m_g,FLAGDP);

sleep(1);

}

return 0;

}

閱讀全文

與數碼管使用方法相關的資料

熱點內容
用錢折花最簡單的方法 瀏覽:37
自流平強度簡單檢測方法 瀏覽:262
手機同步微信方法 瀏覽:69
邊際效用論的方法有哪些 瀏覽:948
pcb掉金的檢測方法 瀏覽:510
鑒別銀元袁大頭最簡單的方法 瀏覽:402
磚頭的使用方法 瀏覽:485
320125用簡便方法計算 瀏覽:469
簡述綜合管廊常用的施工方法 瀏覽:416
大葉將軍菜的食用方法 瀏覽:945
怎麼止腹瀉最快最有效的方法 瀏覽:249
哪裡有治療扁平苔蘚方法 瀏覽:888
木屑發酵最簡單的方法 瀏覽:836
登山手杖使用方法 瀏覽:7
血癌治療方法 瀏覽:482
如何睡前長高的方法 瀏覽:115
山西黃芪食用方法 瀏覽:748
蘋果7鎖屏在哪裡設置方法 瀏覽:309
車載檯面板連接方法 瀏覽:207
工程退場費計算方法 瀏覽:861