Thông báo

Collapse
No announcement yet.

Hỏi về PIC16f877 giao tiếp DS1307 theo chuẩn I2C

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

  • Hỏi về PIC16f877 giao tiếp DS1307 theo chuẩn I2C

    mình có tìm hiểu trong một số tài liệu và đã viết code bằng chương trình PIC C conpiler cho bài toán như sau:
    -giao tiếp PIC với DS1307 hiển thị giờ, phút, giây trên 6 led7 có nút chỉnh giờ, phút lên xuống
    Mặc dù code cũng viết xong, và mình chạy mô phỏng hoàn toàn được nhưng có một số chỗ Code mình vẫn chưa hiểu lắm
    Đây là code của mình http://www.mediafire.com/?jd5q7b0d4id71lg
    Mong các bạn trên diễn đàn giải thích hộ dùm mình một số chỗ:
    1. khai báo int8 const m7d[10]....ý nghĩa của nó là như thế nào.
    2. đoạn code cho phần display: portb=m7d[sec1](ví dụ vậy) thì cái m7d[sec1] ấy nó lấy mã như thế nào.
    3.lệnh i2c_read() với i2c_read(0) khác nhau thế nào.
    Một số thắc mắc mong các bạn trên diễn đàn giúp đỡ để mình có thể hiểu hơn, mình xin cảm ơn.

  • #2
    Hi,
    Trả lời câu dễ trước:
    i2c_read() dùng khi còn tiếp tục giao tiếp với DS1307 (hoặc các chíp I2C khác) còn i2c_read(0) sử dụng khi thao tác này là thao tác cuối cùng trong quá trình giao tiếp, sau lệnh này là i2c_stop().
    Khai báo int8 const m7d[10] ý nghĩa của nó là khởi tạo một bảng số liệu gồm 10 phần tử 1 byte (int8) trong bộ nhớ chương trình (program memory). Phần tử đầu tiên ở vị trí 0, phần tử cuối cùng ở vị trí 9. Khi ta gọi m7d[0] thì nó sẽ lấy phần tử đầu tiên trong bảng số liệu ra.
    Vậy portb = m7d[sec1] tức là nó sẽ lấy phần tử ở vị trí sec1 trong bảng số liệu đưa ra port B, sec1 = 0 --> phần tử đầu tiên, sec1 = 9 --> phần tử cuối cùng.
    Chắc bác mới bắt đầu tìm hiểu CCS, chúc bác sớm trở thành pro
    Thân ái.
    Đường đến những ngày vinh quang không còn xa
    Con đường chúng ta... chúng ta đã chọn.

    Comment


    • #3
      ok vậy là hiểu rồi, cảm ơn bác Hard nhiều. Nhân tiện cho hỏi thêm cái nữa, bác Hard có biết về thiết lập cấu hình cho con pic không, đại khái là cái #fuse XT, NOPROTECT... có một số thông số mình không hiểu.

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X