📄 595.txt
字号:
74HC595具有一个8位串行输入并行输出的移位寄存器和一个8位输出锁存器。
由于占用MCU的I/o口线少,硬件结构简单,因此应用广泛。
一。应用原理
以点亮LED数码管显示“0”为例!见图一
1. 并口输出: 共用P1八个口,输出用一条指令MOV P1,#3FH即可。
2. 串并输出: 共用P1.0-P1.2三个口。但输出必须先将3FH逐位移入
595移位寄存器内(即串入),再锁存输出(即并出)。
注意:只有数据锁存后,3FH才出现在595的Q1-Q7上,
LED数码管显示“0”。
移位方式:1-1-1-1-1-1-0-0,由低到高。
二。主要引脚
14脚:串行数据输入端接MCU-P1.0。
11脚:移位时钟接MCU-P1.2。
12脚:输出锁存器的送入信号MCU-P1.1。
三。应用三步曲
第一步:目的:将要准备输入的位数据移入74HC595数据输入端上。
方法:送位数据到 P1.0。
第二步:目的:将位数据逐位移入74HC595,即数据串入
方法:P1.2产生一上升沿,将P1.0上的数据移入74HC595中.从低到高。
第三步:目的:并行输出数据。即数据并出
方法:P1.1产生一上升沿,将由P1.0上已移入数据寄存器中的数据
送入到输出锁存器。
说明: 从上可分析:从P1.2产生一上升沿(移入数据)和P1.1产生一上升沿
(输出数据)是二个独立过程,实际应用时互不干扰。即可输出数据的
同时移入数据。
四。编程方法
如:R0中存放3FH,LED数码管显示“0”
;*****接口定义:
DS_595 EQU P1.0 ;串行数据输入(595-14)
CH_595 EQU P1.2 ;移位时钟脉冲(595-11)
CT_595 EQU P1.1 ;输出锁存器控制脉冲(595-12)
;*****将移位寄存器内的数据锁存到输出寄存器并显示
OUT_595:
CALL WR_595 ;调用移位寄存器接收一个字节数据子程序
CLR CT_595 ;拉低锁存器控制脉冲
NOP
NOP
SETB CT_595 ;上升沿将数据送到输出锁存器,LED数码管显示“0”
NOP
NOP
CLR CT_595
RET
;*****移位寄存器接收一个字节(如3FH)数据子程序
WR_595:
MOV R4,#08H ;一个字节数据(8位)
MOV A,R0 ;R0中存放要送入的数据3FH
LOOP:
;第一步:准备移入74HC595数据
RLC A ;数据移位
MOV DS_595,C ;送数据到串行数据输入端上(P1.0)
;第二步:产生一上升沿将数据移入74HC595
CLR CH_595 ;拉低移位时钟
NOP
NOP
setb CH_595 ;上升沿发生移位(移入一数据)
DJNZ R4,LOOP ;一个字节数据没移完继续
RET
五。级联的应用
74HC595主要应用于点阵屏,以16*16点阵为例:传送一行共二个字节(16位)
如:发送的是06H和3FH。其方法是:
1.先送数据3FH,后送06H。
2.通过级联串行输入后,3FH在IC2内,06H在IC1内。应用如图二
3.接着送锁存时钟,数据被锁存并出现在IC1和IC2的并行输出口上显示。
编程方法:
数据在30H和31H中
;MOV 30H,#3FH
;MOV 31H,#06H
;*****接口定义:
DS_595 EQU P1.0 ;串行数据输入(595-14)
CH_595 EQU P1.2 ;移位时钟脉冲(595-11)
CT_595 EQU P1.1 ;输出锁存器控制脉冲(595-12)
;*****串行输入16位数据
MOV R0,30H
CALL WR_595 ;串行输入3FH
nop
NOP
MOV R0,31H
CALL WR_595 ;串行输入06H
NOP
NOP
SETB CT_595 ;上升沿将数据送到输出锁存器,显示
NOP
NOP
CLR CT_595
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -