74HC595是串入并出移位寄存器,驅動能力強,并且可以多片級聯(lián)。下面是51單片機驅動兩片74HC595級聯(lián)的示例程序:
;;595A:9----595B:14
;;595A:14-------------P3.7
;;595A:11---595B:11---P3.5
;;595A:12---595B:12---P3.4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;以下定義IO口
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DA2 EQU P3.7 ;595-14
LATCH2 EQU P3.4 ;595-12
CLK2 EQU P3.5 ;595-11
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;以下定義緩沖區(qū)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DATA595A EQU 4CH
DATA595B EQU 4BH
DELBUF EQU 4AH
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;操作模式
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV DATA595A, #0FEH
MOV DATA595B, #0EFH
LCALL DATA595
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;595子程序
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DATA595:
CLR DA2
CLR LATCH2
CLR CLK2
LCALL SDELAY
MOV A, DATA595B
MOV R7, #08H
MAIN595B1:
RLC A
MOV DA2, C
LCALL SDELAY
SETB CLK2
LCALL SDELAY
CLR CLK2
LCALL SDELAY
DJNZ R7, MAIN595B1
MOV A, DATA595A
MOV R7, #08H
MAIN595B2:
RLC A
MOV DA2, C
LCALL SDELAY
SETB CLK2
LCALL SDELAY
CLR CLK2
LCALL SDELAY
DJNZ R7, MAIN595B2
LCALL SDELAY
SETB LATCH2
LCALL SDELAY
LCALL SDELAY
CLR LATCH2
CLR DA2
CLR CLK2
RET
SDELAY:
MOV DELBUF, #18D
SDEL1:
NOP
NOP
DJNZ DELBUF, SDEL1
RET