找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 31|回复: 1
打印 上一主题 下一主题

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

[复制链接]

157

主题

559

帖子

1198

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

EDA365欢迎您!

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

x
编者按:移位寄存器的串行扩展技术是单片机串行口扩展的一种常用方法。对于MCS-51系列单片机而言,将串口置为工作方式0,串口便工作在移位寄存器方式下了。此时,单片机的RXD口作串行数据的发送/接收口,TXD口作移位脉冲输出口。利用单片机串口的这一特性,可以十分方便地扩展I/O口线,本文便是一例。通过本例,读者除了可以加深对串口工作方式0的理解外,还可以举一反三,将之用于其他需要进行I/O口扩展的场合,比如用串口扩展键盘等。# o. n0 ^$ O/ a
遥控数码报时闹钟( J; I! t4 U# I
    CD4094是带输出锁存和三态控制的串入/并出高速转换器,具有使用简单、功耗低、驱动能力强和控制灵活等优点。: G" ~0 t  `, W' {4 A7 U+ W
  CD4094的引脚定义如图1。其中{1}脚为锁存端,{2}脚为串行数据输入端,{3}脚为串行时钟端。{1}脚为高电平时,8位并行输出口Q1~Q8在时钟的上升沿随串行输入而变化;{1}脚为低电平时,输出锁定。利用锁存端可方便地进行片选和级联输出控制。{15}脚为并行输出状态控制端,{15}脚为低电平时,并行输出端处在高阻状态,在用CD4094作显示输出时,可使显示数码闪烁。{9}脚QS、{10}脚Q′S是串行数据输出端,用于级联。QS端在第9个串行时钟的上升沿开始输出,Q′S端在第9个串行时钟的下降沿开始输出。
% N/ B% s+ D. m/ n, r2 ]9 g    当CD4094电源为5 V时,输出电流大于3.2mA,灌电流为1 mA。串行时钟频率可达2.5MHz。+ j' S) z4 O& I# p
    1. CD4094作静态LED显示驱动器' t% O! B: ~  a5 q) @* l" l
  图2为用CD4094作驱动器的三位数码管静态显示电路略图。单片机串口工作在方式0,即移位寄存器方式。输出数据首先送到IC1,第二次输出的数据移至IC1时,先前输出数据则移到IC2,依此类推。输出三次后,在IC1、IC2、IC3的Q1~Q8口分别得到数据3、数据2、数据1。
