找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 33|回复: 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口扩展的场合,比如用串口扩展键盘等。
4 u+ D5 }# \' E2 f. B. S% p遥控数码报时闹钟
& G4 k/ U. L+ j; r' }0 E    CD4094是带输出锁存和三态控制的串入/并出高速转换器,具有使用简单、功耗低、驱动能力强和控制灵活等优点。8 H5 f" t* S" v% T% s
  CD4094的引脚定义如图1。其中{1}脚为锁存端,{2}脚为串行数据输入端,{3}脚为串行时钟端。{1}脚为高电平时,8位并行输出口Q1~Q8在时钟的上升沿随串行输入而变化;{1}脚为低电平时,输出锁定。利用锁存端可方便地进行片选和级联输出控制。{15}脚为并行输出状态控制端,{15}脚为低电平时,并行输出端处在高阻状态,在用CD4094作显示输出时,可使显示数码闪烁。{9}脚QS、{10}脚Q′S是串行数据输出端,用于级联。QS端在第9个串行时钟的上升沿开始输出,Q′S端在第9个串行时钟的下降沿开始输出。
# m2 d1 T  P3 a; z    当CD4094电源为5 V时,输出电流大于3.2mA,灌电流为1 mA。串行时钟频率可达2.5MHz。
: m" e+ k8 a: ~    1. CD4094作静态LED显示驱动器# E& W. }: P( O$ \" ^9 a
  图2为用CD4094作驱动器的三位数码管静态显示电路略图。单片机串口工作在方式0,即移位寄存器方式。输出数据首先送到IC1,第二次输出的数据移至IC1时,先前输出数据则移到IC2,依此类推。输出三次后,在IC1、IC2、IC3的Q1~Q8口分别得到数据3、数据2、数据1。
) ?/ [/ X3 z$ D5 a) E  程序如下:(DISP为显示子程序)) O; p9 r3 S* G. b* b
   ..................# J' U) a/ i9 v2 L7 s9 z! r
  MOV SCON,#00H  ;置串口为方式08 Z! ~8 _' y- h" k
   ..................  @) E% k* X' C7 l
DISP: CLR    P3.7            ;输出锁存1 L( H3 b# d6 O& B! U
      MOV R0,#33H        ;显示值送33H、34H、35H5 {1 g" Z) D' |! z2 }/ A  ]) y
      MOV R7,#03H          ;置数码管个数3
$ F( C8 G, H8 Z& kLP:MOV A,@R0        
+ ?, x  s2 E& f/ [5 ]6 a, T      MOV     DPTR,#TAB     ;置字段码表首址
7 B/ }! C" ^- a$ ]+ |1 f( a' W- g       MOVC A,@A+DPTR ;查字段码表
* z) y5 F1 Y& d- A      MOV SBUF,A            ;送字段码7 k" W" U% j. @# j% u# e! }+ a0 i
         JNB     TI,$                      ;等待传送结束3 W& I6 @2 L" v/ G
         CLR     TI                         ;清串行中断标志
6 ?2 m: k* N& @/ A- V         INC     R0                         ;显缓区地址加1
& l- f/ W* ~, u9 O: E         DJNZ R7,LP               ;显示数码是否取完?
% w) p  `3 s; M3 x- ?. T9 ^: X         SETB     P3.7                   ;允许输出显示   
1 l  @6 c+ S) \9 @7 D9 ~* i9 {         NOP
3 I, V$ T3 [+ m) W: z         CLR     P3.7                     ;输出锁存
0 _$ D! t, a% E/ _+ K7 R' d         RET       ^3 \& @9 {, S$ d1 c# ~
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH& p' a, w$ P+ A' B$ T
     DB 6FH,00H ! e/ x$ Q1 c; z) X2 f% ]$ ?
  说明:在串行口不作为其他使用,且显示的更新速度很低时,STROBE端可以始终接高;也可将P3.7口接到CD4094的{15}脚,从P3.7口输出一定频率的脉冲,使显示闪烁。
3 F% C" [* D# \    2. CD4094作LED动态显示驱动器
& p% B" r# x1 g( f    用一片CD4094作段驱动,一片CD4094作位驱动,驱动8位带小数点的数码管(见图3)。
' C* a3 g$ C* ~# |; E/ V0 `    程序如下:(DISP为显示子程序)
0 k7 R3 M: `4 e% C2 c    MOV SCON?#00H          ;置串口为方式0
, w' S! |6 ~- s" j, e! T+ p    ……
2 \# Q  {2 k/ o8 RDISP:CLR    P3.7        ;输出锁存0 t* K/ o: a7 e( }- p6 Y/ s( _
      MOV R0,  #30H      ;显缓区首址送R0$ D& }6 C3 H. h8 W7 p0 M
      MOV    R4,  #08H     ;置数码管个数为8
* h5 h- N0 ]2 `& i2 g      MOV R5,  #0FEH  ;送位码初值! L0 }3 R; e: }; s8 k2 k9 y
LP:      MOV A, R5         ;取位码% y$ h2 M9 _" g8 M6 k
          MOV     SBUF, A      ;送位码! K; x! ?  N# J$ F
      JNB    T1          ;等待传送结束6 U* K% U9 i& K. t
        CLR    T1          ;清串行中断标志
& ]  E0 M; R# P: g% i/ h0 |# p      MOV    A?, @R0      ;取段码
' T/ l! X. ]% Q4 E5 S      MOV DPTR, #TAB   ;置段码表首址& _+ M3 S5 E5 x% J( {  ^
          MOVC A, @A+DPTR ;查段码表$ A, {$ T" @+ H, b7 ?1 T' E' |6 v8 S
          MOV     SBUF?,A      ;送段码
+ ^1 p' [' t8 z- u& T, o       JNB    T1              ;等待传送结束( `/ V+ X3 j3 k8 g2 b8 m6 ?7 Z7 Y+ c
          CLR    T1             ;清串行中断标志
$ _' O, j4 L5 E3 I; @/ l$ U          STB    P3.7          ;允许输出显示7 R; [' K3 `2 x* l
          LCALL DEL        ;延时1ms
4 g0 j- f! R. j2 q5 v7 F8 H, s) R1 b          MOV A,  R5       ;取位码- g- F" T1 D- i- O
          RL    A                ;位码左移一位+ ^3 E) B' c9 c/ F2 m; H/ h# j
          MOV R5,  A
# D( n  ~' |& x3 p. a$ y3 \" d     INC    R0                 ;显缓区地址加1
7 k& T8 s: w6 C! H" {: t          CLR    P3.7          ;输出锁存
5 I8 _$ |2 x, k6 a          DJNZ R4, LP         ;8位显示完否?
: y- F+ `! |& y, I4 f+ `5 v5 I          RET$ n+ r0 F: o. `+ V
DEL:  MOV R7, #02H     ;延时1ms  (fosc=12MHz)
: A: Z: ~! a2 y  A7 IDL:   MOV     R6?,#0F8H
! _# ^6 V& ?4 Z4 \     DJNZ R6, $
2 H- u, Q( q% a: J( U5 k          DJNZ R7, DL
- W7 {% p0 S% k, z- n          RET
/ O' h- c5 V/ X) xTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H  ^7 T0 }2 A: [9 H- \
         DB 7FH,6FH
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

155

主题

662

帖子

1191

积分

四级会员(40)

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

积分
1191
2#
发表于 2016-8-16 09:31 | 只看该作者
路过捧场,谢谢分享!
0 i7 t% [# S. K- N
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

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

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

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

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