單片機(jī)數(shù)碼管顯示原理

發(fā)布時間:2024-02-29
小燈是一種簡單的led,給我們視覺效果只能通過亮和滅來表達(dá)簡單信息。而這節(jié)課我們要來學(xué)習(xí)一種表達(dá)更加明確的器件,數(shù)碼管。
1、數(shù)碼管的基本介紹 先給大家提供一張?jiān)韴D看一下,如圖1所示。
圖1數(shù)碼管原理圖
這是比較常見的數(shù)碼管的原理圖,我們板子上一共有6只數(shù)碼管。前邊有了led小燈的學(xué)習(xí),數(shù)碼管學(xué)習(xí)就會輕松的多了。從圖1能看出來,數(shù)碼管共有a,b,c,d,e,f,g,dp這8個段,而實(shí)際上,這8個段每一段都是一個led小燈,所以數(shù)碼管就是由8個led小燈所組成的。我們看一下數(shù)碼管內(nèi)部結(jié)構(gòu)圖。
圖2數(shù)碼管結(jié)構(gòu)圖
數(shù)碼管分為共陽數(shù)碼管和共陰數(shù)碼管,所謂的共陰數(shù)碼管就是8只led小燈的陰極是接在一起的,也就是陰極是公共端,由陽極來控制小燈是否亮滅。同理,共陽數(shù)碼管就是陽極是接到一起的,大家可以仔細(xì)研究下圖1。細(xì)心的同學(xué)也會發(fā)現(xiàn),數(shù)碼管上邊有2個com,實(shí)際上就是我們數(shù)碼管的公共端。為什么有2個,我個人認(rèn)為,一方面有2個可以起到對稱的效果,剛好是10個引腳,另外一個方面,公共端通過的電流較大,我們初中就學(xué)過,并聯(lián)電路電流之和等于總電流,用2個com可以把公共電流平均到2個引腳上去,降低線路承受的電流。
從我們板子的電路圖上能看出來,我們所用的數(shù)碼管是共陽數(shù)碼管,如圖所示。
圖3共陽數(shù)碼管電路
他們的com是接到了正極上,當(dāng)然了,和led小燈電路類似,也是由74hc138控制了三極管的導(dǎo)通來控制整個數(shù)碼管的電流,我們先來看ds1這個數(shù)碼管。原理圖上可以看出來,控制ds1的三極管是q17,控制q17的引腳是leds0,對應(yīng)到74hc138上邊就是y0端的輸出。
圖474hc138控制圖
我們現(xiàn)在的目的是讓leds0這個引腳輸出低電平,相信大家現(xiàn)在可以獨(dú)立根據(jù)前邊學(xué)到的內(nèi)容把a(bǔ)ddr0,addr1,addr2,addr3,enled這4個輸入狀態(tài)寫出來,現(xiàn)在大家不要偷懶,都去根據(jù)138的手冊去寫一下,不需要你記住這些結(jié)論,但是遇到就寫一次,鍛煉過幾次后,遇到同類芯片自己就知道如何去解決問題了。
數(shù)碼管通常是用來顯示數(shù)字的,我們板子上的6個數(shù)碼管,習(xí)慣上我們稱之為6位,那控制位選擇的就是74hc138了。而數(shù)碼管內(nèi)部的8個led小燈我們稱之為數(shù)碼管的段,那么數(shù)碼管的段選擇(即該段的亮滅)是通過p0口控制,經(jīng)過74hc245驅(qū)動。
2、數(shù)碼管的真值表 數(shù)碼管的8個段,我們直接當(dāng)成8個led小燈來控制,那就是a、b、c、d、e、f、g、dp一共8個led小燈。我們通過圖1可以輕而易舉的看出來,如果我們點(diǎn)亮b和c這兩個led小燈,也就是數(shù)碼管的b段和c段,其他的所有的段都熄滅的話,就可以讓數(shù)碼管ds1顯示一個數(shù)字1,那么這個時候?qū)嶋H上p0的值的二進(jìn)制就是0b11111001,十六進(jìn)制就是0xf9。那么我們寫一個程序進(jìn)去,看看讓數(shù)碼管顯示一下看看。
#include//包含寄存器的庫文件
sbitaddr0=p1^0;
sbitaddr1=p1^1;
sbitaddr2=p1^2;
sbitaddr3=p1^3;
sbitenled=p1^4;
voidmain()
{
unsignedcharj=0;
unsignedinti=0;
enled=0;
addr0=0;
addr1=0;
addr2=0;
addr3=1;//74hc138開啟三極管q17
while(1)//程序死循環(huán)
{
p0=0xf9;//打開數(shù)碼管b和c段
}
}
大家把這個程序編譯一下,下載到單片機(jī)里會發(fā)現(xiàn),最右側(cè)的數(shù)碼管成功顯示1這個數(shù)字。
同樣的方法,我們可以把其他的數(shù)字都成功的在數(shù)碼管上顯示出來,而數(shù)碼管顯示的數(shù)字對應(yīng)給p0的賦值,我們叫做數(shù)碼管的真值表。我們來列一下我們這個電路圖的數(shù)碼管真值表,注意,這個真值表里顯示的數(shù)字都不帶小數(shù)點(diǎn)。
表1數(shù)碼管真值表
數(shù)字
0
1
2
3
4
5
6
7
真值表
0xc0
0xf9
0xa4
0xb0
0x99
0x92
0x82
0xf8
數(shù)字
8
9
a
b
c
d
e
f
真值表
0x80
0x90
0x88
0x83
0xc6
0xa1
0x86
0x8e
大家可以把上邊那個數(shù)碼管顯示1的那個程序中的p0的賦值隨便修改成我們表5-1中的真值表里的數(shù)字試試看,把數(shù)碼管顯示的數(shù)字顯示出來。
3、數(shù)碼管的靜態(tài)顯示 從第三課我們學(xué)習(xí)74hc138以后,我們了解到74hc138同時一次只能讓一個輸出口為低電平,也就是在一個時刻內(nèi),我們只能讓一個數(shù)碼管顯示,始終選通數(shù)碼管并且可以根據(jù)我們的p0總線的信號來改變這個數(shù)碼管的值,我們可以理解為數(shù)碼管的靜態(tài)顯示。
數(shù)碼管靜態(tài)顯示是對應(yīng)動態(tài)顯示而言的,靜態(tài)顯示對于一兩個數(shù)碼管還行,多個數(shù)碼管,靜態(tài)顯示實(shí)現(xiàn)的意義就沒有了。這節(jié)課我們先用一個數(shù)碼管的靜態(tài)顯示來實(shí)現(xiàn)一個簡單的秒表,為下節(jié)課的動態(tài)顯示打下基礎(chǔ)。
先來介紹一個51單片機(jī)的關(guān)鍵字code。我們前邊課程定義變量的時候,一般用到unsignedchar或者unsignedint這兩個關(guān)鍵字,這樣定義的變量都是放在我們的單片機(jī)的ram中,我們在程序中可以隨意去改變這個變量的值。但是還有一種常數(shù),我們在程序中要使用,但是卻不進(jìn)行對這個值的改變,這種值我們可以加一個code關(guān)鍵字修飾一下,修飾完畢后,這個值就會存儲到我們的程序空間flash中,這樣可以大大節(jié)省我們單片機(jī)的ram的使用量,畢竟我們的ram空間比較小,而程序空間是很大的。比如我們現(xiàn)在要使用的數(shù)碼管真值表,我們來看一下我們下邊的這個程序。
#include//包含寄存器的庫文件
sbitled=p0^0;
sbitaddr0=p1^0;
sbitaddr1=p1^1;
sbitaddr2=p1^2;
sbitaddr3=p1^3;
sbitenled=p1^4;
unsignedcharcodeledchar[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
};//用數(shù)組來存儲數(shù)碼管真值表,下一課詳細(xì)介紹數(shù)組
voidmain()
{
unsignedcharcounter=0;
unsignedcharj=0;
enled=0;addr0=0;addr1=0;
addr2=0;addr3=1;p0=0xff;//74hc138和p0初始化部分
tmod=0x01; //設(shè)置定時器0為模式1
th0=0xb8;
tl0=0x00; //定時值初值
tr0=1; //打開定時器0
while(1)
{
if(1==tf0) //判斷定時器0是否溢出
{
tf0=0;
th0=0xb8; //溢出后,重新賦值
tl0=0x00;
counter++;
if(50==counter)//判斷定時器0溢出是否達(dá)到50次
{
counter=0;//counter清0,重新計(jì)數(shù)
p0=ledchar[j++];//把數(shù)組里的對應(yīng)值送給p0
if(16==j)//當(dāng)顯示到f后,歸0重新開始
{
j=0;
}
}
}
}
}
上一個:制定統(tǒng)一工程量計(jì)算規(guī)則的意義是什么?
下一個:fp6290,中文資料,數(shù)據(jù)手冊

萬用表怎么知道被測是交流還是直流?
為什么結(jié)型場效應(yīng)管沒有增強(qiáng)型的工作方式?
工傷10級應(yīng)該賠多少錢
4g手機(jī)怎么視頻通話中,如何進(jìn)行視頻通話
香樟的播種育苗
病害知識-瓜葉菊白粉病
夏日飲茶誤區(qū)多
安卓系統(tǒng)怎么關(guān)閉推送,android個推怎么關(guān)閉推送
學(xué)生買得起的筆記本電腦(筆記本電腦推薦學(xué)生用便宜)
新婚主持人臺詞大全
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos