74HC138三八譯碼器的應(yīng)用
在我們?cè)O(shè)計(jì)單片機(jī)電路的時(shí)候,單片機(jī)的IO口數(shù)量是有限的,有時(shí)并滿足不了我們的設(shè)計(jì)需求,比如我們的STC89C52RC一共是32個(gè)IO口,但是我們?yōu)榱丝刂聘嗟钠骷,就要使用一些外圍的?shù)字芯片,這種數(shù)字芯片由簡(jiǎn)單的輸入邏輯來(lái)控制輸出邏輯,比如74HC138這個(gè)三八譯碼器,圖1是74HC138在我們?cè)韴D上的一個(gè)應(yīng)用。
圖1 74HC138應(yīng)用原理圖
從這個(gè)名字來(lái)分析,三八譯碼器,就是把3種輸入狀態(tài)翻譯成8種輸出狀態(tài)。從圖1所看出來(lái)的,74HC138一共有1~6一共是6個(gè)輸入引腳,但是其中4、5、6這三個(gè)引腳是使能引腳。使能引腳和我們前邊講74HC245的OE引腳是一樣的,這三個(gè)引腳如果不符合規(guī)定的輸入要求,Y0到Y(jié)7不管你輸入的1、2、3引腳是什么電平狀態(tài),總是高電平。所以我們要想這個(gè)74HC138正常工作,ENLED那個(gè)輸入位置必須輸入低電平,ADDR3位置必須輸入高電平,這兩個(gè)位置都是使能控制端口。不知道大家是否記得我們第二課的程序有這么兩句ENLED = 0;ADDR3 = 1;就是控制使這個(gè)74HC138使能的。
這類邏輯芯片,大多都是有使能引腳的,使能符合要求了,那下面就要研究邏輯控制了。對(duì)于數(shù)字器件的引腳,如果一個(gè)引腳輸入的時(shí)候,有0和1兩種狀態(tài);對(duì)于兩個(gè)引腳輸入的時(shí)候,就會(huì)有00,01,10,11這四種狀態(tài)了,那么對(duì)于3個(gè)輸入的時(shí)候,就會(huì)出現(xiàn)8種狀態(tài)了,大家可以看下邊的這個(gè)真值表——圖,其中輸入是A2,A1,A0的順序,輸出是從Y0,Y1....Y7的順序。
圖2 74HC148真值表
從圖2可以看出,任一輸入狀態(tài)下,只有一個(gè)輸出引腳是低電平,其他的引腳都是高電平。我們清楚的知道,8個(gè)LED小燈的總開(kāi)關(guān)三極管Q16基極的控制端是LEDS6,也就是Y6輸出一個(gè)低電平的時(shí)候,可以開(kāi)通三極管Q16,從右側(cè)的希望輸出的結(jié)果,我們可以推導(dǎo)出我們的A2,A1,A0的輸入狀態(tài)應(yīng)該是110,那我們?cè)賮?lái)看下原理圖3。
圖3 點(diǎn)亮LED小燈整體示意圖
那么我們?cè)谡w捋一遍點(diǎn)亮LED小燈的過(guò)程,首先看74HC138,我們要讓LEDS6為低電平才能導(dǎo)通三極管Q16,所以ENLED = 0;ADDR3 = 1;保證74HC138使能。然后ADDR2 = 1; ADDR1 = 1; ADDR0 = 0;這樣保證了三極管Q16這個(gè)開(kāi)關(guān)開(kāi)通,5V電源加到LED上。
而74HC245左側(cè)是通過(guò)P0口控制,我們讓P0.0引腳等于0,就是DB_0等于0,而右側(cè)DB0等于DB_0的狀態(tài),也是0,那么這樣在這一排共8個(gè)LED小燈當(dāng)中,只有最右側(cè)的小燈和5V之間有壓差,有壓差就會(huì)有電流通過(guò),有電流通過(guò)我們的LED2就會(huì)發(fā)光。
74HC245左側(cè)我們可以看出來(lái),是直接接到P0口上的,而74HC138的ADDR0 ~ ADDR3接在何處呢?
圖4 跳線帽接口部分
跳線帽是大家以后要常用的一個(gè)器件,他的作用就是起到導(dǎo)線的作用,我們可以通過(guò)跳線帽來(lái)實(shí)現(xiàn)連接線的切換。
圖5 跳線實(shí)物圖
大家看,跳線帽本身可以占2個(gè)針的位置,現(xiàn)在是把右側(cè)和中間的針插到了一起,這樣實(shí)現(xiàn)的就是圖4中的P1.0和ADDR0連接到一起,P1.1和ADDR1接一起,P1.2和ADDR2接一起,P1.3和ADDR3接一起。
編輯:admin 最后修改時(shí)間:2018-05-08