欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 234|回復: 0
打印 上一主題 下一主題
收起左側

第三章 硬件基礎知識學習3.4 3.5 3.6

[復制鏈接]
跳轉到指定樓層
樓主
3.4  74HC138三八譯碼器的應用
在設計單片機電路的時候,單片機的I/O口數量是有限的,有時滿足不了產品需求,比如STC89C52一共有32I/O口,但是為了控制更多的器件,就可以使用一些外圍的數字芯片,這類數字芯片由簡單的輸入邏輯來控制輸出邏輯,比如74HC138這個三八譯碼器,圖3-1174HC138Kingst51開發板上的一個應用。

         圖3-11  74HC138應用原理圖
從名字來分析,三八譯碼器就是把3種輸入狀態翻譯成8種輸出狀態。從圖3-11能看出,74HC13816一共是6個輸入引腳,但是其中45、6這三個引腳是使能引腳。這三個引腳如果不符合芯片規定的輸入要求,不管輸入的1、2、3引腳是什么電平狀態,715引腳總是輸出高電平。所以根據器件使用手冊說明,要想讓74HC138正常工作,ENLED接的4腳和5必須輸入低電平,ADDR3接的6必須輸入高電平,這兩個位置都是使能控制端口。不知道是否記得前邊點亮LED程序有這么兩條控制74HC138使能的語句:
ENLED = 0;ADDR3 = 1;
這類邏輯芯片,大多都是有使能引腳的,使能符合要求的前提下,就可以研究控制邏輯了。對于數字器件的引腳,如果一個引腳輸入的時候,有01兩種狀態;對于兩個引腳輸入的時候,就會有00、011011這四種狀態了,那么對于3個輸入的時候,就會出現8種狀態了,大家可以看下邊的這個真值表——圖3-12,其中輸入是A2、A1A0的順序,輸出是從Y7、Y6……Y0的順序。

         圖3-12  74HC138真值表
從圖3-12可以看出,任一輸入狀態下,只有一個輸出引腳是低電平,其他的引腳都是高電平。在前面的電路中已經看到,8LED小燈的總開關三極管Q16基極的控制端是LEDS6,也就是Y6輸出一個低電平的時候,可以開通三極管Q16,從右側的希望LEDS5輸出低電平這樣的結果,可以推導出左側輸入端A2、A1、A0的輸入狀態應該是110,如圖3-13

        圖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,那么這樣在這一排共8LED小燈當中,只有最右側的小燈和5V之間有壓差,有壓差就會有電流通過,LED2就會發光了。
從原理圖左上角P0口總線可以看出,74HC138ADDR0 、ADDR1、ADDR2、 ADDR3ENLED接在P1.0P1.3引腳上,如圖3-14所示。

             圖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;   //U3U4兩片74HC138總使能
    ADDR3 = 1;   //使能U3使之正常輸出
    ADDR2 = 1;   //U3Y6輸出開啟三極管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、完全背過三極管的導通原理,并且可以熟練掌握NPNPNP這兩種三極管在開關特性下的應用方法。
3、學習并且掌握74HC138的應用原理,能夠在設計電路中正確應用。
4、能夠獨立實現點亮開發板上的每一個小燈,并且可以實現小燈點亮和滅以及閃爍功能。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表