單片機(jī)中74HC138三八譯碼器的應(yīng)用
在我們?cè)O(shè)計(jì)單片機(jī)電路的時(shí)候,單片機(jī)的 IO 口數(shù)量是有限的,有時(shí)并滿足不了我們的設(shè)計(jì)需求,比如我們的 STC89C52 一共有 32 個(gè) IO 口,但是我們?yōu)榱丝刂聘嗟钠骷?,就要使用一些外圍的?shù)字芯片,這種數(shù)字芯片由簡單的輸入邏輯來控制輸出邏輯,比如 74HC138這個(gè)三八譯碼器,圖 3-15 是 74HC138 在我們?cè)韴D上的一個(gè)應(yīng)用。
圖 3-15 74HC138 應(yīng)用原理圖
從這個(gè)名字來分析,三八譯碼器,就是把 3 種輸入狀態(tài)翻譯成 8 種輸出狀態(tài)。從圖 3-15所能看出來的,74HC138 有 1~6 一共是 6 個(gè)輸入引腳,但是其中 4、5、6 這三個(gè)引腳是使能引腳。使能引腳和我們前邊講 74HC245 的 OE 引腳是一樣的,這三個(gè)引腳如果不符合規(guī)定的輸入要求,Y0 到 Y7 不管你輸入的 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è)真值表——圖 3-16,其中輸入是 A2、A1、A0 的順序,輸出是從Y0、Y1......Y7 的順序。
圖 3-16 74HC138 真值表
從圖 3-16 可以看出,任一輸入狀態(tài)下,只有一個(gè)輸出引腳是低電平,其他的引腳都是高電平。在前面的電路中我們已經(jīng)看到,8 個(gè) LED 小燈的總開關(guān)三極管 Q16 基極的控制端是LEDS6,也就是 Y6 輸出一個(gè)低電平的時(shí)候,可以開通三極管 Q16,從右側(cè)的希望輸出的結(jié)果,我們可以推導(dǎo)出我們的 A2、A1、A0 的輸入狀態(tài)應(yīng)該是 110,如圖 3-17。
圖 3-17 LED 小燈整體電路圖
那么我們?cè)僬w捋一遍點(diǎn)亮 LED 小燈的過程,首先看 74HC138,我們要讓 LEDS6 為低電平才能導(dǎo)通三極管 Q16,所以 ENLED = 0;ADDR3 = 1;保證 74HC138 使能。然后 ADDR2 =1; ADDR1 = 1; ADDR0 = 0;這樣保證了三極管 Q16 這個(gè)開關(guān)開通,5V 電源加到 LED 上。
而 74HC245 左側(cè)是通過 P0 口控制,我們讓 P0.0 引腳等于 0,就是 DB_0 等于 0,而右側(cè) DB0 等于 DB_0 的狀態(tài),也是 0,那么這樣在這一排共 8 個(gè) LED 小燈當(dāng)中,只有最右側(cè)的小燈和 5V 之間有壓差,有壓差就會(huì)有電流通過,有電流通過我們的 LED2 就會(huì)發(fā)光了。
74HC245 左側(cè)我們可以看出來,是直接接到 P0 口上的,而 74HC138 的 ADDR0 ~ ADDR3接在何處呢?來看圖 3-18。
圖 3-18 顯示譯碼與步進(jìn)電機(jī)的選擇跳線
跳線是大家以后經(jīng)常會(huì)接觸到的一個(gè)器件,它就是 2 根或者 3 根靠在一起的排針,然后可以用一個(gè)叫作跳線帽的東西連接其相鄰的 2 根針。它的作用就是起到導(dǎo)線的作用,我們可以通過跳線帽來實(shí)現(xiàn)連接線的切換。如圖 3-19。
圖3-19 跳線實(shí)物圖
從圖中可以看出,跳線帽本身可以占 2 個(gè)針的位置,現(xiàn)在是把右側(cè)和中間的針連到了一起,這樣實(shí)現(xiàn)的就是圖 3-18 中的 P1.0 和 ADDR0 連接到一起、P1.1 和 ADDR1 接一起、P1.2和 ADDR2 接一起、P1.3 和 ADDR3 接一起。這樣就可以透徹理解我們第二課的程序了。
好了,大家認(rèn)真再回顧一下我們第二課的那個(gè)程序,再領(lǐng)悟一下這幾個(gè)數(shù)字器件的用法。