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