Thông báo

Collapse
No announcement yet.

Cần giúp đỡ Đồng hồ giao tiếp I2c

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

  • Cần giúp đỡ Đồng hồ giao tiếp I2c

    mạch đồng hồ thời gian thực sử dụng DS1307 nhưng khi hiển thị thời gian lên LCD thì ko đc. Các bác sửa chỉ cho em với
    RTC_CLOCK

  • #2
    minh cung dang mac ve van de nay cao thu nao chi dum

    Comment


    • #3
      Bạn đã lắp mạch thật chưa? Nếu rồi thì thiếu 2 trở treo giao tiếp I2C rồi đó nha.
      Ko phải dân AVR, nhưng nhìn code thì có vẻ đúng (nếu các chương trình con đúng rồi). Còn về khai báo CPU thì... chịu
      cái phần này ko biết để làm gì "chuc = (x-tram*100)/10;" nhưng nếu là nhân chia trước, công trừ sau là sai đó nha có lẽ phải là "chuc = (x%100)/10;" (tương tự cho các cái còn lại)
      Và cuối cùng là thắc mắc cái chỗ lấy số liệu giờ, phút, giây tại sao lại là biến con trỏ nhỉ mà ko phải biến cố định rtc_get_time(hour,min,sec); ?!!!

      Comment


      • #4
        Nguyên văn bởi thanhnshd Xem bài viết
        mạch đồng hồ thời gian thực sử dụng DS1307 nhưng khi hiển thị thời gian lên LCD thì ko đc. Các bác sửa chỉ cho em với
        RTC_CLOCK
        Trước tiên bạn xem phần 2 điện trở treo tren 2 chân SDA và SCL trước nhé.
        Sau đó out text ra LCD đã để kiểm tra xem LCD đã OK chưa?
        Tiếp đến là kiểm tra xem DS1307 có chạy chưa bằng cách lấy ra giây và out ra một PORT nào đó để kiểm tra.
        Sau đó mới ráp nối lại nhé!

        Comment


        • #5
          MÌnh đã sửa code cho bác rồi. Mình ko có thời gian build nên chưa thử đc.
          -Minh không biết có phải bác đang dùng codevision hay ko.
          -Không hiểu ngày giờ bác lấy tận phần trăm làm gì thế
          -Day là thứ bạn nhé. Date mới là ngày.
          void lcd_putnum(unsigned char x)
          {
          unsigned char tram , chuc ,donvi;
          tram = x/100; // lay hang tram <- chỗ này
          chuc = (x-tram*100)/10; // lay hang chuc
          donvi = (x-tram*100-chuc*10); //lay don vi
          lcd_putchar(chuc);
          lcd_putchar(donvi);
          }
          -Code bạn viết loằng ngoằng quá. Mình có thể rút ngắn thế này bỏ đi 1 số chỗ:
          /////////////////////////// Hien thi thoi gian len LCD /////////////////
          void display_time_lcd(unsigned char x,unsigned char y)
          {
          lcd_gotoxy(x,y);
          lcd_putchar(48+hour/10);
          lcd_putchar(48+hour%10);
          lcd_putsf(":");
          lcd_putchar(48+min/10);
          lcd_putchar(48+min%10);
          lcd_putsf(":");
          lcd_putchar(48+sec/10);
          lcd_putchar(48+sec%10);
          }

          //////////////////////// Hien Thi Date Len LCd /////////////////////
          void display_date_lcd(unsigned char x,unsigned char y)
          {
          lcd_gotoxy(x,y);
          lcd_putchar(48+date/10);
          lcd_putchar(48+date%10);
          lcd_putsf("/");
          lcd_putchar(48+month/10);
          lcd_putchar(48+month%10);
          lcd_putsf("/");
          lcd_putchar(48+year/10);
          lcd_putchar(48+year%10);
          }
          //////////////////////// Chuong trinh hien thi len LCd //////////////////////
          void display_lcd(void)
          {
          display_time_lcd(0,0); // Hien thi time len lcd
          display_date_lcd(0,1); // Hien thi date len lcd
          }
          Mình đã sửa
          CUNG CẤP LINH KIỆN ĐIỆN TỬ. DỤNG CỤ LÀM MẠCH.
          CUNG CẤP LED, MẠCH CÔNG SUẤT.
          CUNG CẤP MODULE LED (TRÁI TIM, CUBE)
          ------------TẠI HẠ LONG------------------
          LIÊN HỆ: 0936524718

          Comment


          • #6
            RTC_CLOCK.zip của bác đấy nhé.
            CUNG CẤP LINH KIỆN ĐIỆN TỬ. DỤNG CỤ LÀM MẠCH.
            CUNG CẤP LED, MẠCH CÔNG SUẤT.
            CUNG CẤP MODULE LED (TRÁI TIM, CUBE)
            ------------TẠI HẠ LONG------------------
            LIÊN HỆ: 0936524718

            Comment


            • #7
              Cảm ơn các bác rất nhiều. Em chạy được rồi. Nhưng cho em hỏi muốn hiện thứ 2 đến chủ nhật và lịch âm thì làm thế nào ạ?

              Comment


              • #8
                code thêm if vào, chú ý cái chủ nhật nó là 0 hay 1 gì quên rồi, còn âm lịch thì lên mạng tìm hiểu để chuyển tây qua âm, chứ không có trong DS đâu
                TamPhieuLuuKy@yahoo.com
                092 2838 712 --->>

                Comment


                • #9
                  Nguyên văn bởi thanhnshd Xem bài viết
                  Cảm ơn các bác rất nhiều. Em chạy được rồi. Nhưng cho em hỏi muốn hiện thứ 2 đến chủ nhật và lịch âm thì làm thế nào ạ?
                  Thứ thì nó là day trong thư viện ds1307 trong codevision. Bác kt trong thư viện ds1307 đã có day chưa? Nếu chưa thì bổ xung vào. Trong datasheet của ds1307 thì thứ sẽ là 1-7 -> tức Cn sẽ là 1.
                  Còn lịch âm thì hơi phức tạp chút. Vì ngày tháng am nó khác ngày tháng dương nó còn phụ thuộc vào các năm. nên bác tham khảo kĩ trên mạng là sẽ ok thôi
                  CUNG CẤP LINH KIỆN ĐIỆN TỬ. DỤNG CỤ LÀM MẠCH.
                  CUNG CẤP LED, MẠCH CÔNG SUẤT.
                  CUNG CẤP MODULE LED (TRÁI TIM, CUBE)
                  ------------TẠI HẠ LONG------------------
                  LIÊN HỆ: 0936524718

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X