Thông báo

Collapse
No announcement yet.

Ds1307

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

  • #31
    Không bit các bác đã dùng nó chưa hay là các bác nghĩ là lập trình cho nó như thế là đủ, chứ em thấy ko ổn tý nào. Nếu bật 1 con led để hiển thị hàng dv hoặc hàng chục (của h,m,s )thì ok. Còn nếu bật > 2 con để hiển thị thì các con sau nhận con trước làm ảnh .VD nếu ta cho hiển thị là 15h (tắt 2 led min)thì trên led sẽ hiển thị là 19h. cho lên em nghĩ phải dùng ngắt. Các bác giúp em với. Led của em là 4 con liền chứ không phải 4 con rời.Thank!!!

    Comment


    • #32
      Nguyên văn bởi vdgiap Xem bài viết
      Không bit các bác đã dùng nó chưa hay là các bác nghĩ là lập trình cho nó như thế là đủ, chứ em thấy ko ổn tý nào. Nếu bật 1 con led để hiển thị hàng dv hoặc hàng chục (của h,m,s )thì ok. Còn nếu bật > 2 con để hiển thị thì các con sau nhận con trước làm ảnh .VD nếu ta cho hiển thị là 15h (tắt 2 led min)thì trên led sẽ hiển thị là 19h. cho lên em nghĩ phải dùng ngắt. Các bác giúp em với. Led của em là 4 con liền chứ không phải 4 con rời.Thank!!!
      Bạn chưa nắm được nguyên tắc điều khiển LED rồi. Cần phải tắt LED trước khi update giá trị mới.
      AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
      Xem thêm tại Online Store ---> Click here
      Mob: 0982.083.106

      Comment


      • #33
        To Vdgiap:
        Bạn xem lại các luồng nói về led7seg đã nhá. điều khiển 4 con liền hay rời thì cũng như nhau cả vì chân Data của 4 con đều nối với nhau và dùng tran để cấp nguồn nuôi từng con.

        Comment


        • #34
          Ôlala cảm ơn các bác đã chỉ giáo cho em nha , nó hiển thị ngon rồi , thật là quá đơn giản ngoài sức tưởng tượng ,em cứ nghĩ là phải dùng ngắt lên cứ chúi đầu vào nó. Lúc đầu chạy sai là do em để DDRx ở mức " 1 " trong khi đó ở phần While { } đầu tiên em lại để "led = 0 " , sau khi em chuyển thành 1 và delay nó về 0 thì chạy luật luân . Cám ơn các bác rất nhiều .

          Comment


          • #35
            Em làm được rồi , lúc đầu em để DDRx=ff trong khi đó ở phần While em lại cho led = 0 cho lên khi nạp chương trình các led chịu ảnh của nhau. Sau khi em cho led = 1, thì nó chạy ngon . Cảm ơn các bác rất nhiều.hehe

            Comment


            • #36
              #include <mega16.h>
              #include <delay.h>

              // I2C Bus functions
              #asm
              .equ __i2c_port=0x15 ;PORTC
              .equ __sda_bit=0
              .equ __scl_bit=1
              #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

              void main(void)
              {
              // Declare your local variables here
              i2c_init();
              lcd_init(16);
              rtc_init(0,0,0);

              i2c_start();
              i2c_write(0xd0);
              i2c_write(0);
              i2c_write(0);
              i2c_stop();
              // Input/Output Ports initialization
              // Port A initialization
              // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
              // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
              PORTA=0x00;
              DDRA=0x00;

              // Port B initialization
              // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
              // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
              PORTB=0x00;
              DDRB=0x00;

              // Port C initialization
              // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
              // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
              PORTC=0x00;
              DDRC=0x00;

              // Port D initialization
              // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
              // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
              PORTD=0x00;
              DDRD=0x00;

              // Timer/Counter 0 initialization
              // Clock source: System Clock
              // Clock value: Timer 0 Stopped
              // Mode: Normal top=FFh
              // OC0 output: Disconnected
              TCCR0=0x00;
              TCNT0=0x00;
              OCR0=0x00;

              // Timer/Counter 1 initialization
              // Clock source: System Clock
              // Clock value: Timer 1 Stopped
              // Mode: Normal top=FFFFh
              // OC1A output: Discon.
              // OC1B output: Discon.
              // Noise Canceler: Off
              // Input Capture on Falling Edge
              // Timer 1 Overflow Interrupt: Off
              // Input Capture Interrupt: Off
              // Compare A Match Interrupt: Off
              // Compare B Match Interrupt: Off
              TCCR1A=0x00;
              TCCR1B=0x00;
              TCNT1H=0x00;
              TCNT1L=0x00;
              ICR1H=0x00;
              ICR1L=0x00;
              OCR1AH=0x00;
              OCR1AL=0x00;
              OCR1BH=0x00;
              OCR1BL=0x00;

              // Timer/Counter 2 initialization
              // Clock source: System Clock
              // Clock value: Timer 2 Stopped
              // Mode: Normal top=FFh
              // OC2 output: Disconnected
              ASSR=0x00;
              TCCR2=0x00;
              TCNT2=0x00;
              OCR2=0x00;

              // External Interrupt(s) initialization
              // INT0: Off
              // INT1: Off
              // INT2: Off
              MCUCR=0x00;
              MCUCSR=0x00;

              // Timer(s)/Counter(s) Interrupt(s) initialization
              TIMSK=0x00;

              // Analog Comparator initialization
              // Analog Comparator: Off
              // Analog Comparator Input Capture by Timer/Counter 1: Off
              ACSR=0x80;
              SFIOR=0x00;

              // I2C Bus initialization
              i2c_init();

              // DS1307 Real Time Clock initialization
              // Square wave output on pin SQW/OUT: Off
              // SQW/OUT pin state: 0
              rtc_init(0,0,0);

              // LCD module initialization
              lcd_init(16);

              while (1)
              {
              // Place your code here
              unsigned char h,m,s,x,y,a,b,e,f;

              rtc_set_time(0,0,0);
              lcd_gotoxy(0,0);
              lcd_putsf("REAL TIME CLOCK!");
              while (1)
              {
              rtc_get_time(&h,&m,&s);
              lcd_gotoxy(0,1);

              x=h/10;
              y=h%10;
              lcd_putchar(x+0x30);
              lcd_putchar(y+0x30);
              lcd_putsf(":");

              a=m/10;
              b=m%10;
              lcd_putchar(a+0x30);
              lcd_putchar(b+0x30);
              lcd_putsf(":");

              e=s/10;
              f=s%10;
              lcd_putchar(e+0x30);
              lcd_putchar(f+0x30);

              delay_ms(200);

              }; // Place your code here

              };
              }

              Sao không chạy được các bác giúp với

              Comment


              • #37
                Chào các bác , hình như tuần trước trang web bị lỗi sao ý, em ko thể vào hỏi thăm các bác được . hôm nay vào được rồi may quá

                to songohan , bạn tham khảo đoạn code này , hiển thị h,m,s,n,t,y lên LCD , mình dùng portb kết nối với lcd.
                Attached Files

                Comment


                • #38
                  các bác ơi hình như con DS1307 ko hiển thị được thứ hay sao ý nhỉ , em làm mà không được , các bác giúp em với .thank !!!!!!!!!

                  Comment


                  • #39
                    Rts

                    Mình test thử mà không chạy được bạn ah .Bạn có hình mô phỏng (trên proteuss ) không giúp mình với

                    Comment


                    • #40
                      mình nạp chạy ngon mà, bạn xem phần cứng có giống của tớ không ???

                      Comment


                      • #41
                        quên ko port phần cứng cho bạn

                        Comment


                        • #42
                          Chuối giờ mới được. Bạn kiểm tra lại xem ,minh làm chạy cực ngon
                          Attached Files

                          Comment


                          • #43
                            Cậu có nhầm chỗ nào không mình test trên proteuss mãi mà không chạy được !? sơ đồ mạch giống y bạn luôn!

                            Comment


                            • #44
                              đây là mạch mình mô phỏng trên proteuss

                              không chạy?!
                              Attached Files

                              Comment


                              • #45
                                chương trình thì giống của bạn luôn :

                                /************************************************** ***
                                This program was produced by the
                                CodeWizardAVR V1.25.7 beta 5 Standard
                                Automatic Program Generator
                                © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
                                http://www.hpinfotech.com

                                Project :
                                Version :
                                Date : 5/6/2008
                                Author : F4CG
                                Company : F4CG
                                Comments:


                                Chip type : ATmega16
                                Program type : Application
                                Clock frequency : 12.000000 MHz
                                Memory model : Small
                                External SRAM size : 0
                                Data Stack size : 256
                                ************************************************** ***/

                                #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 CH_clear(void)
                                {
                                i2c_start();
                                i2c_write(0xd0);
                                i2c_write(0);
                                i2c_write(0);
                                i2c_stop();
                                }
                                void main(void)
                                {
                                PORTA=0xFF;
                                DDRA=0xFF;
                                PORTB=0x00;
                                DDRB=0xF7;
                                PORTC=0xF0;
                                DDRC=0xF0;
                                PORTD=0x00;
                                DDRD=0x04;

                                i2c_init();
                                rtc_init(3,1,0);
                                lcd_init(16);
                                rtc_set_time(10,30,0);
                                rtc_set_date(1,5,8);
                                CH_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);


                                };
                                }

                                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