藍橋杯單片機需要使用用鎖存器來充分利用單片機接口資源。下面我來講解藍橋杯單片機如何打開相對應的鎖存器來控制對應功能。
單片機應用鎖存器的功能有LED燈控制,繼電器控制,蜂鳴器控制,數碼管顯示控制。以LED燈控制為例
根據上面原理圖得,當使能端Y4C為高電平時,Q端輸出隨D端輸入而改變;使能端Y4C為低電平(單片機中「0」為低電平,「1」為高電平)時,輸出進入高阻態,連接LED燈的電路相當於斷開。
使能端Y4C的電平高低是由以Y4與WR為輸入端的或非門控制的。如下圖:
Y4C電壓計算公式為:
由於WR端接GND,所以WR=0。由上述公式得:Y4C要想得到高電平,激活74HC02鎖存器,Y4就必須為低電平,Y4又是通過74HC138解碼器實現的,74HC138解碼器原理圖如下:
138解碼器通過P27~P25三個輸入埠的電平高低來控制Y0 ~Y7的輸出,當Y0 ~Y7任一個輸出為低電平時,才為有效輸出。比如,P27~ P25為100時,轉換為二進位為4,則Y4輸出低電平,同樣,若要使Y5輸出低電平,P27~ P25的輸入就應該為101,依次類推。晶片原理請自行閱讀74HC138晶片資料。所以,電路通過控制138解碼器的P27~P25的輸入來控制各個鎖存器的開關。在電路原理圖中,LED燈是通過Y4C這個埠的鎖存器來控制的,所以,要想進行LED燈的相關操作,必須要先打開鎖存器Y4C。
以下是操作各種外設的程序:
1. LED燈控制(LED燈接口置「1」時LED燈熄滅,LED燈接口置「0」時LED燈點亮)
P2 = ((P2&0x1f)|0x80);
P0 = 0x00; //8個LED全亮
P2 &= 0x1f;
2.蜂鳴器與繼電器(蜂鳴器與繼電器接口置「1」時打開,LED燈接口置「0」時LED燈關閉)
P2 = ((P2&0x1f)|0xa0);
P0 = 0x00; //蜂鳴器與繼電器關閉
P2 &= 0x1f;
3.數碼管位選與段選(位選時置「1」時打開,置「0」時關閉;段選時置「1」時關閉,置「0」時打開)
P2 = ((P2&0x1f)|0xc0);
P0 = 0x01; /*數碼管位選,打開第一位數碼管*/
P2 &= 0x1f;
P2 = ((P2&0x1f)|0xc0);
P0 = 0xc0; /*數碼管段選,數碼管顯示數字0*/
P2 &= 0x1f;
數碼管位選是你想讓哪幾個數碼管亮,段選是讓你位選的數碼管點亮什麼內容(1,2,3,4,5,6,7,8,9……)