Thông báo

Collapse
No announcement yet.

Xin Giúp Về Đồng Hồ Số Dùng 89c51 và DS12C887

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

  • Xin Giúp Về Đồng Hồ Số Dùng 89c51 và DS12C887

    Mình làm đồ án với cái đồng hồ số dùng VDK 89C51 với RTC DS12C887 gặp chút rắc rối mong được mọi người giúp. Mình đọc thời gian từ DS12C887 thì phút và giờ nó nhảy loạn từng phèo hết chỉ có giây là chạy đúng. Em đã kiểm tra lại thì code xuất mã 7 đoạn rồi quét Led... không sai gì, em xóa đoạn code đọc giấy và phút đi thì giờ chạy đúng. Nói chung là chỉ chạy dc 1 cái thôi, phút và giây thì giây chạy đúng còn phút nhẩy loạn xì ngầu lên. Ai biết em làm sai chỗ nào chỉ em với nha
    Đây là code đoạn giao tiếp với DS12C887:
    $MOD51
    ;DINH NGHIA CAC THONG SO
    ;************************************************
    REGA EQU 0AH ;THANH GHI A
    REGB EQU 0BH ;THANH GHI B
    REGSEC EQU 00H ;THANH GHI GIAY
    REGMIN EQU 02H ;THANH GHI PHUT
    REGHOUR EQU 04H ;THANH GHI GIO
    HOUR EQU 50H ;O NHO CHUA GIO
    MIN EQU 51H ;O NHO CHUA PHUT
    SEC EQU 52H ;O NHO CHUA GIAY
    MODE_KEY BIT P3.0 ;NUT CHON THONG SO CAN DIEU CHINH
    INC_KEY BIT P3.1 ;TANG GIA TRI THOI GIAN
    DEC_KEY BIT P3.2 ;GIAM GIA TRI THOI GIAN
    ;************************************************
    ORG 00H
    SJMP MAIN
    ORG 30H
    MAIN:
    MOV SP,#6FH ;VUNG NHO NGAN XEP BAT DAU TU 70H - 7FH
    ACALL SET_RTC ;KHOI DONG RTC
    MP1:
    ACALL READ_HMS
    ACALL BCDTO7SEG
    ACALL QUETHIENTHI
    JB MODE_KEY,EXIT_MP1 ;KIEM TRA NUT MODE CO DUOC NHAN HAY KHONG
    ACALL KEYPRESSED ;XY LY NUT NHAN
    EXIT_MP1:
    SJMP MP1
    ;************************************************
    SET_RTC: ;THIET LAP RTC
    PUSH 00H
    PUSH ACC
    MOV R0,#REGA
    MOV A,#0A0H
    MOVX @R0,A
    MOV R0,#REGB
    MOV A,#02H
    MOVX @R0,A
    POP ACC
    POP 00H
    RET
    ;************************************************
    WRITE_HMS: ;GHI GIA TRI THOI GIAN THUC VAO RTC
    PUSH 00H
    PUSH ACC
    MOV R0,#REGSEC
    MOV A,SEC
    MOVX @R0,A
    MOV R0,#REGMIN
    MOV A,MIN
    MOVX @R0,A
    MOV R0,#REGHOUR
    MOV A,HOUR
    MOVX @R0,A
    POP ACC
    POP 00H
    RET
    ;************************************************
    READ_HMS:
    MOV R0,#00H
    MOV R1,#20H
    READ:
    MOVX A,@R0
    MOV @R1,A
    INC R0
    INC R0
    INC R1
    CJNE R0,#06H,READ
    RET
    ;************************************************
    ............................
    Click image for larger version

Name:	Mo Phong.jpg
Views:	1
Size:	161.8 KB
ID:	1408560Click image for larger version

Name:	Mo Phong.jpg
Views:	1
Size:	161.8 KB
ID:	1408560

  • #2
    Đây là 1 đoạn code mình viết đã chạy tốt, bạn tham khảo nha.
    ;************************************************* ****************************************
    KHOITAO_DALASS:
    MOV R0,#0BH ;DIA CHI THANH GHI B CUA DALASS
    MOV A,#06H
    MOVX @R0,A ;CHON KIEU GIO 24 VA CHO PHEP BAO THUC

    MOV R0,#0AH ;DIA CHI THANH GHI A CUA DALASS
    MOV A,#20H
    MOVX @R0,A ;BAT BO DAO DONG
    RET
    ;************************************************* ****************************************
    DOC_GPG:
    MOV R0,#00H ;DOC GIAY
    MOVX A,@R0 ;CHUYEN GIAY VAO THANH GHI A CUA VDK.
    MOV 30H,A

    MOV R0,#02H ;DOC PHUT
    MOVX A,@R0 ;CHUYEN PHUT VAO THANH GHI A CUA VDK.
    MOV 31H,A

    MOV R0,#04H
    MOVX A,@R0
    MOV 32H,A

    MOV R0,#07H
    MOVX A,@R0
    MOV 33H,A

    MOV R0,#08H
    MOVX A,@R0
    MOV 34H,A

    MOV R0,#09H
    MOVX A,@R0
    MOV 35H,A
    RET

    Comment


    • #3
      bạn làm vậy thì sao gọi là chạy tốt dc chu,chỉ có đọc dữ liệu từ ds nhung con phần xuát ra toi led thi sao ,quan trong là chỗ này ,mình bị vậy nhung ko biết sao cả,giúp minh với nha,néu ctrinh ban chạy tốt bạn cho minh chtrinh và file mô phỏng luôn nha ,để minh nghiên cưu với nha,minh chỉ can phần truy xuat và hiển thị dúng là dc rồi,ko càn chinh giờ và báo alarm,vì minh chỉ mới bập bẹ làm thiu,cảm ơn bạn nhé,ned minh thiennhut_mh@yahoo.com

      Comment


      • #4
        Nguyên văn bởi thiennhut Xem bài viết
        bạn làm vậy thì sao gọi là chạy tốt dc chu,chỉ có đọc dữ liệu từ ds nhung con phần xuát ra toi led thi sao ,quan trong là chỗ này ,mình bị vậy nhung ko biết sao cả,giúp minh với nha,néu ctrinh ban chạy tốt bạn cho minh chtrinh và file mô phỏng luôn nha ,để minh nghiên cưu với nha,minh chỉ can phần truy xuat và hiển thị dúng là dc rồi,ko càn chinh giờ và báo alarm,vì minh chỉ mới bập bẹ làm thiu,cảm ơn bạn nhé,ned minh thiennhut_mh@yahoo.com
        Phần giải mã và hiển thị thì dễ nên mình ko post lên đây. Tham khảo thêm tại đây Kiến thức::Vi điều khiển 8051

        Comment


        • #5
          cạn có sơ đồ nguyên lý của mạch đồng hồ số dùng AT89C51 giao tiếp với DS12887 không?mình kiếm trên mạng mà ko thấy.dùng Led 7 đoạn hiển thị chứ ko dùng LCD.nếu có bạn cho mình nha.Qua Email:man_huynh5588@yahoo.com.vn.Cảm ơn bạn trước

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X