User Tag List

Trang 1/2 12 cuốicuối
kết quả từ 1 tới 10 trên 11
Cây cảm ơn6Cảm ơn

Ðề tài: Thuật toán lập trình đồng hồ dùng 8051

  
  1. #1
    Thành viên tích cực nquoccdt's Avatar
    Tham gia
    Mar 2010
    Bài viết
    377
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    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:

    Click here to enlarge

    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!


    CHỦ ĐỀ TƯƠNG TỰ:

    Ảnh gửi kèm

  2. #2
    Thành viên tích cực nquoccdt's Avatar
    Tham gia
    Mar 2010
    Bài viết
    377
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    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 ạ Click here to enlarge


  3. #3
    Thành viên tích cực chumanh's Avatar
    Tham gia
    Nov 2009
    Bài viết
    256
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    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 !

    File gửi kèm
    nquoccdt đã cảm ơn nội dung này.

  4. #4
    Banned ledsieusang's Avatar
    Tham gia
    Jan 2011
    Bài viết
    90
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    cho file nguyên lý ma không cho code thì làm ăn gì


  5. #5
    Thành viên tích cực nquoccdt's Avatar
    Tham gia
    Mar 2010
    Bài viết
    377
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Click here to enlarge Nguyên văn bởi chumanh Click here to enlarge
    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 !


  6. #6
    Thành viên tích cực nquoccdt's Avatar
    Tham gia
    Mar 2010
    Bài viết
    377
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    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


    Click here to enlarge

    Ảnh gửi kèm

  7. #7
    Thành viên tích cực chumanh's Avatar
    Tham gia
    Nov 2009
    Bài viết
    256
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    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]

    nquoccdt đã cảm ơn nội dung này.

  8. #8
    Thành viên tích cực vietlamdt's Avatar
    Tham gia
    Dec 2010
    Bài viết
    516
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    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

    nquoccdt đã cảm ơn nội dung này.

  9. #9
    Thành viên mới sphong138's Avatar
    Tham gia
    Feb 2011
    Bài viết
    4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Bạn thử tham khảo mạch này xem sao nhé:

    Click here to enlarge

    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:

    Click here to enlarge

    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:

    Click here to enlarge

    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

    NDN2411, nquoccdthuuhuy92 đã cảm ơn nội dung này.

  10. #10
    Thành viên tích cực nquoccdt's Avatar
    Tham gia
    Mar 2010
    Bài viết
    377
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    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 Click here to enlarge


Trang 1/2 12 cuốicuối

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không được gửi luồng mới
  • Bạn không được trả lời bài viết
  • Bạn không được gửi file đính kèm
  • Bạn không được sửa bài viết của mình
  •