日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

数码管显示原理与驱动方式

發(fā)布時(shí)間:2024/3/26 87 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数码管显示原理与驱动方式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

一、數(shù)碼管內(nèi)部結(jié)構(gòu)

二、數(shù)碼管的顯示方式

三、數(shù)碼管顯示編程思想???


一、數(shù)碼管內(nèi)部結(jié)構(gòu)

1、內(nèi)部結(jié)構(gòu)有八個(gè)發(fā)光二極管,一個(gè)8字只需要顯示7段,但是有一個(gè)小數(shù)點(diǎn),dp,所以有八個(gè)發(fā)光二極管。

2、單個(gè)數(shù)碼管封裝十個(gè)引腳。3、8引腳是連在一起的,組成公共端。八個(gè)發(fā)光二極管分別與一個(gè)限流電阻串聯(lián)后再并聯(lián),有一個(gè)公共端,公共端可以分為共陽或共陰極。

共陰極是公共端接地,然后給高電平讓想讓亮的字段亮起來。想讓顯示幾,就給對(duì)應(yīng)的字段高電平;

共陽極需要給需要的字段低電平,注意發(fā)光二極管本身需要通過5毫安以上的電流才可以發(fā)光,且電流不得過大。但是單片機(jī)的I/O口送不了這么大的電流,所以需要驅(qū)動(dòng)電路。可以用上拉電阻的方式也可以直接使用專門的驅(qū)動(dòng)芯片,可以使用74HC573鎖存器芯片、74HC138譯碼器,也可以使用專門的數(shù)碼管驅(qū)動(dòng)芯片LM1640。

3、當(dāng)多位一體的數(shù)碼管時(shí)內(nèi)部的公共端是獨(dú)立的,而負(fù)責(zé)顯示什么數(shù)字的段選線是全部連接在一起的。

公共端控制哪個(gè)位亮,稱為“位選線”,控制單個(gè)數(shù)碼管哪一段亮的叫做“段選線”。

一般單位數(shù)碼管和二位數(shù)碼管都有10個(gè)引腳,四位數(shù)碼管有12個(gè)引腳。

二、數(shù)碼管的顯示方式

????????數(shù)碼管有兩種顯示方式:靜態(tài)顯示和動(dòng)態(tài)顯示。

?? ????位選去選哪幾個(gè)數(shù)字亮,而由于段選是連在一起的所以顯示的數(shù)字是相同的,這稱為靜態(tài)顯示。靜態(tài)顯示就是選中不同的數(shù)碼管顯示相同的數(shù)字。

? ? ? ??數(shù)碼管動(dòng)態(tài)顯示又叫做動(dòng)態(tài)掃描顯示,就是選中幾個(gè)數(shù)碼管同時(shí)顯示不同的數(shù)字。

? ? ? ? 數(shù)碼管的動(dòng)態(tài)是以掃描的方式輪流向數(shù)碼管送出段選碼和位選,利用發(fā)光管的余輝和人眼的視覺暫留作用,使人感覺各位數(shù)碼管同時(shí)都在顯示,而實(shí)際上是多為數(shù)碼管一位一位的輪流顯示,只是輪流的速度非常快,人眼已經(jīng)無法分辨。

? ? ? ? 由于數(shù)碼管動(dòng)態(tài)顯示的特性,動(dòng)態(tài)顯示時(shí),我們要在每次送完段選數(shù)據(jù)后、送入位選數(shù)據(jù)前,加上語句P0 = 0xff或P0=0x00,看采用的是共陽極還是共陰極的數(shù)碼管。這個(gè)操作叫做消影。如果不執(zhí)行消影操作,語句再接下來的打開位選命令后,仍保持著上次的段選數(shù)據(jù),該段選數(shù)據(jù)將立刻加在數(shù)碼管上,接下來才是再次通過IO口給位選送入位選數(shù)據(jù),數(shù)碼管上會(huì)出現(xiàn)混亂的現(xiàn)象。

三、數(shù)碼管顯示編程思想???

?????數(shù)碼管顯示步驟:1、送段碼 2、送位選 3、延時(shí)一下,不要超過10ms(不是必須的) 4、消隱

????????數(shù)碼管顯示時(shí),最好將段碼數(shù)據(jù)和位選數(shù)據(jù)按順序放到各自的數(shù)組中,這樣調(diào)用各自的數(shù)組,便可以用數(shù)字的方式給數(shù)碼管送入位選和段選數(shù)據(jù),更加方便直觀。

我們只需將代表不同數(shù)字的段碼和位選地址放入數(shù)組中,便可以直接調(diào)用

unsigned char code leddata[] = {//數(shù)碼管段碼表0x3f,//"0"0x06,//"1"0x5b,//"2"0x4f,//"3"0x66,//"4"0x6d,//"5"0x7d,//"6"0x07,//"7"0x7f,//"8"0x6f,//"9"0x77,//"A"0x7c,//"B"0x39,//"C"0x5e,//"D"0x79,//"E"0x71,//"F"0x76,//"H"0x38,//"L"0x37,//"n"0x3e,//"u"0x73,//"P"0x5c,//"o"0x40,//"-"0x00,//"熄滅"}; unsigned char LEDBUF[] = {22,22,22,22};//數(shù)據(jù)顯示緩沖區(qū) unsigned char code PLACE_CODE[] = {0xfe, 0xfd, 0xfb, 0xf7};//位選信號(hào)

我們可以在我們?cè)O(shè)置的數(shù)據(jù)緩沖區(qū)數(shù)組中填入我們想要顯示的內(nèi)容,就可以通過數(shù)組之間的相互調(diào)用的實(shí)現(xiàn)顯示。

void Display()//因?yàn)橛袛?shù)據(jù)顯示緩沖區(qū),就不用帶參數(shù)的函數(shù) {static unsigned char i = 0;//靜態(tài)變量只在第一次時(shí)初始化,再次調(diào)用就不會(huì)被初始化//1、送段碼GPIO_DIG = leddata[LEDBUF[i]];//2、送位選GPIO_PLACE = PLACE_CODE[i];//3、延時(shí) 1ms,所有數(shù)碼管整體延時(shí)時(shí)間不要超過10msDelayXms(1);//4、消隱GPIO_DIG = 0x00;i++;if(i == N)i = 0; }

總結(jié)

以上是生活随笔為你收集整理的数码管显示原理与驱动方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。