Thông báo

Collapse
No announcement yet.

lập trình ngắt để cài đặt giờ cho DS1307

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

  • lập trình ngắt để cài đặt giờ cho DS1307

    Anh chị nào biết lập trình ngắt để cài đặt giờ phút giây cho DS1307 xin chỉ giúp em với, có code hay giải thuật như thế nào xin cho em vài ý kiến

  • #2
    Hi !
    Bạn định dùng ngắt gì để làm ( ngắt timer, ngắt ngoài hay ngắt gì), mà cần chi set giờ cho chú DS1307 phải dùng ngắt??

    ----^..^----

    Comment


    • #3
      àh em tính dùng ngắt ngoài để cài đặt giờ cho 1307 đó anh, 1 nút chọn chế độ(chọn cài đặt giờ, phút hay là giây) 2 nút :tăng và giảm, tại vì đâu phải gắn vô là con 1307 chạy đúng giờ như cái đồng hồ nhà mình đâu, nó chạy theo thời gian mà mình đã thiết lập cho nó mà phải ko ạ, nên phải chỉnh lại thời gian

      Comment


      • #4
        Nguyên văn bởi ylotus Xem bài viết
        Anh chị nào biết lập trình ngắt để cài đặt giờ phút giây cho DS1307 xin chỉ giúp em với, có code hay giải thuật như thế nào xin cho em vài ý kiến
        Bạn tham khảo cái này, test thực tế chạy ok (nguồn tham khảo tại www.dientuvietnam.net có chỉnh sửa tí xíu) có mô phỏng = proteus 7.7, download proteus 7.7 tại chữ kí

        http://www.mediafire.com/?1yqdq1rih5q6app

        Chúc vui
        Mạch nạp Pickit 2 SE ---> 170k BH 1 năm
        Pic 18F2550 PDIP Thailand bao test 60K/1c


        Comment


        • #5
          em cám ơn anh đã giúp đỡ nhưng mà em đang lập trình bằng asm anh ơi, C thì em bó tay, mấy anh có biết đồng hồ mà chạy chậm quá thì nguyên nhân là do đâu ko, anh nào rảnh coi giúp em đoạn code này, em làm cho 1con led giây thôi mà sao nó chạy chậm lắm mà sai nữa, ai biết sửa giúp em


          ;KHAI BAO

          GIAY DATA 60H

          DONVI_GIAY DATA 63H
          CHUC_GIAY DATA 64H

          LED_GIAY BIT P2.0
          LED_C_GIAY BIT P2.1

          ;--------I2C-------
          SCL BIT P3.0
          SDA BIT P3.1
          LED_DATA EQU P0
          BYTE_W EQU 11010000B
          BYTE_R EQU 11010001B
          ADD_REG EQU 20H
          DATA_RTC EQU 21H


          ORG 0000H

          MAIN:

          MOV GIAY,#0

          MOV TMOD,#10H
          MOV ADD_REG,#0
          MOV DATA_RTC,#0
          MOV A,#00H
          MOV LED_DATA,#00H


          ;**********WRITE_CLOCK**********
          WRITE_CLOCK:
          SETB SCL ;KIEM TRA BUS ROI
          SETB SDA
          CALL START_CLOCK

          MOV A,#BYTE_W
          CALL TACH_BYTE

          CLR SCL ;4 HANG KT ACK
          SETB SCL
          JB SDA,$
          CLR SCL

          MOV A,ADD_REG
          CALL TACH_BYTE

          CLR SCL ;4 HANG KT ACK
          SETB SCL
          JB SDA,$
          CLR SCL

          MOV A,DATA_RTC
          CALL TACH_BYTE

          CLR SCL ;4 HANG KT ACK
          SETB SCL
          JB SDA,$
          CLR SCL

          CALL STOP_CLOCK


          ;********CHUONG TRINH NHAN DU LIEU VA HIEN THI***********
          RECEIVE_DATA:

          ;========READS SECONDS=============
          READ_SEC:
          MOV ADD_REG,#00H
          LCALL READ_RTC
          MOV GIAY,DATA_RTC
          LCALL STOP_CLOCK
          CALL HIENTHI_S
          LJMP RECEIVE_DATA


          ;*****CHUONG TRINH DOC DU LIEU TU 1307*****
          READ_RTC:
          SETB SCL ;KIEM TRA BUS ROI
          SETB SDA
          CALL START_CLOCK

          MOV A,#BYTE_W
          CALL TACH_BYTE

          CLR SCL ;4 HANG ACK
          SETB SCL
          JB SDA,$
          CLR SCL

          MOV A,ADD_REG
          CALL TACH_BYTE

          CLR SCL ;4 HANG ACK
          SETB SCL
          JB SDA,$
          CLR SCL

          CALL STOP_CLOCK

          SETB SCL ;KIEM TRA BUS ROI
          SETB SDA
          CALL START_CLOCK

          MOV A,#BYTE_R
          CALL TACH_BYTE

          CLR SCL ;4 HANG ACK
          SETB SCL
          JB SDA,$
          CLR SCL

          CALL SEND_DATA

          SETB SCL ;NOT ACK
          SETB SDA
          CALL STOP_CLOCK
          RET



          ;--------------HIENTHI_RTC---------------
          ;**********************************

          HIENTHI_S:
          CALL BINBCD_GIAY

          MOV DPTR,#MALED
          MOV A,DONVI_GIAY
          MOVC A,@A+DPTR
          MOV LED_DATA,A
          SETB LED_GIAY
          CLR LED_C_GIAY
          CALL DELAY
          CLR LED_GIAY

          MOV DPTR,#MALED
          MOV A,CHUC_GIAY
          MOVC A,@A+DPTR
          MOV LED_DATA,A
          SETB LED_C_GIAY
          CALL DELAY
          CLR LED_C_GIAY
          RET





          ;**********CHUONG TRINH TACH BYTE***********
          TACH_BYTE:
          MOV R7,#8
          GG: RLC A
          MOV SDA,C
          SETB SCL
          CLR SCL
          DJNZ R7,GG
          RET

          ;----------DUA DU LIEU RA MANG I2C--------------
          SEND_DATA:
          MOV R7,#8
          CLR SCL
          DG: MOV C,SDA
          SETB SCL
          CLR SCL
          RLC A
          DJNZ R7,DG

          MOV DATA_RTC,A
          RET

          ;---------START-------------
          START_CLOCK:
          SETB SCL ;trong khi SCL=1
          NOP
          SETB SDA ;SDA tu 1
          NOP
          CLR SDA ;xuong 0
          NOP
          CLR SCL
          RET

          ;---------STOP-----------
          STOP_CLOCK:
          SETB SCL ;trong khi SCL=1
          NOP
          CLR SDA ;SDA tu 0
          NOP
          SETB SDA ; len 1
          NOP
          CLR SCL
          RET

          ;**********CHUONG TRINH DOI SANG MA BCD************
          BINBCD_GIAY:
          MOV A,GIAY
          MOV B,#10
          DIV AB
          MOV CHUC_GIAY,A
          MOV DONVI_GIAY,B
          RET


          DELAY:
          clr tr1
          mov th1,#high(-500)
          mov tl1,#low(-500)
          setb tr1
          jnb tf1,$
          clr tf1
          ret
          MALED:
          DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H
          END

          Comment


          • #6
            - Code bạn có vấn đề
            - chạy nhanh hay châm thường là do Ds1307
            Last edited by vidieukhien1; 09-03-2011, 14:48.
            Mạch nạp Pickit 2 SE ---> 170k BH 1 năm
            Pic 18F2550 PDIP Thailand bao test 60K/1c


            Comment


            • #7
              có vấn đề là ở chỗ nào vậy anh, anh có thể xem và cho em biết sai chỗ nào ko, chứ em xem hoài mà bây giờ hết biết sửa chỗ nào lun

              Comment


              • #8
                Minh thì chưa từng làm con 1307 bao giờ cả, nên không giúp dc bạn.
                Nếu bạn chịu khó bỏ thêm mấy chục ngàn mua con DS12C887 thì mình sẽ giúp bạn từ A -> Z
                Con 12C887 mình mua 60k, chạy rất tốt, không cần nguồn nuôi, bản thân nó có nguồn nuôi bên trong.
                Mình làm 4 cái rồi, cũng mới hơn 1 năm thôi, chưa thấy vấn đề gì xảy ra cả.
                Nếu bạn cần thì email cho mình qua: long.nguyenvansc@gmail.com nhé!
                Chúc bạn vui!
                Không biết ngày mai sẽ ra sao?
                Mà có ra sao cũng chẳng sao.

                Comment


                • #9
                  dear sỉ,
                  how to 12 hours??

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X