51單片機與74HC164靜態(tài)顯示接口
MCS-51單片機串行口方式0為移位寄存器方式,外接6片74LS164作為6位LED顯示器的靜態(tài)顯示接口,把8031的RXD作為數(shù)據(jù)輸出線,TXD作為移位時鐘脈沖。74LS164為TTL單向8位移位寄存器,可實現(xiàn)串行輸入,并行輸出。其中A、B(第1、2腳)為串行數(shù)據(jù)輸入端,2個引腳按邏輯與運算規(guī)律輸入信號,共一個輸入信號時可并接。T(第8腳)為時鐘輸入端,可連接到串行口的TXD端。每一個時鐘信號的上升沿加到T端時,移位寄存器移一位,8個時鐘脈沖過后,8位二進制數(shù)全部移入74LS164中。R(第9腳)為復(fù)位端,當(dāng)R=0時,移位寄存器各位復(fù)0,只有當(dāng)R=1時,時鐘脈沖才起作用。Q1…Q8(第3-6和10-13引腳)并行輸出端分別接LED顯示器的hg···a各段對應(yīng)的引腳上。在給出了8個脈沖后,最先進入74LS164的第一個數(shù)據(jù)到達了最高位,然后再來一個脈沖會有什么發(fā)生呢?再來一個脈沖,第一個脈沖就會從最高位移出,搞清了這一點,下面讓我們來看電路,6片7LS164首尾相串,而時鐘端則接在一起,這樣,當(dāng)輸入8個脈沖時,從單片機RXD端輸出的數(shù)據(jù)就進入到了第一片74LS164中了,而當(dāng)?shù)诙€8個脈沖到來后,這個數(shù)據(jù)就進入了第二片74LS164,而新的數(shù)據(jù)則進入了第一片74LS164,這樣,當(dāng)?shù)诹鶄€8個脈沖完成后,首次送出的數(shù)據(jù)被送到了最左面的164中,其他數(shù)據(jù)依次出現(xiàn)在第一、二、三、四、五片74LS164中。
驅(qū)動程序:
入口:把要顯示的數(shù)分別放在顯示緩沖區(qū)60H-65H共6個單元中,并且分別對應(yīng)各個數(shù)碼管LED0-LED5。
出口:將預(yù)置在顯示緩沖區(qū)中的6個數(shù)成相應(yīng)的顯示字形碼,然后輸出到顯示器中顯示。
顯示程序如下:
DISP:
MOV
MOV
MOV
LOOP:
MOV
MOVC
MOV
DELAY:
CLR
DEC
DJNZ
RET
SETTAB:
DB
;
測試用主程序
ORG
AJMP
ORG
START:
MOV
MOV
MOV
MOV
MOV
MOV
LCALL
SJMP
如果按圖示數(shù)碼管排列,則以上主程序?qū)@示的是543210,想想看,如果要顯示012345該怎樣送數(shù)?
你們只接了一個數(shù)碼管,想想應(yīng)該很容易吧。
74LS165
評論