金沙灘51微控制器74HC138 三八解碼器的應用

2021-09-11 20:00:44 字數 1471 閱讀 3357

在我們設計微控制器電路的時候,微控制器的 io 口數量是有限的,有時並滿足不了我們的設計需求,比如我們的 stc89c52 一共有 32 個 io 口,但是我們為了控制更多的器件,就要使用一些外圍的數字晶元,這種數字晶元由簡單的輸入邏輯來控制輸出邏輯,比如 74hc138這個三八解碼器,圖 3-15 是 74hc138 在我們原理圖上的乙個應用。

從這個名字來分析,三八解碼器,就是把 3 種輸入狀態翻譯成 8 種輸出狀態。從圖 3-15所能看出來的,74hc138 有 1~6 一共是 6 個輸入引腳,但是其中 4、5、6 這三個引腳是使能引腳。這三個引腳如果不符合規定的輸入要求,y0 到 y7 不管你輸入的 1、2、3 引腳是什麼電平狀態,總是高電平。所以我們要想讓這個 74hc138 正常工作,enled 那個輸入位置必須輸入低電平,addr3 位置必須輸入高電平,這兩個位置都是使能控制埠。我們的程式有這麼兩句 enled = 0;addr3 = 1;就是控制使這個 74hc138 使能的。

這類邏輯晶元,大多都是有使能引腳的,使能符合要求了,那下面就要研究控制邏輯了。對於數字器件的引腳,如果乙個引腳輸入的時候,有 0 和 1 兩種狀態;對於兩個引腳輸入的時候,就會有 00、01、10、11 這四種狀態了,那麼對於 3 個輸入的時候,就會出現八種狀態了,大家可以看下邊的這個真值表——圖 3-16,其中輸入是 a2、a1、a0 的順序,輸出是從y0、y1……y7 的順序。

從圖 3-16 可以看出,任一輸入狀態下,只有乙個輸出引腳是低電平,其他的引腳都是高

電平。在前面的電路中我們已經看到,8 個 led 小燈的總開關三極體 q16 基極的控制端是leds6,也就是 y6 輸出乙個低電平的時候,可以開通三極體 q16,從右側的希望輸出的結果,我們可以推導出我們的 a2、a1、a0 的輸入狀態應該是110,如圖 3-17。

那麼我們再整體捋一遍點亮 led 小燈的過程,首先看 74hc138,我們要讓 leds6 為低電平才能導通三極體 q16,所以 enled = 0;addr3 = 1;保證 74hc138 使能。然後addr2 = 1; addr1 = 1; addr0 = 0;這樣保證了三極體 q16 這個開關開通,5v 電源加到 led 上。而 74hc245 左側是通過 p0 口控制,我們讓 p0.0 引腳等於 0,就是 db_0 等於 0,而右側 db0 等於 db_0 的狀態,也是 0,那麼這樣在這一排共 8 個 led 小燈當中,只有最右側的小燈和 5v 之間有壓差,有壓差就會有電流通過,有電流通過我們的 led2 就會發光了。

金沙灘51微控制器定時器

標準的 51 微控制器內部有 t0 和 t1 這兩個定時器,t 就是 timer 的縮寫。t0和t1的控制由兩個8位特殊功能暫存器完成 乙個為定時器的方式選擇暫存器tmod用於確定定時器還是計數器工作模式 另乙個叫做定時器控制暫存器tcon,可以決定定時器或計數器的啟動 停止及進行中斷控制。第一步 ...

金沙灘51微控制器數碼管

數碼管共有 a b c d e f g dp 這麼 8 個段,而實際上,這 8 個段每一段都是乙個 led 小燈,所以乙個數碼管就是由 8個 led 小燈組成的。數碼管分為共陽和共陰兩種,共陰數碼管就是 8 只 led 小燈的陰極是連線在一起的,陰極是公共端,由陽極來控制單個小燈的亮滅。同理,共陽數...

金沙灘51微控制器點亮乙個LED燈

我用的開發板型號是金沙灘51微控制器 ide是keil4,普通的c語言環境。include 包含特殊功能暫存器定義的標頭檔案 sbit led p0 0 sbit addr0 p1 0 sbit addr1 p1 1 sbit addr2 p1 2 sbit addr3 p1 3 sbit enle...