Thông báo

Collapse
No announcement yet.

chỉnh giờ với ds1307 mà đồng hồ vẫn tiếp tục đếm giây.

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

  • chỉnh giờ với ds1307 mà đồng hồ vẫn tiếp tục đếm giây.

    chào các bác: em thấy mấy cái code trên diễn đàn khi chỉnh h thì đồng hồ ngừng chạy. các bác có cách nào chỉnh lại code mà khi mình chỉnh giời thì phần đếm giây vẫn chạy như trong đồng hồ đeo tay không. e mong được các bác chỉ giáo. e xin cảm ơn.

  • #2
    re

    tớ nghĩ là thời gian quét phím phải nhanh hơn thời gian đọc, giải mã và hiển thị giây thì sẽ làm được điều đó thui
    Cái gì biết nói biết. Cái không biết nói không biết. Ấy là biết đấy!
    email:

    Comment


    • #3
      Để chỉnh giây, đơn giản nhất là reset giây về 00 thay cho điều chỉnh up/down .Còn muốn cho giây tiếp tục chạy khi set thì cứ mỗi khi reset giây về 00 thì lưu giá trị vào DS1307 ngay và dùng thuật toán để đọc và đưa ra hiển thị trong khi vẫn quét phín nhấn để điều chỉnh

      Comment


      • #4
        khi quét phím nhấn điều chỉnh các giá trị bạn cho quét hiển thị giây là đc mà!

        Comment


        • #5
          Nguyên văn bởi dtvtk27c Xem bài viết
          chào các bác: em thấy mấy cái code trên diễn đàn khi chỉnh h thì đồng hồ ngừng chạy. các bác có cách nào chỉnh lại code mà khi mình chỉnh giời thì phần đếm giây vẫn chạy như trong đồng hồ đeo tay không. e mong được các bác chỉ giáo. e xin cảm ơn.
          - Trong khi hiệu chỉnh lại giá trị của đồng hồ người ta thường tạm thời không cho đọc thời gian từ IC thời gian thực, Điều này nhằm tránh trường hợp giá trị đang chỉnh tự động " nhảy" không theo ý muốn.

          - Theo ý của Bạn ta chỉ cần sửa code lại để nó vẫn tiếp tục đọc IC RTC trong khi chỉnh thời gian là được.
          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


          • #6
            Nguyên văn bởi dtvtk27c Xem bài viết
            chào các bác: em thấy mấy cái code trên diễn đàn khi chỉnh h thì đồng hồ ngừng chạy. các bác có cách nào chỉnh lại code mà khi mình chỉnh giời thì phần đếm giây vẫn chạy như trong đồng hồ đeo tay không. e mong được các bác chỉ giáo. e xin cảm ơn.
            thiết lập chân sqw/out xung 1hz kết nối chân sqw/out với chân vdk chế độ ngắt ngoài .khi có ngắt cập nhập giá trị giây.
            |

            Comment


            • #7
              Các anh ơi cho em hỏi tý... thú thực em kém về lập trình lắm.
              em làm đồng hồ với Ds1307 hiển thị lcd, điều khiển bằng 89C51.
              để cái đặt giờ thì em dùng 3 nút setting. MENU, tăng và giảm... em đã làm được tăng giảm rồi, nhưng khi mà nhấn xong để thoát phần setting thì làm sao để lưu ngày, giờ...như mình đã nhấn nút để điều chỉnh...

              Em xin cảm ơn các bác !


              đây là code và phần mô phỏng: Tại đây

              Comment


              • #8
                time đọc từ DS đều được chuyển qua 1 biến trung gian như hour,min,sec,day... sau đó các biến trung gian này dùng để hiển thị lên, và khi chỉnh giờ người ta sẽ chỉnh các giá trị này sau đó ghi lại giá trị này vào DS. Vậy khi ấn setting bạn hay nhét cái hàm ghi lại giờ vào DS là xong
                Website chính thức đổi địa chỉ website thành
                Mời các bạn ghé thăm !!!

                Comment


                • #9
                  các Pro có thể sửa giúp em code trên dc không.. Sắp bảo vệ rồi mà tình hình ni thì em đi rồi các bác ơi...
                  Em xoay mãi mà không dc ...

                  Comment


                  • #10
                    Mục này lâu rồi mà đến giờ mình mới biết nên nói vào đây, hy vọng sẽ có ích cho người đọc sau.
                    Đọc thời gian từ DS1307: tốt nhất là 1 giây đọc 1 lần, như thế tương tác với DS1307 giảm xuống, bớt sai giờ hơn. Và như bạn tdm đã nói trên, dùng xung 1Hz nối với ngắt ngoài VXL để đọc thời gian. Tuy nhiên nếu khi nhảy vào chương trình chỉnh thời gian thì tạm ngưng ngắt ngoài, và quá trình đọc thời gian lúc chỉnh thì tự viết code lôi chương trình đọc thời gian ra, nếu không làm việc này, lúc chỉnh thời gian sẽ có lỗi phát sinh.
                    Khi chỉnh thời gian, cứ tăng hay giảm 1 biến nào thì chỉ ghi giá trị biến đó vào DS1307, VD tăng phút lên 1 đơn vị xong, ta chỉ ghi giá trị phút vào DS1307, tránh ghi toàn bộ giờ, phút giây. Ghi xong thì đọc giá trị giờ phút giây từ DS1307 ra và hiện thị bình thường, làm vậy khi chỉnh thời gian giá trị giây vẫn nhảy đều đều.
                    Không biết ngày mai sẽ ra sao?
                    Mà có ra sao cũng chẳng sao.

                    Comment


                    • #11
                      1 giây đọc 1 lần sẽ có trường hợp nhảy 1 phát 2 số hoặc thấy giây chạy không đều.

                      Comment


                      • #12
                        Nguyên văn bởi duong_act Xem bài viết
                        1 giây đọc 1 lần sẽ có trường hợp nhảy 1 phát 2 số hoặc thấy giây chạy không đều.
                        Cần kết hợp với chân 7 của ds1307 thì mới không bị như vậy.

                        Comment


                        • #13
                          Dùng xung 1 Hz của chân số 7 DS1307 nối với ngắt ngoài VXL (ngắt sườn âm) để đọc time từ DS1307 mỗi khi có ngắt xảy ra bảo đảm rất ok, không có lỗi nhảy giây không đều đâu.
                          Tuy nhiên nó có cái khó chịu như sau: mỗi khi có ngắt ngoài xảy ra là led hiện thị lại bị giật một cái.
                          Đêm qua làm trên Test board thấy mà bực, tức quá ko dùng ngắt ngoài để đọc time nữa.
                          Anh em nào dùng ngắt ngoài để đọc time chú ý xem mình nói đúng ko nhé, nếu có cách khắc phục thì chỉ mình với. Thanks all!
                          Không biết ngày mai sẽ ra sao?
                          Mà có ra sao cũng chẳng sao.

                          Comment


                          • #14
                            Bạn nào chưa biết dùng ngắt để đọc time thì mình chia sẻ như sau, code này của mình khi hiện thị thì số giây chạy rất nhịp nhàng, nhưng cứ mỗi lần có ngắt (tăng giây) thì một số con led lại bị chớp một cái (chớp nhanh, nhưng nếu nhìn chăm chăm vào thì cũng thấy khó chịu).
                            Đây chỉ là cái sườn, các chương trình con thì các bạn đã biết hết rồi.
                            ​;************************************************ **
                            ORG 00H ;CHUONG TRINH CHINH
                            SJMP MAIN
                            ORG 0003H ;NGAT NGOAI 0
                            ACALL READ_TIME ;DOC THOI GIAN
                            ACALL GIAI_MA ;GIAI MA LED 7 DOAN
                            RETI ;THOAT NGAT
                            ORG 30H
                            MAIN:
                            MOV SP,#6FH ;BO NHO STACK 70H-7FH
                            MOV P2,#0FFH ;TAT LED (PORT 2 XUAT DU LIEU TICH CUC MUC THAP)
                            ACALL I2C_INIT
                            ACALL DS1307_INIT
                            LCALL DS1307_OUTPUT
                            SETB EA ;CHO PHEP CAC NGAT
                            SETB EX0 ;CHO PHEP NGAT NGOAI 0
                            SETB IT0 ;NGAT THEO SUON AM
                            MP1:
                            ACALL HIEN_THI
                            JB MODE,THOAT
                            ACALL SETTING
                            THOAT:
                            SJMP MP1
                            ;************************************************* *
                            Không biết ngày mai sẽ ra sao?
                            Mà có ra sao cũng chẳng sao.

                            Comment


                            • #15
                              À đó cũng là một cách. Nhưng mất toi thêm 1 chân và 1 ngắt. Và nếu có ngắt khác như ngắt RS232 thì vẫn dính như thường.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X