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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
编者按:移位寄存器的串行扩展技术是单片机串行口扩展的一种常用方法。对于MCS-51系列单片机而言,将串口置为工作方式0,串口便工作在移位寄存器方式下了。此时,单片机的RXD口作串行数据的发送/接收口,TXD口作移位脉冲输出口。利用单片机串口的这一特性,可以十分方便地扩展I/O口线,本文便是一例。通过本例,读者除了可以加深对串口工作方式0的理解外,还可以举一反三,将之用于其他需要进行I/O口扩展的场合,比如用串口扩展键盘等。
/ y. W* K1 W# f) g* `0 N遥控数码报时闹钟
; ^5 @' G( x, I4 n" ?; M! B    CD4094是带输出锁存和三态控制的串入/并出高速转换器,具有使用简单、功耗低、驱动能力强和控制灵活等优点。
& W% [0 h6 ~0 k5 b6 S% b  CD4094的引脚定义如图1。其中{1}脚为锁存端,{2}脚为串行数据输入端,{3}脚为串行时钟端。{1}脚为高电平时,8位并行输出口Q1~Q8在时钟的上升沿随串行输入而变化;{1}脚为低电平时,输出锁定。利用锁存端可方便地进行片选和级联输出控制。{15}脚为并行输出状态控制端,{15}脚为低电平时,并行输出端处在高阻状态,在用CD4094作显示输出时,可使显示数码闪烁。{9}脚QS、{10}脚Q′S是串行数据输出端,用于级联。QS端在第9个串行时钟的上升沿开始输出,Q′S端在第9个串行时钟的下降沿开始输出。7 P; {8 T. P& s% V. m
    当CD4094电源为5 V时,输出电流大于3.2mA,灌电流为1 mA。串行时钟频率可达2.5MHz。
( x" P* Y  x* s5 g; [    1. CD4094作静态LED显示驱动器
0 R) e) N! |& g0 U  图2为用CD4094作驱动器的三位数码管静态显示电路略图。单片机串口工作在方式0,即移位寄存器方式。输出数据首先送到IC1,第二次输出的数据移至IC1时,先前输出数据则移到IC2,依此类推。输出三次后,在IC1、IC2、IC3的Q1~Q8口分别得到数据3、数据2、数据1。' A- O- M. X+ c  |
  程序如下:(DISP为显示子程序)
. ^0 ~- q$ T" A* @) J   ..................+ R) X) \' t! I- \; ?' G
  MOV SCON,#00H  ;置串口为方式0
+ o' k; v% a2 N! s   ..................+ D" t. f* ?, P2 p/ F" P0 _  A
DISP: CLR    P3.7            ;输出锁存
! N1 ~( z7 I# O) ?6 X% g- A      MOV R0,#33H        ;显示值送33H、34H、35H* u; S. S( U& @! K3 L: C( d) x  [
      MOV R7,#03H          ;置数码管个数3
2 N1 Y9 i4 m4 Z  qLP:MOV A,@R0        
+ i  ?1 _" ^! l0 n7 z; A. Q      MOV     DPTR,#TAB     ;置字段码表首址( S6 {3 Y. i/ F3 }. K% b  k9 j
       MOVC A,@A+DPTR ;查字段码表
5 ~2 E! u6 `# P8 H* X" Z6 `      MOV SBUF,A            ;送字段码
& S- D+ Z' |3 d- n" q$ C/ D: ~         JNB     TI,$                      ;等待传送结束7 n1 ^( X( y% C2 Y# N/ z  L
         CLR     TI                         ;清串行中断标志8 z3 A/ P# U" j
         INC     R0                         ;显缓区地址加1
9 q8 N& ~1 W$ D0 I9 E         DJNZ R7,LP               ;显示数码是否取完?
" P8 b9 V/ `2 K# t         SETB     P3.7                   ;允许输出显示   
2 ^: D: D& R" U: c         NOP
, T8 n5 ?* k! y5 w, S) C         CLR     P3.7                     ;输出锁存
' r* W1 S2 {% {5 o         RET     + q# i  v; `2 V% s2 M, G
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
, |5 J9 r. v) j5 b" O     DB 6FH,00H
$ Q. W! L1 g7 B5 t  d( W  {; U  说明:在串行口不作为其他使用,且显示的更新速度很低时,STROBE端可以始终接高;也可将P3.7口接到CD4094的{15}脚,从P3.7口输出一定频率的脉冲,使显示闪烁。
6 ~+ O3 `" Q  n5 Q    2. CD4094作LED动态显示驱动器; Q- i. v% a. N
    用一片CD4094作段驱动,一片CD4094作位驱动,驱动8位带小数点的数码管(见图3)。
0 `8 J& }' X! f5 L    程序如下:(DISP为显示子程序); s4 l- {4 d) g/ u+ F8 ?
    MOV SCON#00H          ;置串口为方式0
9 k- z( u6 f, A! b/ w7 v9 `    ……! t2 b: ?# |) Z! y) x) z
DISP:CLR    P3.7        ;输出锁存
1 c! H; u8 \! @  u+ E9 A& _6 ?/ A3 e      MOV R0,  #30H      ;显缓区首址送R0
' S9 W, U# v( c% ~      MOV    R4,  #08H     ;置数码管个数为81 ~4 o: a" ^# k- ^4 J; W
      MOV R5,  #0FEH  ;送位码初值! w! L8 [- a- _
LP:      MOV A, R5         ;取位码
" G9 p- Q3 F* p( t" V          MOV     SBUF, A      ;送位码+ K: W; T( l  L) a9 L) T3 m% u1 v6 S
      JNB    T1          ;等待传送结束
( R7 j# R" h4 B, X6 e- f        CLR    T1          ;清串行中断标志5 [7 A4 i% }, X& w
      MOV    A, @R0      ;取段码/ [" F+ x: P) [5 m* D* p) I* k7 C
      MOV DPTR, #TAB   ;置段码表首址
; n( z6 ^6 E/ a6 ~1 {5 [: m          MOVC A, @A+DPTR ;查段码表
  M6 i+ Q* q( t6 t( ^8 |          MOV     SBUF,A      ;送段码' x% S  Q2 j5 `3 C
       JNB    T1              ;等待传送结束
; ~% a4 }3 q" v$ [; G0 P4 g6 L          CLR    T1             ;清串行中断标志
: }9 `* Q0 P( b1 K$ C          STB    P3.7          ;允许输出显示
' W* W$ [/ g# S% _5 ^          LCALL DEL        ;延时1ms( j, s2 |$ Y% m5 Y5 e
          MOV A,  R5       ;取位码% N( i% ]# J) M$ L2 K
          RL    A                ;位码左移一位
; Q6 q5 o: x/ s          MOV R5,  A$ j/ |* O6 q+ z- n) X# w5 `* {6 N
     INC    R0                 ;显缓区地址加1
' w/ Q8 \( @! l          CLR    P3.7          ;输出锁存1 |" G% P/ q: `7 H1 ~
          DJNZ R4, LP         ;8位显示完否?
9 E9 P+ M- B5 A' R9 D1 O* z          RET
0 ]5 y- {8 g, }/ J9 g( H( b1 ?1 ADEL:  MOV R7, #02H     ;延时1ms  (fosc=12MHz)6 P% m  X7 Y- h# U( {' X& W
DL:   MOV     R6,#0F8H% w' y, D6 `# y: M) {! [
     DJNZ R6, $' K$ D1 x0 }, h
          DJNZ R7, DL
/ p0 I9 V" W( ]: w2 u4 e* a7 u          RET
1 I* L! z1 K  a# q. U4 |3 TTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
0 E. X' L3 R* x7 y$ i         DB 7FH,6FH

该用户从未签到

2#
发表于 2016-8-16 09:31 | 只看该作者
路过捧场,谢谢分享!
5 C( Y/ G  p* f# x. w
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-6 08:56 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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