;-------------------------------------------------------------
;单片机驱动74LS164/74HC164的一个示例
;74HC164是串入并出的数据移位模块,在其时钟端(CK)每送入一个时钟
;脉冲,则其当前的数据线(DT)状态即被移位至输出端输出,164的数据
;在时钟上升沿被锁存,输出由A向H依次移位
;本例中应用了我站开发的位操作插件以方便进行IO位线置位及清位操作
;欲进一步了解该插件应用,请点击这里下载参考:
;点击这里直接下载该示例源码
;------------------------------------------------------------
;送一个字节数据到164的过程
;R0----要送出的数据/指令字节
;-----------------------------------------------------------
SENDTO164:
PUSH R0
PUSH R1
CLRBIT CK_164 ;set clock line is low
NOP
NOP
CLRBIT DT_164 ;set data line is low
LD R1,#08H
SENDA_164:
RLC R0 ;right shift R0,bit0 into C
SETBIT DT_164 ;set data line
JR C,SENDB_164 ;if C=1,skip
CLRBIT DT_164 ;clear data line
SENDB_164:
NOP
NOP
SETBIT CK_164 ;send one clock pulse
NOP
NOP
NOP
CLRBIT CK_164 ;
DEC R1
JR NZ,SENDA_164
SEND164_BACK:
POP R1
POP R0
RET
;---------------------------------------------------------- |
相关备注: |
无 |
|