單片機(jī)驅(qū)動74HC164的程序設(shè)計應(yīng)用實例
;-------------------------------------------------------------
;單片機(jī)驅(qū)動74LS164/74HC164的一個示例
;74HC164是串入并出的數(shù)據(jù)移位模塊,在其時鐘端(CK)每送入一個時鐘
;脈沖,則其當(dāng)前的數(shù)據(jù)線(DT)狀態(tài)即被移位至輸出端輸出,164的數(shù)據(jù)
;在時鐘上升沿被鎖存,輸出由A向H依次移位
;本例中應(yīng)用了我站開發(fā)的位操作插件以方便進(jìn)行IO位線置位及清位操作
;------------------------------------------------------------
;送一個字節(jié)數(shù)據(jù)到164的過程
;R0----要送出的數(shù)據(jù)/指令字節(jié)
;-----------------------------------------------------------
SENDTO164:
PUSH R0
PUSH R1
CLRBIT CK_164 ;setcLOCklineislow
NOP
NOP
CLRBIT DT_164 ;setdatalineislow
LD R1,#08H
SENDA_164:
RLC R0 ;rightshiftR0,bit0intoC
SETBIT DT_164 ;setdataline
JR C,SENDB_164 ;ifC=1,skip
CLRBIT DT_164 ;cleardataline
SENDB_164:
NOP
NOP
SETBIT CK_164 ;sendoneclockpulse
NOP
NOP
NOP
CLRBIT CK_164 ;
DEC R1
JR NZ,SENDA_164
SEND164_BACK:
POP R1
POP R0
RET
;----------------------------------------------------------