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