例:
用
8051
单片机串行口外接
CD4094
扩展
8
位并行输出口,
如图所示,
8
位并行口的各
位都接一个发光二极管,要求发光管呈流水灯状态。
串行口方式
0
的数据传送可采用中
断方式,也可采用查询方式,无论哪种方式,都要借助于
TI
或
RI
标志。串行发送时,能
靠
TI
置位
(
发完一帧数据后
)
引起中断申请,
在中断服务程序中发送下一帧数据,
或者通过
查询
TI
的状态,只要
TI
为
0
就继续查询,
TI
为
1
就结束查询,发送下一帧数据。在串行
接收时,则由
RI
引起中断或对
RI
查询来确定何时接收下一帧数据。无论采用什么方式,
在开始通信之前,
都要先对控制寄存器
SCON
进行初始化。
在方式
0
中将,
将
00H
送
SCON
就能了。
-----------------
单片机串行口通信程序设计列子
--------------------------
ORG 2000H
START: MOV SCON,#00H ;
置串行口工作方式
0
MOV A,#80H ;
最高位灯先亮
CLR P1.0 ;
关闭并行输出
(
避象传输过程中,各
LED
的
"
暗红
"
现象
)
OUT0: MOV SBUF,A ;
开始串行输出
OUT1: JNB TI,OUT1 ;
输出完否
CLR TI ;
完了,清
TI
标志,以备下次发送
SETB P1.0 ;
打开并行口输出
ACALL DELAY ;
延时一段时间
RR A ;
循环右移
CLR P1.0 ;
关闭并行输出
JMP OUT0 ;
循环
说明:
DELAY
延时子程序能用前面我们讲
P1
口流水灯时用的延时子程序,
这里就不给出