引入幾個(gè)概念:
1. 真值表
參見(jiàn)74LS373的PDF的第2頁(yè):
Dn LE OE On
H H L H
L H L L
X L L Qo
X X H Z
這個(gè)就是真值表,表示這個(gè)芯片在輸入和其它的情況下的輸出情況。
每個(gè)芯片的數(shù)據(jù)手冊(cè)(datasheet)中都有真值表。
布爾邏輯比較簡(jiǎn)單,在此不贅述;
2. 高阻態(tài)
就是輸出既不是高電平,也不是低電平,而是高阻抗的狀態(tài);在這種狀態(tài)下,可以
多個(gè)芯片并聯(lián)輸出;但是,這些芯片中只能有一個(gè)處于非高阻態(tài)狀態(tài),否則會(huì)將芯
片燒毀;
高阻態(tài)的概念在RS232和RS422通訊中還可以用到。
3. 數(shù)據(jù)鎖存
當(dāng)輸入的數(shù)據(jù)消失時(shí),在芯片的輸出端,數(shù)據(jù)仍然保持;
這個(gè)概念在并行數(shù)據(jù)擴(kuò)展中經(jīng)常使用到。
4. 數(shù)據(jù)緩沖
加強(qiáng)驅(qū)動(dòng)能力。74LS244/74LS245/74LS373/74LS573都具備數(shù)據(jù)緩沖的能力。
OE:output_enable,輸出使能;
LE:latch_enable,數(shù)據(jù)鎖存使能,latch是鎖存的意思;
Dn:第n路輸入數(shù)據(jù);
On:第n路輸出數(shù)據(jù);
再看這個(gè)真值表,意思如下:
第四行:當(dāng)OE=1是,無(wú)論Dn、LE為何,輸出端為高阻態(tài);
第三行:當(dāng)OE=0、LE=0時(shí),輸出端保持不變;
第二行第一行:當(dāng)OE=0、LE=1時(shí),輸出端數(shù)據(jù)等于輸入端數(shù)據(jù);
結(jié)合下面的波形圖,在實(shí)際應(yīng)用的時(shí)候是這樣做的:
a. OE=0;
b. 先將數(shù)據(jù)從單片機(jī)的口線上輸出到Dn;
c. 再將LE從0->1->0
d. 這時(shí),你所需要輸出的數(shù)據(jù)就鎖存在On上了,輸入的數(shù)據(jù)在變化也影響不到輸
出的數(shù)據(jù)了;實(shí)際上,單片機(jī)現(xiàn)在在忙著干別的事情,串行通信、掃描鍵盤(pán)……單
片機(jī)的資源有限啊。
在單片機(jī)按照RAM方式進(jìn)行并行數(shù)據(jù)的擴(kuò)展時(shí),使用movx @dptr, A這條指令時(shí),這
些時(shí)序是由單片機(jī)來(lái)實(shí)現(xiàn)的。
后面的表格中還有需要時(shí)間的參數(shù),你不需要去管它,因?yàn)檫@些參數(shù)都是幾十ns級(jí)
別的,對(duì)于單片機(jī)在12M下的每個(gè)指令周期最小是1us的情況下,完全可以實(shí)現(xiàn);如
果是你自己來(lái)實(shí)現(xiàn)這個(gè)邏輯,類(lèi)似的指令如下:
mov P0,A;將數(shù)據(jù)輸出到并行數(shù)據(jù)端口
clr LE
setb LE
clr LE ;上面三條指令完成LE的波形從0->1->0的變化
74ls573跟74LS373邏輯上完全一樣,只不過(guò)是管腳定義不一樣,數(shù)據(jù)輸入和輸出端
各在一側(cè),PCB容易走線;所以大家都喜歡使用這個(gè)芯片。
4、 74LS244 – 數(shù)據(jù)緩沖器