Thông báo

Collapse
No announcement yet.

Thuật toán lập trình đồng hồ dùng 8051

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

  • Thuật toán lập trình đồng hồ dùng 8051

    Thưa anh chị và các bạn trên diễn đàn, hiện tại em đang có đồ án về MCU trong kì 2 này, em định sẽ chọn làm đồng hồ thời gian thực như sau:
    Đồng hồ sẽ hiển thị giờ phút giây, MCU sẽ đọc xung chuẩn 1 HZ để xử lý thời gian; có thể điều chỉnh được thời gian ( dùng 3 phím : select, up, down); để đảm bảo mạch ko bị reset khi mất điện thì em sẽ dùng pin và rele để chuyển qua nguồn dự phòng; phần hiển thị có thể dùng LED 7 đoạn hoặc có thể mở rộng hiển thị trên LED matrix càng tốt. Em thì chưa nắm một số thuật toán để lập trình, em chỉ hình dung được quá trình tràn của đồng hồ như trong hình sau thôi:



    Ngoài ra thuật toán để điều chỉnh thời gian vẫn chưa rõ. Mong các anh chị và các bạn có hiểu biết qua thì góp ý hướng dẫn cho em làm với. Em chỉ cần thuật toán và phương pháp lập trình thôi để nắm rõ nguyên lý của nó. Nếu có, thì cho em xin cái lưu đồ thuật toán cụ thể càng tốt. Xin cảm ơn!
    Attached Files

  • #2
    Xin nói thêm là chương trình viết bằng ASM vì em học bằng ngôn ngữ này, nếu như có thuật toán kiểu ASM thì càng tốt ạ

    Comment


    • #3
      cái mạch cậu post lên không cần thiết phải sử dụng vđk, nó sử dụng kỹ thuật số để điều khiển giờ rồi, còn muốn sử dụng vi điều khiển thì cậu phải tìm hiểu cách hiển thị lên các thiết bị, ví dụ như led 7 đoạn, matrix, lcd, nếu đã biết cách rồi thì xây dựng thuật toán tràn thời gian, nếu sử dụng rtc, tức là ic real time ý, thì cậu không cần quan tâm nó tràn như thế nào, chỉ cần mắc thạch anh giao động, cài giờ lần đầu tiên, cấp nguồn cho nó thì nó tạo ra bộ thời gian chuẩn vĩnh viễn cho cậu và công việc chỉ còn là hiển thị, còn nếu muốn sử dụng xung 1Hz thì phải tạo hàm ngắt ngoài để tạo tràn thời gian , rùi hiển thị ra thiết bị, mình nghĩ cậu nên làm đồng hồ thời gian thực cho nó dễ !

      cậu thử tham khảo cái mình làm xem thế nào !
      Attached Files

      Comment


      • #4
        cho file nguyên lý ma không cho code thì làm ăn gì

        Comment


        • #5
          Nguyên văn bởi chumanh Xem bài viết
          cái mạch cậu post lên không cần thiết phải sử dụng vđk, nó sử dụng kỹ thuật số để điều khiển giờ rồi, còn muốn sử dụng vi điều khiển thì cậu phải tìm hiểu cách hiển thị lên các thiết bị, ví dụ như led 7 đoạn, matrix, lcd, nếu đã biết cách rồi thì xây dựng thuật toán tràn thời gian, nếu sử dụng rtc, tức là ic real time ý, thì cậu không cần quan tâm nó tràn như thế nào, chỉ cần mắc thạch anh giao động, cài giờ lần đầu tiên, cấp nguồn cho nó thì nó tạo ra bộ thời gian chuẩn vĩnh viễn cho cậu và công việc chỉ còn là hiển thị, còn nếu muốn sử dụng xung 1Hz thì phải tạo hàm ngắt ngoài để tạo tràn thời gian , rùi hiển thị ra thiết bị, mình nghĩ cậu nên làm đồng hồ thời gian thực cho nó dễ !
          cậu thử tham khảo cái mình làm xem thế nào !
          Biết là có thể không dùng MCU cũng làm đc nhưng đây là yêu cầu đầu tiên của đồ án. Cách hiển thị thì em cũng biết chút ít trên LED 7 đoạn, matrix, LCD thì chưa biết... Có lẽ em sẽ chọn hiển thị bằng Led 7 đoạn cho đỡ phức tạp. Sử dụng RTC cũng hay nhưng em muốn sử dụng xung chuẩn 1HZ để tác động đến ngắt để đếm thời gian cho nó khác khác xíu. Em cũng chỉ mới hình dung ra được công việc tràn thời gian thôi chứ chưa biết gì. Nếu anh chị nào có tài liệu gì phù hợp có thể úp lên cho em nghiên cứu xíu chứ em chưa có tài liệu gì về cái clook này cả. Xin cản ơn !

          Comment


          • #6
            Mạch tạo xung chuẩn 1HZ thì em định làm theo như cái này:

            Mạch tạo xung chuẩn 1HZ
            Sử dụng thạch anh 32.768khz và chip đếm & chia tần số CD4060
            datasheet xem ở đây
            http://www.nxp.com/acrobat_download/...060B_CNV_3.pdf

            Thạch anh 32,768khz là thạch anh chuyên dụng cho đồng hồ có kích thước bé xíu như ruột bút bi. Hầu như ở đâu có sự hiện diện của “anh thạch” này thì ở đó có mạch đồng hồ…
            sau khi chia 2^14 = 16.384 lần qua IC cd4060 ở chân số 3 ta được tần số đầu ra là 2HZ tiếp tục chia 2 bằng mạch D flip – flop cd4013 ta được 1Hz . Tuy nhiên tần số dao động của thạch anh lại phụ thuộc vào lát cắt ra nó nên dù kỹ thuật có hiện đại đến đâu thì vẫn có sai số do vậy tôi đã dùng thêm trở và tụ vi chỉnh để tạo mạch cộng hưởng bổ trợ ở chân thạch anh

            Nguồn: http://www.diy.vn


            Attached Files

            Comment


            • #7
              theo mình nghĩ thế này, cậu tạo một hàm quét led 7, sử dụng 3 thanh ghi để lưu các giá trị giờ, phút,giây, hàm con hiển thị có tác dụng lấy các giá trị ở trong các thanh ghi đó, sau đó tra bảng mã led và hiển thị, còn hàm ngắt ngoài có tác dụng để tăng thời gian mỗi khi có ngắt tạo ra ở chân ngắt ngoài,

              [thanh ghi giờ] equ xxh
              [thanh ghi phút] equ yyh
              [thanh ghi giây] equ zzh

              ;----------------------------------------------------

              main:
              gọi chương trình lấy giá trị của các thanh ghi và hiển thị liên tục...

              ;---------------------------------------------

              chương trình con ngắt ngoài:

              >>tăng giá trị thanh ghi giây

              -------------kiểm tra giây xem đã bằng 60 chưa,[nếu chưa thì thoát khỏi ngắt]
              [nếu bằng]
              >>reset giây về 0
              >>tăng giá trị phút
              -------------kiểm tra phút xem đã bằng 60 chưa,[nếu chưa thì thoát khỏi ngắt]
              [nếu bằng]
              >>reset phút về 0
              >>tăng giờ
              ------------kiểm tra xem giờ đã bằng 24h chưa,[nếu chưa thì thoát khỏi ngắt]
              [nếu bằng]
              >>reset giờ về 0
              [thoát khỏi ngắt]

              Comment


              • #8
                Mạch tạo xung này mình đã từng làm nhưng hoạt động k tốt lắm. Khi mình cấp nguồn 5v cho mạch này bằng nguồn c máy tính thì chạy tốt xung ra đúng 1s, nhưng khi mình cấp nguồn cho mạch bằng sạc đt hoặc pin đt thì mạch chạy k đúng, xung ra k còn là 1s nữa và khi t đưa tay vào gần thì nó chạy loạn lên. Vì vậy nếu bạn định làm mạch đồng hồ mà dùng mạch tạo xung này thì nguồn c bạn phải có dòng đủ lớn như nguồn c máy tính

                Comment


                • #9
                  Bạn thử tham khảo mạch này xem sao nhé:



                  Và đây là layout của nó. Gia công xong nó nằm gọn trong lòng bàn tay. Với board này mình có thể thực tập 8951 với nhiều mục đích khác nhau:



                  Mạch này mình đã làm rồi nhưng yêu cầu thì phức tạp hơn dạng bài của bạn vì nó cho phép cài đặt giờ reo và cho phép báo chuông từng giờ với số chuông đổ bằng số giờ lúc đó. Đầu ra là 1 loa thach anh thôi. Cũng chỉ cần 3 nút ấn mình có thể làm mọi thứ. Rất dễ nạp dữ liệu. ở từng phần một. Mỗi lần muốn cho chỉnh digit nào là digit đó chớp liên tục. Bạn xem hình minh họa:



                  Nếu bạn thấy dùng được thì gia công phần cứng đi mình sẽ gửi code sau. Code mình viết bằng assembler và hơi dài đó. Cho mình địa chỉ e-mail đi mình sẽ gửi code qua mail cho bạn.

                  Bạn có thể tham khảo tính năng đồng hồ báo ngày sinh nhật này để biết định hướng lập trình nhé:

                  Giới thiệu tính năng
                  http://www.youtube.com/watch?v=KMa6Q8APOIk

                  Cài đặt 10 ngày sinh nhật:
                  http://www.youtube.com/watch?v=U64OYRJJCRA

                  Cài đặt ngày và thời gian:
                  http://www.youtube.com/watch?v=WjlgjUw0-VY

                  Kiểm tra nhạc sinh nhật:
                  http://www.youtube.com/watch?v=33-5edkD2JI

                  Cần thêm chi tiết thì liên hệ với mình : 0918.706.848 E-mail: phong138@gmail.com

                  Thân mến chào bạn,
                  Sphong

                  Comment


                  • #10
                    Bác nào có tài liệu cơ bàn xíu share cho em với, đang rất cần ạ. Cả tài liệu về RTC nữa.
                    Tuần sau nhận đề tài rồi nhưng ko biết có nên tiếp tục với đề tài này nữa ko vì hiện tại vẫn chưa biết gì về món này

                    Comment


                    • #11
                      bác chumanh ơi cho em xin cai code ASM đi, chứ bác up có cái file hex lên thì anh em làm ăn đc j đâu

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X