Thông báo

Collapse
No announcement yet.

Kiểu dữ liệu xuất ra của con ds1307.

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

  • Kiểu dữ liệu xuất ra của con ds1307.

    Cho e hỏi là ví dụ với đoạn code nhỏ như sau của con ds1307

    #include <mega16.h>
    unsigned char hour, min, sec;



    // 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>

    // Declare your global variables here

    void main(void)
    {

    PORTA=0x00;
    DDRA=0xFF;


    PORTB=0x00;
    DDRB=0xFF;


    PORTC=0x00;
    DDRC=0x00;


    PORTD=0x00;
    DDRD=0x00;


    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;



    // I2C Bus initialization
    i2c_init();

    // DS1307 Real Time Clock initialization
    // Square wave output on pin SQW/OUT: On
    // Square wave frequency: 1Hz
    rtc_init(0,1,0);
    rtc_set_time(10,10,10) ;
    rtc_set_date(23,10,1011);

    while (1)
    {
    rtc_get_time(&hour,&min,&sec);


    }
    }


    Sau khi e đặt ngày tháng và có lệnh get_time như vậy thì kiểu dữ liệu của sec hay hour hay min xuất ra sẽ là kiểu gì vậy ak?e thay môt số tài liệu là BCd thì phải và nếu như vậy thao tác trên đó sẽ ntn.E đang làm con ds1307 tren led 7 đoạn.theo e nghĩ ví dụ như phần giây đang có giá trị là 42s gia tri bcd là 10000010 khi đó mình dùng các lệnh dịch >> để hiển thị phần chục và đơn vị của giây phải ko ?

  • #2
    ko ai trả lời giùm e hết ak.hix

    Comment


    • #3
      Ý bạn là cho nó hiển thị ra led 7 đoạn đúng không?
      Mình thì chỉ có code hiển thị ra LCD thôi, nhưng lại không có nút chỉnh giờ được. Tiện đây các bác cho em hỏi viết thêm chương 4 nút nhấn để điều chỉnh ngày giờ thì làm sao, và mình muốn mở rộng thêm phần hẹn giờ cho nó nữa. Các bạn giúp em với nhé. Tìm khắp cái diễn đàn này khônh thấy phần chỉnh ngày giờ và hẹn giờ đâu hết.
      Nhận làm mạch, ĐAMH sử dụng vđk Pic & AVR tại tp.HCM
      Liên hệ sđt: 0902.808.371

      Comment


      • #4
        À đây là code hiển thị ra LCD của mình, coppy lại của 1 người nào đó trên diễn đàn này mà mình quên rồi, vễ vẽ mạch mô phỏng thấy chạy ok rôi.



        #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>
        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(0,0,0,);
        rtc_set_date(1,1,11);
        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);


        }
        }
        Nhận làm mạch, ĐAMH sử dụng vđk Pic & AVR tại tp.HCM
        Liên hệ sđt: 0902.808.371

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X