打印

前辈,请帮一下忙。关于74HC595

[复制链接]
1648|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiao妮|  楼主 | 2008-4-9 18:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想用74HC595做为驱动,驱动LED数码管。
现在只是用这个芯片试验一下。
显示一个固定的数,静态显示,结果显示的不对,找不出原因,请帮助一下
下面就显示“0”
SDATA_595  EQU  P1.0   ;串行数据输入
SCLK_595   EQU  P1.1   ;移位时钟脉冲
RCK_595    EQU  P1.2   ;输出锁存器控制脉冲

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
      MOV  SP,#60H
START:MOV R0,#3FH
      CALL OUT_595
      CALL  DELAY
      AJMP  START
;输出锁存器输出数据子程序

OUT_595:
         LCALL WR_595
         CLR  RCK_595
         NOP
         NOP
         SETB RCK_595      ;上升沿将数据送到输出锁存器
         RET
;移位寄存器接收数据子程序
WR_595:  CLR C       
         MOV R4,#08H         
         MOV A,R0
WR_LOOP:        
          RRC A
          MOV SDATA_595,C
          SETB SCLK_595       ;上升沿发生移位
          NOP
          NOP
          CLR SCLK_595
          DJNZ R4,WR_LOOP
          RET
;延时子程序
DELAY:          
                MOV  R5,#03H
DEL0:         
                MOV  R6,#0FFH
DEL1:          
                MOV  R7,#0FFH
                DJNZ  R7,$
                DJNZ  R6,DEL1
                DJNZ  R5,DEL0
                RET

                END

相关帖子

沙发
zhaoyu2005| | 2008-4-10 13:45 | 只看该作者

怎么个不对,也不说现象

谁知道是程序问题还是硬件问题?有两种情况应该注意:1.注意数码管共阴或共阳,两种显示数据是不一样的。2.注意移位脉冲次数。你的WR_595子程序里移位脉冲只有7个上升沿(少了一个),你自己找吧,估计问题就出在这里,至于是不是可以很简单的判断出来,就是看现在的显示(0少了左上一竖划)),反推出输出数据是(1F ),是的话就是那个上升沿造成的,至于怎么出现的,自己解决

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

51

帖子

0

粉丝