background image
宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商   www.MCU-Memory.com   STC12C5410AD 系列 1T 8051 单片机中文指南
133
附录 C:        用串行口扩展 I/O 接口
    STC12Cxxxx 串行口的方式 0 可用于 I/O 扩展。如果在应用系统中,串行口未被占用,那么将它用
来扩展并行 I/O 口是一种经济、实用的方法。
    在操作方式 0 时,串行口作同步移位寄存器,其波特率是固定的,为 f o s c / 1 2 (f o s c 为振荡器频
率)。数据由 RXD 端(P3.0)出入,同步移位时钟由 TXD 端(P3.1)输出。发送、接收的是 8 位数据,低位
在先。
    一、用 7 4 L S 1 6 5 扩展并行输入口
     下图是利用两片 74LS165 扩展二个 8 位并行输入口的接口电路图。
H G F E D C B A
3 14 13 12 11
S/L
CP
CC
SIN
7 4 L S 1 6 5
15
16
12Cxxxx
P3.0
P3.1
P1.0
H G F E D C B A
3 14 13 12 11
S/L
CP
SIN
7 4 L S 1 6 5
15
10
    74LS165 是 8 位并行置入移位寄存器。当移位 / 置入端(S/L)由高到低跳变时,并行输入端的数据置
入寄存器;当 S / L = 1 ,且时钟禁止端(第 1 5 脚)为低电平时,允许时钟输入,这时在时钟脉冲的作
用下,数据将由 Q
到 Q
方向移位。
    上图中,TXD(P3.1)作为移位脉冲输出端与所有 74LS165 的移位脉冲输入端 CP 相连;RXD(P3.0)
作为串行输入端与 74LS165 的串行输出端 Q
相连;P1.0 用来控制 74LS165 的移位与置入而同 S/L 相连;
7 4 L S 1 6 5 的时钟禁止端(1 5 脚)接地,表示允许时钟输入。当扩展多个 8 位输入口时,两芯片的首尾
(Q
与 S
I N
)相连。
    下面的程序是从 16 位扩展口读入 5 组数据(每组二个字节),并把它们转存到内部 RAM 20H 开始的
单元中。
MOV
R 7 ,# 0 5 H
;设置读入组数
MOV
R O ,# 2 0 H
;设置内部 R A M 数据区首址
S T A R T :
CLR
P1.0
;并行置入数据,S / L = 0
SETB P1.0
;允许串行移位 S / L = 1
MOV
R 1 ,# 0 2 H
;设置每组字节数,即外扩 7 4 L S 1 6 5 的个数
R X D A T A : MOV
SCON,#00010000B
;设串行方式 0 ,允许接收,启动接收过程
W A I T :
JNB
R I ,W A I T
;未 接 收 完 一 帧,循 环 等 待
CLR
RI
;清 R I 标志,准备下次接收
MOV
A ,S B U F
; 读 入 数 据
MOV
@ R 0 ,A
;送至 R A M 缓冲区
INC
R0
;指向下一个地址
DJNZ R 1 ,R X D A T A
; 为 读 完 一 组 数 据 , 继 续
DJNZ R 7 ,S T A R T
;5 组数据未读完重新并行置入
……
;对数据进行处理
10  9
CC
16
104
104