|
3.4 74HC138三八譯碼器的應用 在設計單片機電路的時候,單片機的I/O口數量是有限的,有時滿足不了產品需求,比如STC89C52一共有32個I/O口,但是為了控制更多的器件,就可以使用一些外圍的數字芯片,這類數字芯片由簡單的輸入邏輯來控制輸出邏輯,比如74HC138這個三八譯碼器,圖3-11是74HC138在Kingst51開發板上的一個應用。
3-11.png (45.46 KB, 下載次數: 0)
下載附件
2026-3-18 10:00 上傳
圖3-11 74HC138應用原理圖 從名字來分析,三八譯碼器就是把3種輸入狀態翻譯成8種輸出狀態。從圖3-11能看出,74HC138的1~6一共是6個輸入引腳,但是其中4、5、6這三個引腳是使能引腳。這三個引腳如果不符合芯片規定的輸入要求,不管輸入的1、2、3引腳是什么電平狀態,7到15引腳總是輸出高電平。所以根據器件使用手冊說明,要想讓74HC138正常工作,ENLED接的4腳和5腳必須輸入低電平,ADDR3接的6腳必須輸入高電平,這兩個位置都是使能控制端口。不知道是否記得前邊點亮LED程序有這么兩條控制74HC138使能的語句: ENLED = 0;ADDR3 = 1; 這類邏輯芯片,大多都是有使能引腳的,使能符合要求的前提下,就可以研究控制邏輯了。對于數字器件的引腳,如果一個引腳輸入的時候,有0和1兩種狀態;對于兩個引腳輸入的時候,就會有00、01、10、11這四種狀態了,那么對于3個輸入的時候,就會出現8種狀態了,大家可以看下邊的這個真值表——圖3-12,其中輸入是A2、A1、A0的順序,輸出是從Y7、Y6……Y0的順序。
3-12.png (22.5 KB, 下載次數: 0)
下載附件
2026-3-18 10:01 上傳
圖3-12 74HC138真值表 從圖3-12可以看出,任一輸入狀態下,只有一個輸出引腳是低電平,其他的引腳都是高電平。在前面的電路中已經看到,8個LED小燈的總開關三極管Q16基極的控制端是LEDS6,也就是Y6輸出一個低電平的時候,可以開通三極管Q16,從右側的希望LEDS5輸出低電平這樣的結果,可以推導出左側輸入端A2、A1、A0的輸入狀態應該是110,如圖3-13。
3-13.png (53.71 KB, 下載次數: 0)
下載附件
2026-3-18 10:01 上傳
圖3-13 LED小燈整體電路圖 那么再整體捋一遍點亮LED小燈的過程,首先看74HC138,要讓LEDS6為低電平才能導通三極管Q16,所以 ENLED = 0;ADDR3 = 1; 保證74HC138使能。 ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; 保證了三極管Q16這個開關開通,5V電源加到LED上。 通過P0口控制,讓P0.0引腳等于0,就是DB0等于0,那么這樣在這一排共8個LED小燈當中,只有最右側的小燈和5V之間有壓差,有壓差就會有電流通過,LED2就會發光了。 從原理圖左上角P0口總線可以看出,74HC138的ADDR0 、ADDR1、ADDR2、 ADDR3和ENLED接在P1.0到P1.3引腳上,如圖3-14所示。
3-14.png (110.45 KB, 下載次數: 0)
下載附件
2026-3-18 10:01 上傳
圖3-14 單片機引腳圖 3.5 LED閃爍程序點亮LED小燈的程序就是LED = 0。熄滅小燈的程序是LED = 1。點亮和熄滅都會了,那么如果在亮和滅中間加個延時,反復不停的點亮和熄滅小燈,就成了閃爍了。 首先復習一下Keil寫程序的過程,建立工程-->保存工程-->建立文件-->添加文件到工程-->編寫程序-->編譯-->下載程序。 LED閃爍程序如下所示。 #include<reg52.h> sbit LED = P0^0; sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() //void即函數類型 { //以下為聲明語句部分 unsigned int i = 0; //定義一個無符號整型變量i,并賦初值0 //以下為執行語句部分 ENLED = 0; //U3、U4兩片74HC138總使能 ADDR3 = 1; //使能U3使之正常輸出 ADDR2 = 1; //經U3的Y6輸出開啟三極管Q16 ADDR1 = 1; ADDR0 = 0; while (1) { LED = 0; //點亮小燈 for (i=0; i<30000; i++); //延時一段時間 LED = 1; //熄滅小燈 for (i=0; i<30000; i++); //延時一段時間 } } 把這個程序編譯一下,下載到單片機里,就會發現LED2這個小燈會閃爍了。 3.6 練習題1、深刻理解電容的意義,并且在今后的學習電路過程中要多多注意并且參考別人電路中所用到的去耦電路,積累經驗。 2、完全背過三極管的導通原理,并且可以熟練掌握NPN和PNP這兩種三極管在開關特性下的應用方法。 3、學習并且掌握74HC138的應用原理,能夠在設計電路中正確應用。 4、能夠獨立實現點亮開發板上的每一個小燈,并且可以實現小燈點亮和滅以及閃爍功能。
|