1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

CÁC HUYNH CHỈ GIÙM CÁCH LAM ĐỒNG HỒ BẰNG AT89C51

Chủ đề trong 'Điện - Điện tử - Viễn thông' bởi thonon032004, 22/08/2004.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. thonon032004

    thonon032004 Thành viên mới

    Tham gia ngày:
    22/08/2004
    Bài viết:
    3
    Đã được thích:
    0
    CÁC HUYNH CHỈ GIÙM CÁCH LAM ĐỒNG HỒ BẰNG AT89C51

    em định làm đồng hồ bằng IC at 89c51 bấcno biết xin chỉ giùm Text
  2. Enterprise_dmt

    Enterprise_dmt Thành viên mới

    Tham gia ngày:
    05/08/2003
    Bài viết:
    33
    Đã được thích:
    0
    MÌnh vừa làm 1 cái đồng hồ bằng 89C51 xong. Hết khoảng 60 ngàn. Có điều đang gặp vấn đề ở bộ nguồn. Chạy 15 phút là nóng, chip đơ. (mua có 15 ngàn, chắc chỉ được thế thôi).
    Làm đồng hồ dễ thôi. Nếu mà nói về phần cứng thì cứ mỗi bit dk 1 chân đèn LED (7 đoạn). Chip có 4 port, mỗi port 8 bit. Mình dk 4 LED 7 đoạn. Còn thừa 4 chân dùng để nhận tín hiệu vào (port 0 ko làm chân nhập được. Mình chưa hiểu lý do nhưng dùng port 0 thì dù chưa ấn ctắc, trở rất cao mà nó vẫn có dòng qua, vẫn tính là có tín hiệu vào).
    Hàn mạch cũng mệt phết, nhiều chân wá !!!
    Sau khi có mạch rồi thì viết code.
    Cơ bản thì chỉ có hàm DELAY với cả hàm hiển thị số.
    Hàm delay thì dùng bộ định thời cho sang, nếu ko thì lặp vòng giảm dần cũng ok. Với khoảng tg lớn thì lặp lại thao tác định thời nhiều lần.
    Hàm hiển thị số mệt hơn. Tuỳ vào cách hàn chân (Chip-LED) mà hàm hiển thị khác nhau. Mục đích là định nghĩa, xem khi tôi bảo anh hiện số 1,2,3... thì anh fải set bit chân nào, clear chân nào.
    Sau đó dùng 2 thanh ghi R0, R1 để lưu trữ giá trị của giờ và phút. Có thể cả giây hay nhỏ hơn nếu muốn. (R3, R4,...)
    Sau mỗi thủ tục delay thì tăng lên 1 rồi hiển thị ra.
    Nếu chỉ dùng 89, thì chỉ có thể hiển thị tối đa là 4 số thôi.
    Muốn nhiều hơn thì fải dùng vi mạch giải mã và kích đèn 7 đoạn MC14499. Khi đó chỉ cần 3 bit cho 1 đèn LED. Lúc đó thì bạn muốn hiển thị cả giờ, phút, giây hay đến mili giây cũng ok.
    Lưu ý: để giảm thiểu sai số , sau khi viết xong, bạn dùng trình giả lập chip chạy thử rồi hiệu chỉnh lại tgian delay, sao cho khoảng tg giữa 2 lần hiển thị số là sát nhất với tg thực (thường fải giảm tg delay đi vì các lệnh hiển thị + tính toán của chương trình).
    Hiện nay cái đồng hồ của mình chạy 1 phút thì chậm mất 8 miligiây.
  3. niuncc

    niuncc Thành viên mới

    Tham gia ngày:
    06/06/2003
    Bài viết:
    42
    Đã được thích:
    0
    Học lâu quá nên không nhớ rõ.Nhưng dùng Interrupt Timer(hình như mode 2),không có chuyện chậm đâu,bởi vì xung lấy từ Thạch Anh nên khá chính xác.Khi Interrupt timer băt đầu ngắt thì thực hiện các lệnh kiểm tra h,m,s... Tuy nhiên lúc này thì Inerrupt timer vẫn tiếp tục chạy nên không cần phải tính số xung lệnh máy.

Chia sẻ trang này