当前位置:文档之家› 移位寄存器的串行扩展技术

移位寄存器的串行扩展技术

移位寄存器的串行扩展技术
编者按:移位寄存器的串行扩展技术是单片机串行口扩展的一种常用方法。

对于MCS-51系列单片机而言,将串口置为工作方式0,串口便工作在移位寄存器方式下了。

此时,单片机的RXD口作串行数据的发送/接收口,TXD口作移位脉冲输出口。

利用单片机串口的这一特性,可以十分方便地扩展I/O口线,本文便是一例。

通过本例,读者除了可以加深对串口工作方式0的理解外,还可以举一反三,将之用于其他需要进行I/O口扩展的场合,比如用串口扩展键盘等。

遥控数码报时闹钟
CD4094是带输出锁存和三态控制的串入/并出高速转换器,具有使用简单、功耗低、驱动能力强和控制灵活等优点。

CD4094的引脚定义如图1。

其中{1}脚为锁存端,{2}脚为串行数据输入端,{3}脚为串行时钟端。

{1}脚为高电平时,8位并行输出口Q1~Q8在时钟的上升沿随串行输入而变化;{1}脚为低电平时,输出锁定。

利用锁存端可方便地进行片选和级联输出控制。

{15}脚为并行输出状态控制端,{15}脚为低电平时,并行输出端处在高阻状态,在用CD4094作显示输出时,可使显示数码闪烁。

{9}脚QS、{10}
脚Q′S是串行数据输出端,用于级联。

QS端在第9个串行时钟的上升沿开始输出,Q′S端在第9个串行时钟的下降沿开始输出。

当CD4094电源为5V时,输出电流大于3.2mA,灌电流为1mA。

串行时钟频率可达2.5MHz。

1.CD4094作静态LED显示驱动器
图2为用CD4094作驱动器的三位数码管静态显示电路略图。

单片机串口工作在方式0,即移位寄存器方式。

输出数据首先送到IC1,第二次输出的数据移至IC1时,先前输出数据则移到IC2,依此类推。

输出三次后,在IC1、IC2、IC3的Q1~Q8口分别得到数据3、数据2、数据1。

程序如下:(DISP为显示子程序)
..................
MOVSCON,#00H;置串口为方式0
..................
DISP:CLRP3.7;输出锁存
MOVR0,#33H;显示值送33H、34H、35H
MOVR7,#03H;置数码管个数3
LP:MOVA,@R0
MOVDPTR,#TAB;置字段码表首址
MOVCA,@A+DPTR;查字段码表
MOVSBUF,A;送字段码
JNBTI,$ ;等待传送结束
CLRTI;清串行中断标志
INCR0;显缓区地址加1
DJNZR7,LP;显示数码是否取完?
SETBP3.7;允许输出显示
NOP
CLRP3.7;输出锁存
RET
TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
DB6FH,00H
说明:在串行口不作为其他使用,且显示的更新速度很低时,STROBE端可以始终接高;也可将P3.7口接到CD4094的{15}脚,从P3.7口输出一定频率的脉冲,使显示闪烁。

2.CD4094作LED动态显示驱动器
用一片CD4094作段驱动,一片CD4094作位驱动,驱动8位带小数点的数码管(见图3)。

程序如下:(DISP为显示子程序)
MOVSCON#00H;置串口为方式0
……
DISP:CLRP3.7;输出锁存
MOVR0,#30H;显缓区首址送R0
MOVR4,#08H;置数码管个数为8
MOVR5,#0FEH;送位码初值
LP:MOVA,R5;取位码
MOVSBUF,A;送位码
JNBT1;等待传送结束
CLRT1;清串行中断标志
MOVA,@R0;取段码
MOVDPTR,#TAB;置段码表首址
MOVCA,@A+DPTR;查段码表
MOVSBUF,A;送段码
JNBT1;等待传送结束
CLRT1;清串行中断标志
STBP3.7;允许输出显示
LCALLDEL;延时1ms
MOVA,R5;取位码
RLA;位码左移一位
MOVR5,A
INCR0;显缓区地址加1
CLRP3.7;输出锁存
DJNZR4,LP;8位显示完否?
RET
DEL:MOVR7,#02H;延时1ms(fosc=12MHz)
DL:MOVR6,#0F8H
DJNZR6,$
DJNZR7,DL
RET
TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,6FH。

相关主题