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

        • bqviet
          Trả lời cho Đấu tắt điện cho máy tính bảng
          bởi bqviet
          Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
          06-12-2025, 17:17
        • nguyendinhvan
          Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
          bởi nguyendinhvan
          Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
          05-12-2025, 19:59
        • afrendly
          Trả lời cho Đấu tắt điện cho máy tính bảng
          bởi afrendly
          Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
          04-12-2025, 01:27
        • nick22
          Trả lời cho Máy điện châm ?
          bởi nick22
          Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
          01-12-2025, 13:23
        Đang tải...
        X