Thông báo

Collapse
No announcement yet.

help me ! lập trình giao tiếp vơi DS1307

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • help me ! lập trình giao tiếp vơi DS1307

    Các anh có ai biết cách lập trình để giao tiếp với con DS1307 giúp em với. E mới học 8051 và đọc một số tài liệu về giao tiếp I2C, thử lập trình giao tiếp với DS1307 , thiết đặt giây va hiển thị sự thay đổi của nó sau mỗi giây nhưng khi chạy mô phỏng proteus nó không chạy. Có ai biết chỉ e vơi
    Dưới đây là chương trình em viết:
    Code:
    SCL EQU 90H          ; SCL=P1.0
    SDA EQU 91H          ;    SDA=P1.1
    ORG 00H
    MAIN:
        ACALL START        ;  CHI THI BAT DAU
        MOV A,#0D0H         ;  DAT CHE DO GHI CHO DS1307
        ACALL WRITE_READ_ADD
        JB SDA,MAIN          ;  KIEM TRA BIT ack 
        MOV A,#0          ; GHI DIA CHI 0 VAO A
        ACALL WRITE_READ_ADD
        JB SDA,MAIN           ;    KIEM TRA BIT ack
        MOV A,#15H          ; GHI GIA TRI GIAY 15 VAO O NHO 00H CUA 1307
        ACALL WRITE_READ_ADD
        JB SDA,MAIN           ;  KIEM TRA BIT ack
        ACALL STOP
    LP:
        ACALL START        
        MOV A,#0D0H        
        ACALL WRITE_READ_ADD
        JB SDA,LP
        MOV A,#0
        ACALL WRITE_READ_ADD
        JB SDA,LP
        ACALL STOP                   ; TU NHĂN LP: DEN DAY DE DICH CON TRO DEN Ô NHO 00H CUA 1307
    LP1:ACALL START
        MOV A,#0D1H                  ; THIET LAP CHE DO DOC 1307
        ACALL WRITE_READ_ADD
        JB SDA,LP1                   ; KIEM TRA BIT ack
        ACALL READ_DATA               ; GOI CHUONG TRINH CON DOC BYTE DU LIEU 
        ACALL STOP                   ; KET THUC DOC
        MOV P2,A                   ; SAO GIA TRI DOC DC RA P2
        SJMP LP                       ; LAP LAI QUA TRINH DOC O NHO 00H CUA 1307 VA HIEN THI RA P2
    ;=========================================
    START:  ;START DS1307
        SETB SDA
        SETB SCL
        CLR SDA        ; TAO SUON XUONG TREN SDA DE TAO CHI THI START
        RET
    ;=========================================
    STOP:    ;STOP DS1307
        CLR SDA
        SETB SCL
        SETB SDA     ;    TAO SUON LEN TREN SDA DE TAO CHI THI STOP
        RET
    ;==========================================
    WRITE_READ_ADD:   ;WRITE DS1307
        MOV R7,#8
    LOOP1:
        CLR SCL
        JNB ACC.7,CLR_SDA    ; NHAY NEU BIT MSB THANH GHI A BANG 0
        SETB SDA
        SJMP TIEP0
    CLR_SDA:
        CLR SDA
    TIEP0:
        SETB SCL             ; CHUYEN BIT TREN SDA
        RLC A                  ; QUAY TRAI THANH GHI A
        DJNZ R7,LOOP1
    
        CLR SCL         ; XOA DE CHO DS1307 PHAN HOI BIT ack NO SE KEO SDA XUONG MUC 0 
        
        SETB SCL     ; BIT ack TRUYEN DI TREN SDA
        
        RET
    ;===========================================
    READ_DATA:
        MOV A,#0   ; DAM BAO KO CO DU LIEU TREN A
        MOV R7,#8
    LOOP2:
        CLR SCL
        JNB SDA,CLR_ACC0
        SETB ACC.0
        SJMP TIEP1
    CLR_ACC0:
        CLR ACC.0
    TIEP1:
        SETB SCL
        RLC A
        DJNZ R7,LOOP2
    
        CLR SCL     ; XOA DE THAY DOI TRANG THAI TREN SDA
        SETB SDA  ; TAO not-bit ack (MUC 1)     DE BAO CHO 1307 KET THUC QUA TRINH
        SETB SCL    ; CHUYEN not-bit ack 
        RET
    ;===========================================
    END
    Attached Files

  • #2
    Nguyên văn bởi huutoan_ss Xem bài viết
    Các anh có ai biết cách lập trình để giao tiếp với con DS1307 giúp em với. E mới học 8051 và đọc một số tài liệu về giao tiếp I2C, thử lập trình giao tiếp với DS1307 , thiết đặt giây va hiển thị sự thay đổi của nó sau mỗi giây nhưng khi chạy mô phỏng proteus nó không chạy. Có ai biết chỉ e vơi
    Dưới đây là chương trình em viết:
    Code:
    SCL EQU 90H          ; SCL=P1.0
    SDA EQU 91H          ;    SDA=P1.1
    ORG 00H
    MAIN:
        ACALL START        ;  CHI THI BAT DAU
        MOV A,#0D0H         ;  DAT CHE DO GHI CHO DS1307
        ACALL WRITE_READ_ADD
        JB SDA,MAIN          ;  KIEM TRA BIT ack 
        MOV A,#0          ; GHI DIA CHI 0 VAO A
        ACALL WRITE_READ_ADD
        JB SDA,MAIN           ;    KIEM TRA BIT ack
        MOV A,#15H          ; GHI GIA TRI GIAY 15 VAO O NHO 00H CUA 1307
        ACALL WRITE_READ_ADD
        JB SDA,MAIN           ;  KIEM TRA BIT ack
        ACALL STOP
    LP:
        ACALL START        
        MOV A,#0D0H        
        ACALL WRITE_READ_ADD
        JB SDA,LP
        MOV A,#0
        ACALL WRITE_READ_ADD
        JB SDA,LP
        ACALL STOP                   ; TU NHĂN LP: DEN DAY DE DICH CON TRO DEN Ô NHO 00H CUA 1307
    LP1:ACALL START
        MOV A,#0D1H                  ; THIET LAP CHE DO DOC 1307
        ACALL WRITE_READ_ADD
        JB SDA,LP1                   ; KIEM TRA BIT ack
        ACALL READ_DATA               ; GOI CHUONG TRINH CON DOC BYTE DU LIEU 
        ACALL STOP                   ; KET THUC DOC
        MOV P2,A                   ; SAO GIA TRI DOC DC RA P2
        SJMP LP                       ; LAP LAI QUA TRINH DOC O NHO 00H CUA 1307 VA HIEN THI RA P2
    ;=========================================
    START:  ;START DS1307
        SETB SDA
        SETB SCL
        CLR SDA        ; TAO SUON XUONG TREN SDA DE TAO CHI THI START
        RET
    ;=========================================
    STOP:    ;STOP DS1307
        CLR SDA
        SETB SCL
        SETB SDA     ;    TAO SUON LEN TREN SDA DE TAO CHI THI STOP
        RET
    ;==========================================
    WRITE_READ_ADD:   ;WRITE DS1307
        MOV R7,#8
    LOOP1:
        CLR SCL
        JNB ACC.7,CLR_SDA    ; NHAY NEU BIT MSB THANH GHI A BANG 0
        SETB SDA
        SJMP TIEP0
    CLR_SDA:
        CLR SDA
    TIEP0:
        SETB SCL             ; CHUYEN BIT TREN SDA
        RLC A                  ; QUAY TRAI THANH GHI A
        DJNZ R7,LOOP1
    
        CLR SCL         ; XOA DE CHO DS1307 PHAN HOI BIT ack NO SE KEO SDA XUONG MUC 0 
        
        SETB SCL     ; BIT ack TRUYEN DI TREN SDA
        
        RET
    ;===========================================
    READ_DATA:
        MOV A,#0   ; DAM BAO KO CO DU LIEU TREN A
        MOV R7,#8
    LOOP2:
        CLR SCL
        JNB SDA,CLR_ACC0
        SETB ACC.0
        SJMP TIEP1
    CLR_ACC0:
        CLR ACC.0
    TIEP1:
        SETB SCL
        RLC A
        DJNZ R7,LOOP2
    
        CLR SCL     ; XOA DE THAY DOI TRANG THAI TREN SDA
        SETB SDA  ; TAO not-bit ack (MUC 1)     DE BAO CHO 1307 KET THUC QUA TRINH
        SETB SCL    ; CHUYEN not-bit ack 
        RET
    ;===========================================
    END
    Bạn vào xem luồng này nhé: http://www.dientuvietnam.net/forums/...8B-led-7-thanh
    PCT COMPUTER
    (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

    Comment


    • #3
      help me ! lập trình giao tiếp vơi DS1307 anh pctcom giúp e vụ này đi
      .......SPKTNĐ////tandatvip@gmail.com...........

      Comment

      Về tác giả

      Collapse

      huutoan_ss Tìm hiểu thêm về huutoan_ss

      Bài viết mới nhất

      Collapse

      Đang tải...
      X