这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 74HC595 急!求助74HC595的问题

共2条 1/1 1 跳转至

74HC595 急!求助74HC595的问题

院士
2006-09-17 18:14:16     打赏
74HC595 急!求助74HC595的问题



关键词: 74HC595     求助     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 本人新手刚上路,现在用51单片机74HC595来做一个控制LED显示电路,
74HC595资料上的说明很简单,可是我试着去编程,却发现,
这个74HC595怎么也不工作啊。我对这个芯片一点不了解
下面是我编的程序来测试74HC595功能,
这里面肯定有错误,请高人们指点,小的多谢了!
enable equ p0.6  //595的13脚   输出使能引脚
shift equ p0.4   //595的11脚   输入移位引脚
store equ p0.5   //595的12脚   数据存储引脚
data equ p3.7    //595的14脚   数据输入引脚
我的目的很简单,只想在595的Q0-Q7段输出01010101B (即#55H):

main_loop:
    mov r4,#08h   //8位
    mov a,#55h    //送入数据
    clr c
    setb enable   //不使能输出
move_data:
    rrc a         //把要发送数据移入C
    mov data,c    //一位一位的输入
    setb shift   
    setb store    
    nop
    clr shift
    clr store
    nop
    djnz r4,move_data //8位输入完毕
    clr enable        //使能输出
    nop
    call delay_5ms    //延时5ms
    jmp main_loop
   
请大侠们指点啊,急死我了,这么几天都搞不出来,毫无头绪,跪谢! 1: 没人在吗?怎么没有人回复啊?
斑竹,救命啊 2: PO口此时必须上拉电阻 3: 我修改了一下(PO口此时必须上拉电阻)main_loop:
    mov r4,#08h   //8位
    mov a,#55h    //送入数据
    clr shift
//    clr c       //No use

move_data:
    mov data,Acc.7    //一位一位的输入
    setb shift       //给上升沿  
   
    nop
    clr shift
   rrc a         //把要发送数据移入C

    nop
    djnz r4,move_data //8位输入完毕
    clr enable        //使能输出
    nop
    setb enable   //不使能输出-----给上升沿打入8bit数据
    call delay_5ms    //延时5ms
    jmp main_loop


再试试看,根据595datasheet的时序来,就可以了!
4: setb store/nop/nop/ clr store 放在最后就可以了 5: store /shift/enable三者位置关系到底怎么放呢?楼上的,请问store /shift/enable三者位置关系到底怎么放呢?
使能输出必须一直位底电平吗?
还有就是 数据存储脉冲store只能发一个吗?而且放在第八个移位脉冲shift之后?
我很是糊涂,请高人指点迷津
6: 网上找来的,给你参考一下,本人不测试过!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;595A:9----595B:14
;;595A:14-------------P3.7
;;595A:11---595B:11---P3.5
;;595A:12---595B:12---P3.4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;以下定义IO口
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        DA2             EQU     P3.7    ;595-14
        LATCH2          EQU     P3.4    ;595-12
        CLK2            EQU     P3.5    ;595-11
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;以下定义缓冲区
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        DATA595A        EQU     4CH
        DATA595B        EQU     4BH
        DELBUF          EQU     4AH
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;        
;;操作模式
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       MOV     DATA595A,     #0FEH
       MOV     DATA595B,     #0EFH
       LCALL   DATA595
       
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;595子程序
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DATA595:        CLR     DA2
                CLR     LATCH2
                CLR     CLK2
                LCALL   SDELAY
                MOV     A,  DATA595B
                MOV     R7, #08H
MAIN595B1:      RLC     A
                MOV     DA2,    C
                LCALL   SDELAY
                SETB    CLK2
                LCALL   SDELAY
                CLR     CLK2
                LCALL   SDELAY
                DJNZ    R7, MAIN595B1
                MOV     A,  DATA595A
                MOV     R7, #08H
MAIN595B2:      RLC     A
                MOV     DA2,    C
                LCALL   SDELAY
                SETB    CLK2
                LCALL   SDELAY
                CLR     CLK2
                LCALL   SDELAY
                DJNZ    R7, MAIN595B2
                LCALL   SDELAY
                SETB    LATCH2
                LCALL   SDELAY
                LCALL   SDELAY
                CLR     LATCH2
                CLR     DA2
                CLR     CLK2
                RET

SDELAY:       MOV       DELBUF,     #18D
SDEL1:        NOP
              NOP
              DJNZ      DELBUF,     SDEL1
              RET
7: 还有一个例程.;;============================================
;; 5个74HC595一起,CLK和DATA脚分别连起来,
;; LATCH脚独立控制
;;============================================

        SCLK     EQU     P0.1
        SDATA    EQU     P0.0


WRITE5950:      LCALL WRITE595
                SETB P2.0
                NOP
                CLR P2.0
                NOP
                SETB P2.0
                NOP
                CLR P2.0
                RET
WRITE5951:      LCALL WRITE595
                SETB P2.1
                NOP
                CLR P2.1
                NOP
                SETB P2.1
                NOP
                CLR P2.1
                RET
WRITE5952:      LCALL WRITE595
                SETB P2.2
                NOP
                CLR P2.2
                NOP
                SETB P2.2
                NOP
                CLR P2.2
                RET
WRITE5953:      LCALL WRITE595
                SETB P2.3
                NOP
                CLR P2.3
                NOP
                SETB P2.3
                NOP
                CLR P2.3
                RET
WRITE5954:      LCALL WRITE595
                SETB P2.4
                NOP
                CLR P2.4
                NOP
                SETB P2.4
                NOP
                CLR P2.4
                RET
WRITE595:       MOV R5,#08H
                MOV A,2AH
LOOP:           RLC A
                MOV P0.0,C
                SETB P0.1
                NOP
                CLR P0.1
                DJNZ R5,LOOP
                RET

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]