5 N. q! P3 b+ @0 W  程序如下:(DISP为显示子程序)1 L& l! J) p7 Y* j) ~
   ..................1 H/ w& e' W9 W9 v
  MOV SCON,#00H  ;置串口为方式0; y' u4 a9 F- X
   ..................4 h4 ^3 F6 r  O( w
DISP: CLR    P3.7            ;输出锁存
8 N! `- |3 |) ]2 I      MOV R0,#33H        ;显示值送33H、34H、35H5 a# D( P. B' N6 w5 w8 H
      MOV R7,#03H          ;置数码管个数3
' w- k5 l1 j( W4 F# D& ?; [LP:MOV A,@R0        
0 h4 u( Y9 A1 Q/ X* M  N' R      MOV     DPTR,#TAB     ;置字段码表首址5 m9 V- N! R$ k; A
       MOVC A,@A+DPTR ;查字段码表
! S! X# s' w, w8 m4 @5 b      MOV SBUF,A            ;送字段码
7 p) M+ z' n6 B: E. m0 j         JNB     TI,$                      ;等待传送结束
! v' u5 H( L% |' j         CLR     TI                         ;清串行中断标志
7 U: Y3 t( ]1 B  I# \         INC     R0                         ;显缓区地址加1) S# b' L& n( c4 W
         DJNZ R7,LP               ;显示数码是否取完?7 q" x; [: z) e$ Z) O" P$ H) {
         SETB     P3.7                   ;允许输出显示   
  ~) u+ z9 \" l4 g! W% `         NOP 7 N% H& b/ O( k* b, ]# g3 u
         CLR     P3.7                     ;输出锁存
& g$ ?/ L  A9 r: v2 ^, e: g         RET     
. v3 X8 x" K- V/ t/ M! ^9 wTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
* E" `% O3 ^/ A' ~     DB 6FH,00H 9 j' Y9 E  v" @; f5 {2 Y! X2 M
  说明:在串行口不作为其他使用,且显示的更新速度很低时,STROBE端可以始终接高;也可将P3.7口接到CD4094的{15}脚,从P3.7口输出一定频率的脉冲,使显示闪烁。$ r  B8 c5 @. q5 b1 e9 i
    2. CD4094作LED动态显示驱动器$ V; S7 _% c; p# b1 R
    用一片CD4094作段驱动,一片CD4094作位驱动,驱动8位带小数点的数码管(见图3)。& M" J* O6 Y) ^6 B- M
    程序如下:(DISP为显示子程序)1 Z0 c$ I- j3 m% I% S! @! `1 a5 c3 A
    MOV SCON?#00H          ;置串口为方式0, C# _! _8 _! ?
    ……
: P) k* c# O: D$ RDISP:CLR    P3.7        ;输出锁存( x; _0 B; ]! C
      MOV R0,  #30H      ;显缓区首址送R0, M+ ^/ \3 H" p+ S1 e% A
      MOV    R4,  #08H     ;置数码管个数为8
3 C& v2 E4 W4 c      MOV R5,  #0FEH  ;送位码初值
  s: l2 h& H; R3 ULP:      MOV A, R5         ;取位码" R; t# C- E' ?7 d2 K* B% _& C
          MOV     SBUF, A      ;送位码
' o3 b$ J. q- ?- a      JNB    T1          ;等待传送结束$ G* G. b+ x, i6 f, ]0 @2 i$ n
        CLR    T1          ;清串行中断标志
* S( M& C( W  K4 O; ?      MOV    A?, @R0      ;取段码
# c% b, t! k: G* b* V+ E& }& N* K9 f      MOV DPTR, #TAB   ;置段码表首址
  ^  q) q; A1 m( S. V- U" n5 a          MOVC A, @A+DPTR ;查段码表
$ K% f; F# r; O0 j/ a7 Q' L          MOV     SBUF?,A      ;送段码
  p+ Q! S6 i( P- L) T: b  n- y. n1 z       JNB    T1              ;等待传送结束
/ N  y' u( f$ }+ ^& G& V          CLR    T1             ;清串行中断标志
1 w7 G, Y6 \7 {" I+ o2 ^9 z  _6 L, q          STB    P3.7          ;允许输出显示$ @. F( o  |& j6 u! r
          LCALL DEL        ;延时1ms
7 S, Y1 w4 u6 g$ i' r4 Q          MOV A,  R5       ;取位码
: \* t' c: y6 Z8 W9 h          RL    A                ;位码左移一位
, J: u8 ?) c  X$ y6 L1 N2 {          MOV R5,  A4 `1 I/ R& P, _4 G6 p; w: S
     INC    R0                 ;显缓区地址加11 k: ]- F- u5 G+ ]8 e
          CLR    P3.7          ;输出锁存! j5 b  F  k# s4 C! L
          DJNZ R4, LP         ;8位显示完否?
3 j$ S% d' p2 S* y          RET  L6 e3 u: o4 r! R- O3 t$ y
DEL:  MOV R7, #02H     ;延时1ms  (fosc=12MHz)
2 \) T6 s4 C7 X* V  ?DL:   MOV     R6?,#0F8H0 V% F! ], f% x$ T; Q
     DJNZ R6, $* j/ f. Q" ~' c* y' e) D" X
          DJNZ R7, DL
5 C3 {/ }, s+ p. w3 t8 h) M. L4 ^- k          RET
- H) M; |" Q( {( `TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H8 J$ A2 c: C+ t- U
         DB 7FH,6FH
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

155

主题

662

帖子

1191

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1191
2#
发表于 2016-8-16 09:31 | 只看该作者
路过捧场,谢谢分享!
! |/ d) D5 \& J7 G8 y9 G
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-15 06:15 , Processed in 0.057986 second(s), 31 queries , Gzip On.

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

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

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