Thông báo

Collapse
No announcement yet.

Ds1307

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

  • #46
    híc híc giúp mình với có mỗi cái này mà test mãi không chạy

    Comment


    • #47
      Cái này để làm gì thế bạn???
      void CH_clear(void)
      {
      i2c_start();
      i2c_write(0xd0);
      i2c_write(0);
      i2c_write(0);
      i2c_stop();
      }
      n1=n%10;
      n2=n/10;
      sửa lại là:
      n1=n/10;
      n2=n%10;
      vì phải đưa hàng chục ra trước mà.

      Comment


      • #48
        Bạn bỏ cái này đi nhá. Vì tất tật đều được Codevision khởi tạo cho một cách tự động khi bạn khai báo kết nối. Cũng có thể do bạn khởi tạo một chân nào đó là cổng vào trong khi nó phải được khởi tạo là cổng ra hoặc ngược lại. Tóm lại theo tôi, bạn không cần những thứ này. Cứ để các giá trị đó là 0x00 là được.
        PORTA=0xFF;
        DDRA=0xFF;
        PORTB=0x00;
        DDRB=0xF7;
        PORTC=0xF0;
        DDRC=0xF0;
        PORTD=0x00;
        DDRD=0x04;
        Quên, chỉ có 2 chân nối với SDA và SCL là cần phải thiết lập là cổng vào có pull up nếu bạn không nối trở treo ở ngoài cho 2 chân đó.

        Comment


        • #49
          Tôi vừa xem lại mạch của bạn xong. Chân VEE của bạn nên để con biến trở ở đó để có thể điều chỉnh độ tương phản. Nếu để con 10k ở đó sợ không hiển thị được.
          các giá trị khởi tạo cổng của bạn nên để là:
          PORTX=0x00;
          DDRX=0x00;
          #include <mega16.h>

          // I2C Bus functions
          #asm
          .equ __i2c_port=0x15 ;PORTC
          .equ __sda_bit=1
          .equ __scl_bit=0
          #endasm
          #include <i2c.h>

          // DS1307 Real Time Clock functions
          #include <ds1307.h>

          // Alphanumeric LCD Module functions
          #asm
          .equ __lcd_port=0x18 ;PORTB
          #endasm
          #include <lcd.h>

          // Declare your global variables here
          unsigned char h,m,s,d,t,n;
          unsigned char h1,h2,m1,m2,s1,s2,d1,d2,t1,t2,n1,n2;

          void main(void)
          {
          PORTA=0x00;
          DDRA=0x00;
          PORTB=0x00;
          DDRB=0x007;
          PORTC=0x00;
          DDRC=0x000;
          PORTD=0x00;
          DDRD=0x00;

          i2c_init();
          rtc_init(3,1,0);
          lcd_init(16);
          rtc_set_time(10,30,0);
          rtc_set_date(1,5,8);
          lcd_clear();
          while (1)
          {

          // Hien thi gio, phut,giay o hang 1
          rtc_get_time(&h,&m,&s);
          lcd_gotoxy(0,0);
          lcd_putsf("time:");
          //set hour
          h1=h/10;
          h2=h%10;
          lcd_putchar(h2+0x30);
          lcd_putchar(h1+0x30);
          lcd_putsf(":");

          //set min
          m1=m/10;
          m2=m%10;
          lcd_putchar(m2+0x30);
          lcd_putchar(m1+0x30);
          lcd_putsf(":");

          //set giay
          s1=s/10;
          s2=s%10;
          lcd_putchar(s2+0x30);
          lcd_putchar(s1+0x30);

          rtc_get_date(&d,&t,&n);
          lcd_gotoxy(0,1);
          lcd_putsf("date:");
          // set ngay
          d1=d/10;
          d2=d%10;
          lcd_putchar(d2+0x30);
          lcd_putchar(d1+0x30);
          lcd_putsf("/");
          //set thang
          t1=t/10;
          t2=t%10;
          lcd_putchar(t2+0x30);
          lcd_putchar(t1+0x30);
          lcd_putsf("/");
          // set nam
          n1=n/10;
          n2=n%10;
          lcd_putchar(n2+0x30);
          lcd_putchar(n1+0x30);


          };
          }
          Tôi sửa lại như thế, bạn thử xem nhé. Mà tốt nhất là nên làm mạch thật bạn ạ. Tôi chưa bao giờ dùng Proteus mô phỏng cả, cứ làm mạch rồi test luôn.
          Hy vọng bài của tôi giúp được bạn. Chúc vui.

          Comment


          • #50
            Mình cũng xem mạch của bạn rùi,chân Vee mắc với biến trở để điều chỉnh độ mờ, hay rõ các ký tự của LCD.nếu bạn muốn nhìn thấy các ký tự rõ nhất thì nối thẳng nó với GND. Bạn đã mắc sai so với mạch nguyên lý mà mình gửi với lại hình như PINB5 của bạn cũng chưa được nối với chân tương ứng của LCD thì làm sao mà chạy được .Với mạch và code mà tớ gửi ở trên,thấy bạn làm ko chạy tớ tò mò học Protus luôn ( cài mãi mới được) , sau khi đi dây xong rồi nạp code cho nó thì nó chạy ầm ầm đây hây. bạn xem lại xem. Đây là hình ảnh minh họa , chúc bạn thành công :

            Comment


            • #51
              hình minh họa :
              Attached Files

              Comment


              • #52
                hichic, các bác ui, giúp em với,

                Cái CodeVision của em không biết bị lỗi gì mà khi Make thì liên tục bảo ERROR OCCURING DURING ASEMBLY. Cuối cùng là em chẳng thể nào nạp được mạch để mà thử. Mặc dù em đã cố gắng Configure project giống i chang các bác vậy.

                Cảm ơn các bác nhiều!

                Comment


                • #53
                  Cái CodeVision của em không biết bị lỗi gì mà khi Make thì liên tục bảo ERROR OCCURING DURING ASEMBLY. Cuối cùng là em chẳng thể nào nạp được mạch để mà thử. Mặc dù em đã cố gắng Configure project giống i chang các bác vậy.
                  Giống y chang là giống thế nào chứ??? Bạn phải post code của bạn lên và chụp cái màn hình khi nó báo lỗi lên thì mọi người mới biết nó là lỗi gì thì mới giúp được chứ.

                  Comment


                  • #54
                    Vâng, Lỗi là do CodeVision bản C**** bị lỗi, em cài lại thì đã chạy được. Thanks các bác nhiều ạ!

                    Comment


                    • #55
                      Nhìn cái đồng hồ của TQ làm mà phục,Các Bác làm Đồng hồ DS 1307 hoàn thiện chưa,mình cũng đã làm chạy được rồi.Nhưng làm sao để chỉnh được giờ khi mà hết pin cấp cho Ds1307 nhỉ.Mình nghỉ là giá trị init của đồng hồ được ghi vào ram của ds rồi liệu có thể chỉnh được không.Chỉnh như thế nào,có bác nào làm được cái đồng hồ DS hoàn thiện rồi thì giúp mình với!

                      Comment


                      • #56
                        Hic!!! cái đó đơn giản mà, bạn làm cho nó thêm mấy phím (Funtiion, tăng, giảm,Ok) để cài lại thời gian khi nó chay sai là ok.Khi đó cái đồng hồ của bạn sẽ dùng đến khi nó tự hỏng thì thôi. Có điều bạn phải lập trình quét phím. Chúc thành công.Hihihi

                        Comment


                        • #57
                          bạn nói thế chắc làm được rôi!post lên cho mình xem với.

                          Comment


                          • #58
                            Nguyên văn bởi btbk244 Xem bài viết
                            Nhìn cái đồng hồ của TQ làm mà phục,Các Bác làm Đồng hồ DS 1307 hoàn thiện chưa,mình cũng đã làm chạy được rồi.Nhưng làm sao để chỉnh được giờ khi mà hết pin cấp cho Ds1307 nhỉ.Mình nghỉ là giá trị init của đồng hồ được ghi vào ram của ds rồi liệu có thể chỉnh được không.Chỉnh như thế nào,có bác nào làm được cái đồng hồ DS hoàn thiện rồi thì giúp mình với!
                            "Không chỉnh được" thì còn gọi gì là đồng hồ nữa. DS1307 nó dùng các thanh gì có địa chỉ từ 0x00 đến 0x07 để lưu giá trị time đó. Bác có thể truy cập vào đó mà thay đổi giờ cho nó. Bác tham khảo cái funtion này nè:
                            void i2c_write(unsigned char add, unsigned char dat)
                            {
                            i2c_start();
                            i2c_write(0xd0);
                            i2c_write(add);
                            i2c_write(dat);
                            i2c_stop();
                            }
                            Nỏ biết chữ mần răng ký được??!! Thôi nhé.

                            Comment


                            • #59
                              Nếu bạn làm mạch chuẩn (tương đối) thì con DS1307 mỗi ngày vẫn chạy sai khoảng từ 1->3s cho nên nếu dùng khoảng nửa năm nó cũng sai mất mấy phút, chẳng nhẽ lại bật máy tính rồi cắm giắc nạp để nạp lại chương trình cho nó. Tốt nhất các bạn làm cho nó mấy cái phím điều chỉnh thì các bạn chẳng phải lo gì nó chạy sai, cứ nơi nào có điện là bạn có thể dùng được nó.Ngày trước còn đi học tớ làm nó rồi, bây giờ đi làm rồi lên ko có thời gian để giúp các bạn. Tớ chỉ có thể đưa ra hướng giải quyết cho các bạn thôi.

                              Comment


                              • #60
                                Coi phim Mỹ thấy tụi nó để đồng hồ này ngay phòng ngủ, kê sát đầu giường, chỉ liếc mắt là biết giờ và kèm chức năng báo thức nữa. Dân ta chưa quen với sp này. Nếu ra được sp này đẹp, ổn định bảo đảm hút hàng hơn nhiều so với ba cái đồng hồ kèm nhiệt kế!
                                Đẹp từng kilomét

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X