聯係yp街機
  • 深圳市yp街機科技有限公司

    熱線1(舒先生)

    手機:13926579481 

    QQ:2108725098

    熱線2(彭小姐)

    手機:13714275397  

    QQ:1261192466

    電話:0755-29080943

    傳真:0755-29080943

    深圳總部地址:深圳市龍華新區清祥路1號寶能科技園6棟A座9樓F單元  

    深圳工廠:深圳市寶安區石岩街道龍騰社區石環路133號徑貝工業區廠房三層

    東莞一廠:東莞市塘廈第一工業區18號

新聞詳細
  • 74HC164的應用
    新聞分類:公司新聞   作者:admin    發布於:2014-09-164    文字:【】【】【

    在美的現有的產品中,74HC164(下簡稱164)扮演著重要的角色。它在以下三個方麵有著典型的應用:

    1) 八段數碼管顯示;

    2) LED燈;

    3) 按鍵掃描。

     

    在其它的一些方麵上也有應用,比如顯示模塊。但應用的原理是一樣的。

     

        164是八位並行輸出移位寄存器。有兩個數據輸入端,一個時鍾輸入端,八個輸出端。yp街機一般將兩個輸入端連在一起當一個輸入端來用。當時鍾脈衝由“0”到“1”的跳變時,觸發移位,即上升沿觸發。當觸發時,八位並行輸出的最低位Q0得到數據端的信號(DATA),原Q0的數據上移一位,即Q1,依次類推,Q6上移到Q7Q7的數據遺失。

        因此,yp街機充分利用這點特性,來解決單片機口線緊張的問題。使用單片機的兩個I/O口,一個用作時鍾(CLK),一個用作數據(DATA),通過軟件模擬串行輸出,經過164移位,得到並行的輸出。164要求數據在CLK的上升沿之前有25ns的建立時間,上升沿之後要有5ns的保持時間。如果單片機使用4MHz的晶振,一條單字節指令的執行時間是1us,使用8MHz的晶振是0.5us,已經遠遠大於164要求的時間。所以在建立和保持數據上不用考慮是否164會“忙不過來”。

     

    在八段數碼管上的應用:

        現在一般使用兩個八位數碼管,組成一個可以顯示兩位數的顯示模塊。數碼管有8個信號引腳,一個片選引腳。當片選被選中,加在段碼管腳上的電平有效。yp街機使用單片機的四個I/O口來控製這兩個數碼管,兩個片選,一個DATA,一個CLK

        需要哪個數碼管顯示的時候,就由單片機讀取存儲在ROM中的碼表,由DATA發出串行數據,同時發出CLK信號。經過164移位,點亮數碼管。應用這個電路的目的是串並轉換,但是實際上並口的數據並不是一下子出來的,還是由低位到高位一位一位地出現。所以,這個移位的時間不能長,否則白白浪費了MCU的時間。有一點需要注意的是,如果先開數碼管片選,再移位,會出現數碼管閃爍的現象,而且顯示程序調用的越頻繁,移位速度越慢,這種現象越明顯。前麵分析,單片機的單指令執行時間大於164的最小轉換時間,所以即使不加任何延時指令,164也可以很好地完成轉換任務。同時,當轉換完成之後再開片選,並使之保持一段時間。

     

    LED顯示上的應用:

        還是利用串入並出的原理,隻不過是希望哪一個燈亮,就對哪個燈相應的位置0(使之點亮的電平)。同時接I/O口到三極管上,實現片選。如果燈的數量小於8個則不必。這樣相比將LED直接接到I/O上,需要多消耗MCU幾倍甚至十幾倍的執行時間,換來的是MCU口線的充分利用。當然,如果希望有若幹個燈同時亮,就由單片機的DATA發出相應位為0的串行數據,經過移位以後,使相應LED點亮。這裏也存在著片選先後的問題。和上麵一樣,如果先開片選再移位的話,移位速度快,幾個燈等於以同樣的亮度點亮;如果移位速度慢,則使小燈依次點亮。當移位完成,開片選之後,同樣需要使並行數據保持一段時間,再關片選。

     

    在按鍵掃描上的應用:

        同樣使為了節約口線,使用164進行按鍵掃描。一般的顯示板上的按鍵不會超過8個,所以不用加片選信號。僅僅由單片機的一個I/O口來讀按鍵公共端即可。原理是這樣的:按鍵公共端經過兩個電阻接VCC,兩個電阻之間抽頭到MCU。按鍵的另一段接164Q0~Q7。單片機發出一串數據如:“01111111”,便是在第一個按鍵一端發出低電平,如果按鍵被按下,則單片機檢測到的電平便是低電平;如果沒有被按下,則檢測到的是高電平。以此類推,單片機DATA以此對每隔按鍵置零,再由按鍵公共端讀取電平。

     

    綜合應用:

        在產品中,大部分情況是164同時肩負著數碼管,LED顯示和按鍵掃描的任務。這些任務的協調也很重要。硬件上需要對每個應用電路都加上片選,以保證在一個器件(如數碼管)使用164的時候不會幹擾到其它器件;同時按鍵需要加二極管以保證在顯示任務的時候不會出現按鍵的誤判(比如按鍵一端上是高電平,正好按鍵被按下,但是單片機讀的是高電平,仍然按沒有按下處理)。在軟件上要盡量使各個任務的時間分散,避免出現局部閃爍,或者靈敏度不高的情況。對模擬串口的程序需要盡量優化使之效率最高。在開一個片選之前需要關閉其它的片選,以防器件間的幹擾,良好的習慣是使用完一個器件之後就關掉它,使用的時候再開。還有一個需要注意的問題是模擬串口程序是否可重入的問題。雖然現在很多任務沒有使用中斷來調用此程序,但是不避免“意外”的情況,兩個任務同時調用模擬串口程序,使寄存器數據錯亂,產生錯誤。比較好的方法是盡量利用堆棧,而不是對同一個寄存器賦值(但同時也加大了RAM的使用量)。

    分享到:
    點擊次數:2002  更新時間:2014-09-16  【打印此頁】  【關閉

版權所有:2019 深圳市yp街機科技有限公司   粵ICP備17023442號-1  舒先生:13926579481  彭小姐:13714275397

電話:0755-29080943   深圳總部地址:深圳市龍華新區清祥路1號寶能科技園6棟A座9樓F單元  

電腦版 | 手機版