找回密码
 注册
关于网站域名变更的通知
查看: 1540|回复: 1
打印 上一主题 下一主题

移位寄存器的串行扩展技术CD4094在单片机系统显示中的应用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-8-15 14:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
编者按:移位寄存器的串行扩展技术是单片机串行口扩展的一种常用方法。对于MCS-51系列单片机而言,将串口置为工作方式0,串口便工作在移位寄存器方式下了。此时,单片机的RXD口作串行数据的发送/接收口,TXD口作移位脉冲输出口。利用单片机串口的这一特性,可以十分方便地扩展I/O口线,本文便是一例。通过本例,读者除了可以加深对串口工作方式0的理解外,还可以举一反三,将之用于其他需要进行I/O口扩展的场合,比如用串口扩展键盘等。
3 m% s% i( E  A; t; Q6 E1 o) `! R遥控数码报时闹钟& P$ H" x0 ?# v- B
    CD4094是带输出锁存和三态控制的串入/并出高速转换器,具有使用简单、功耗低、驱动能力强和控制灵活等优点。- V, k% i$ Q& c9 ~. r5 m
  CD4094的引脚定义如图1。其中{1}脚为锁存端,{2}脚为串行数据输入端,{3}脚为串行时钟端。{1}脚为高电平时,8位并行输出口Q1~Q8在时钟的上升沿随串行输入而变化;{1}脚为低电平时,输出锁定。利用锁存端可方便地进行片选和级联输出控制。{15}脚为并行输出状态控制端,{15}脚为低电平时,并行输出端处在高阻状态,在用CD4094作显示输出时,可使显示数码闪烁。{9}脚QS、{10}脚Q′S是串行数据输出端,用于级联。QS端在第9个串行时钟的上升沿开始输出,Q′S端在第9个串行时钟的下降沿开始输出。& ?2 w( Y; I7 D
    当CD4094电源为5 V时,输出电流大于3.2mA,灌电流为1 mA。串行时钟频率可达2.5MHz。% Q% H( a3 r% a! z
    1. CD4094作静态LED显示驱动器; V% b# S2 w( @7 c9 S% I0 [% B5 l# P
  图2为用CD4094作驱动器的三位数码管静态显示电路略图。单片机串口工作在方式0,即移位寄存器方式。输出数据首先送到IC1,第二次输出的数据移至IC1时,先前输出数据则移到IC2,依此类推。输出三次后,在IC1、IC2、IC3的Q1~Q8口分别得到数据3、数据2、数据1。
. i$ G+ M7 J- q3 X+ }  程序如下:(DISP为显示子程序)
) l, M2 E4 _$ ]; I* {6 ]   ..................
. L& w. S' r- C6 e& o! Q  MOV SCON,#00H  ;置串口为方式0
: \* o! P( V+ O3 x+ E" d   ..................4 {% J5 ~- ?$ ?# \3 x! P) T5 Q
DISP: CLR    P3.7            ;输出锁存, e- Y& {% C5 C- s+ ?
      MOV R0,#33H        ;显示值送33H、34H、35H
8 r8 q% ?% Z+ s( s$ M      MOV R7,#03H          ;置数码管个数30 y  G: @# \, H, S8 F
LP:MOV A,@R0        
0 O! i( L# T  W/ S' _8 `      MOV     DPTR,#TAB     ;置字段码表首址$ H8 B+ h: O4 A. A/ X' K
       MOVC A,@A+DPTR ;查字段码表3 i! k! g1 H7 J' R) Z- ?/ \! n
      MOV SBUF,A            ;送字段码# d1 U5 X* \) F9 I$ z
         JNB     TI,$                      ;等待传送结束. M) f0 s+ _* o& }, b. p
         CLR     TI                         ;清串行中断标志. X/ E+ S6 `: z' U/ k/ t
         INC     R0                         ;显缓区地址加1$ X( b! _6 i! x. e
         DJNZ R7,LP               ;显示数码是否取完?
- x; q+ N( T* K$ }( o; |9 f2 q         SETB     P3.7                   ;允许输出显示   ( S4 W- g3 H! K8 q$ C
         NOP
3 M1 `6 n4 a. @) ^/ {         CLR     P3.7                     ;输出锁存$ g0 ^3 x4 f9 k0 E& Z* u
         RET     
2 ]7 E2 a/ C+ C  F; u3 v$ r$ GTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
' w, S8 W$ P; ^1 k0 x     DB 6FH,00H
; f  j* P( U* P3 i  说明:在串行口不作为其他使用,且显示的更新速度很低时,STROBE端可以始终接高;也可将P3.7口接到CD4094的{15}脚,从P3.7口输出一定频率的脉冲,使显示闪烁。) y, a4 S  s& u' t' a: [
    2. CD4094作LED动态显示驱动器
5 d; q6 C+ y, A& {, V2 K& D. a    用一片CD4094作段驱动,一片CD4094作位驱动,驱动8位带小数点的数码管(见图3)。
( f8 E5 w% w* D  v! n5 a. o+ Q    程序如下:(DISP为显示子程序)! y( i0 }; o8 }; `' k
    MOV SCON#00H          ;置串口为方式0# t% \' W/ H* Y$ P; |
    ……5 q9 q( O. p$ ]' w( }8 P
DISP:CLR    P3.7        ;输出锁存3 ^% u) \! m6 [- B4 \/ O
      MOV R0,  #30H      ;显缓区首址送R0; e* I& t. E5 A* ]& s
      MOV    R4,  #08H     ;置数码管个数为8' C9 G# W$ T5 {. u7 g
      MOV R5,  #0FEH  ;送位码初值+ x6 G! q9 |9 m# C
LP:      MOV A, R5         ;取位码! V0 \' s4 n4 y2 R3 p
          MOV     SBUF, A      ;送位码8 m  a% ~' B) s' v9 |
      JNB    T1          ;等待传送结束5 T9 ~9 ^0 J3 X- {" r
        CLR    T1          ;清串行中断标志3 }/ ]" C' Y/ T' i- q
      MOV    A, @R0      ;取段码
/ x. R- i2 C+ ^) n/ U      MOV DPTR, #TAB   ;置段码表首址
/ d. x: f" {% p4 m, w/ W6 Z          MOVC A, @A+DPTR ;查段码表
+ Y7 p9 x% C" }6 d* m+ |          MOV     SBUF,A      ;送段码
" f6 G3 A8 A- _/ U       JNB    T1              ;等待传送结束
) ~9 l0 |( r# m) |" Z% K; i          CLR    T1             ;清串行中断标志
+ I# F/ U9 U. Y  q& v$ i7 E$ C          STB    P3.7          ;允许输出显示3 W; ~* ?( T/ r$ V" L
          LCALL DEL        ;延时1ms3 g( S5 U$ {! d4 `" \' ~/ d
          MOV A,  R5       ;取位码) h0 G0 Q  @: c7 Q5 P
          RL    A                ;位码左移一位9 L; ~3 d/ b$ U- X5 s. D- o
          MOV R5,  A; a& C  |$ \# ?6 b3 S
     INC    R0                 ;显缓区地址加1  z" y1 p! g. O& @* }
          CLR    P3.7          ;输出锁存) t( }; S  V( a- G/ k( Z1 r
          DJNZ R4, LP         ;8位显示完否?0 x% g8 A0 k6 q) b# G' i+ N5 o
          RET
5 \9 b# {; H- @7 V5 t) YDEL:  MOV R7, #02H     ;延时1ms  (fosc=12MHz); _# \0 [* Z  h7 v2 U& D
DL:   MOV     R6,#0F8H" D0 \1 y% T! W% F$ ?
     DJNZ R6, $
: {/ I2 H6 T+ c1 e* H          DJNZ R7, DL- C& s5 c4 P5 [
          RET
- n$ t( M: |4 O9 c; OTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H1 @8 f* Z& h: n9 J( s1 M/ q
         DB 7FH,6FH

该用户从未签到

2#
发表于 2016-8-16 09:31 | 只看该作者
路过捧场,谢谢分享!
. V+ F* t& ^+ S/ w# b
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-29 04:13 , Processed in 0.093750 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表