找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 32|回复: 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口扩展的场合,比如用串口扩展键盘等。
& h4 w, e2 N; O2 i% g遥控数码报时闹钟
6 X, k3 H9 F- N/ C& G    CD4094是带输出锁存和三态控制的串入/并出高速转换器,具有使用简单、功耗低、驱动能力强和控制灵活等优点。6 }3 ]& L- p4 w" p0 A
  CD4094的引脚定义如图1。其中{1}脚为锁存端,{2}脚为串行数据输入端,{3}脚为串行时钟端。{1}脚为高电平时,8位并行输出口Q1~Q8在时钟的上升沿随串行输入而变化;{1}脚为低电平时,输出锁定。利用锁存端可方便地进行片选和级联输出控制。{15}脚为并行输出状态控制端,{15}脚为低电平时,并行输出端处在高阻状态,在用CD4094作显示输出时,可使显示数码闪烁。{9}脚QS、{10}脚Q′S是串行数据输出端,用于级联。QS端在第9个串行时钟的上升沿开始输出,Q′S端在第9个串行时钟的下降沿开始输出。# O7 |/ v4 H* T6 `6 s
    当CD4094电源为5 V时,输出电流大于3.2mA,灌电流为1 mA。串行时钟频率可达2.5MHz。
# I% F8 `& U3 m: B) G7 u5 `; h    1. CD4094作静态LED显示驱动器* j6 q7 G6 m6 U( v* F( l" J
  图2为用CD4094作驱动器的三位数码管静态显示电路略图。单片机串口工作在方式0,即移位寄存器方式。输出数据首先送到IC1,第二次输出的数据移至IC1时,先前输出数据则移到IC2,依此类推。输出三次后,在IC1、IC2、IC3的Q1~Q8口分别得到数据3、数据2、数据1。
/ D8 w' f: z3 X6 W2 ?  程序如下:(DISP为显示子程序)
, G3 s, _+ l! r4 w; \   ..................
+ j$ I* T" l% }1 w* p3 k  MOV SCON,#00H  ;置串口为方式0
' z5 \: F) C& F8 i& \3 ]) a8 D   ..................
6 ?" ]% [; m# C- o# u' i( jDISP: CLR    P3.7            ;输出锁存
/ P8 G0 s& k& S8 z2 t      MOV R0,#33H        ;显示值送33H、34H、35H
, C8 P4 E# I# ]1 O0 @4 u      MOV R7,#03H          ;置数码管个数3: F0 F$ i# |  l2 J: q8 |
LP:MOV A,@R0        6 \9 A" S0 G4 X, [/ e- Q3 ?
      MOV     DPTR,#TAB     ;置字段码表首址' ?. g1 k0 d# s0 \: Q/ C0 |' A
       MOVC A,@A+DPTR ;查字段码表  Q6 Z7 B' [4 f! q4 Q4 w
      MOV SBUF,A            ;送字段码* j5 N0 _, u2 c0 x1 M6 q+ ^! i2 k
         JNB     TI,$                      ;等待传送结束* H( J$ t3 ~- v2 O) f  Y. x  D
         CLR     TI                         ;清串行中断标志
% q  F3 E$ `3 j' {8 N         INC     R0                         ;显缓区地址加1. s) k) I: i1 ^& z6 P1 f0 L
         DJNZ R7,LP               ;显示数码是否取完?
& D8 b* G$ t( ~* g         SETB     P3.7                   ;允许输出显示   
) m& @0 W7 D& E2 e6 u         NOP / _7 C2 y+ f) B
         CLR     P3.7                     ;输出锁存
4 F1 r0 j0 [, q1 Z         RET     ; h! s6 Z! M2 i) @# `+ P4 Y7 B" e
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, h) n: v2 m3 j+ r$ `- a' i2 v, A
     DB 6FH,00H 4 R, [; g- e, n0 F+ e% n" Y
  说明:在串行口不作为其他使用,且显示的更新速度很低时,STROBE端可以始终接高;也可将P3.7口接到CD4094的{15}脚,从P3.7口输出一定频率的脉冲,使显示闪烁。
0 p: }- ~( K) A' j    2. CD4094作LED动态显示驱动器' j5 T7 T- ?& @4 M! ~! y
    用一片CD4094作段驱动,一片CD4094作位驱动,驱动8位带小数点的数码管(见图3)。& z+ }" x( G  B4 d' }( m% j
    程序如下:(DISP为显示子程序); X+ \% h. \% ]* w5 b8 A
    MOV SCON?#00H          ;置串口为方式0
3 B3 R- t( C- g( f6 n: z    ……
( _( K* @$ T. `/ \DISP:CLR    P3.7        ;输出锁存
# P4 u* }$ O  x# k9 U      MOV R0,  #30H      ;显缓区首址送R0
6 ?2 V5 b8 D+ J& T4 [9 u      MOV    R4,  #08H     ;置数码管个数为8
2 z& a, T8 ?) Y! x$ O# h      MOV R5,  #0FEH  ;送位码初值
& N4 g( H$ L! n2 D& S* f. PLP:      MOV A, R5         ;取位码
& ^1 n# [' @1 ^! I9 m/ Z' Q          MOV     SBUF, A      ;送位码2 H2 u5 }' Y8 o0 p9 @
      JNB    T1          ;等待传送结束9 o9 R# `4 P2 P+ C' R# f6 z* G
        CLR    T1          ;清串行中断标志2 N, f& A% w5 R3 R% ^6 U
      MOV    A?, @R0      ;取段码- ~& h' C! _! }
      MOV DPTR, #TAB   ;置段码表首址4 u1 O" H: q- C1 `7 \2 w2 y3 ?
          MOVC A, @A+DPTR ;查段码表  [( ^, y+ ]$ ]' Z# G$ ~- r
          MOV     SBUF?,A      ;送段码
4 G% O, o) K% A       JNB    T1              ;等待传送结束
9 W0 M# ^$ R; U          CLR    T1             ;清串行中断标志
- J" o2 b2 f7 a1 @" H          STB    P3.7          ;允许输出显示6 ]. r2 w; D3 E5 P0 Q
          LCALL DEL        ;延时1ms
! H" A# z! {* R, ?3 p          MOV A,  R5       ;取位码( Y0 s1 V8 s4 u- }9 U* s- R
          RL    A                ;位码左移一位% s) ]8 q$ Z9 e: S$ _* f5 _
          MOV R5,  A
& D: g6 c: c6 J8 z" P     INC    R0                 ;显缓区地址加1
! O5 A: r% D5 G5 g( s2 S! o          CLR    P3.7          ;输出锁存& m! `4 N  x& R8 y, x/ E( q
          DJNZ R4, LP         ;8位显示完否?
: r$ Y$ D# L8 u# R: i, A* C          RET8 w" f8 R; x0 H' n" M. s6 g
DEL:  MOV R7, #02H     ;延时1ms  (fosc=12MHz)6 K2 x( j' b3 I# L9 N
DL:   MOV     R6?,#0F8H
: l4 t4 u1 O( n  ]! O     DJNZ R6, $4 a( ]$ f2 ~# u1 {, S
          DJNZ R7, DL
( w" T7 o1 a8 Y+ O- c          RET6 `% F) Y5 p8 {! f; |2 N" W  ?
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H7 Y8 m& F- q4 G7 _6 ?3 N1 W% f1 B
         DB 7FH,6FH
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

155

主题

662

帖子

1191

积分

四级会员(40)

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

积分
1191
2#
发表于 2016-8-16 09:31 | 只看该作者
路过捧场,谢谢分享!
; [/ H0 ?  G0 k8 H  n& [
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

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

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

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

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