Thông báo

Collapse
No announcement yet.

cần giúp đỡ mạch đồng hồ

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

  • cần giúp đỡ mạch đồng hồ

    dh.zipem đang làm đồng hồ led 7 thanh(thay led 7 thanh bằng cách ghép led đơn) em có gửi mạch và code mong các pro giúp.em mô phỏng trên proteus thì chạy.nhưng làm mạch thật thì chỗ quét led qua con 4511 không thấy gì cả.và cả nữa là con DS1307 em cho xuất ra chân 7 1hz mà dùng đồng hồ kiểm tra không thấy gì cả.em đã thay con DS1307 mới mà cũng không được.mong các pro giúp em






    #include <mega8.h>
    #include <delay.h>

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

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

    unsigned char h,m,s;
    void disp(int add, unsigned char dat);
    void wr(unsigned char add, unsigned char dat);

    // External Interrupt 0 service routine
    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    // Place your code here

    unsigned char a,i=0;
    //#asm("cli");
    while(1)
    {

    if (PIND.2==0) {
    a++;
    if (a>2) a=0;
    delay_ms(100);
    }
    switch (a){

    case 0: {
    if (PIND.0==0) {
    h++; // up
    delay_ms(500);
    }
    if (PIND.1==0) {
    h--; // Down
    delay_ms(500);
    }
    if (h>12) h=h-12;
    if (h<1) h=12;
    disp(1,(h/10)%10);
    disp(2,h%10);
    break;
    }
    case 1: {
    if (PIND.0==0) {
    m++; // up
    if (m==60) m=0;
    delay_ms(300);
    }
    if (PIND.1==0) {
    m--; // Down
    if (m==0) m=59;
    delay_ms(300);
    }

    disp(3,(m/10)%10);
    disp(4,m%10);
    break;
    }
    }
    if (PIND.3==0) // Thoat chinh gio.
    {
    delay_ms(10);
    rtc_set_time(h,m,s);
    delay_ms(500);
    wr(0,0);
    break;
    }
    }
    }

    // Declare your global variables here

    void disp(int add, unsigned char dat)
    {
    unsigned char num_led[]={0,0x7f,0xbf,0xdf,0xef};
    PORTC=dat;
    PORTD=num_led[add];
    delay_ms(1);
    PORTD=0xff;
    }

    void wr(unsigned char add, unsigned char dat)
    {
    i2c_start();
    i2c_write(0xd0);
    i2c_write(add);
    i2c_write(dat);
    i2c_stop();
    }

    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // 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
    // Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out
    // State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0
    PORTC=0x0F;
    DDRC=0x0F;

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

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    TCCR0=0x00;
    TCNT0=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
    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: On
    // INT0 Mode: Low level
    // INT1: Off
    GICR|=0x40;
    MCUCR=0x00;
    GIFR=0x40;

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

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    // Analog Comparator Output: Off
    ACSR=0x80;
    SFIOR=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);
    //wr(0,0);
    //rtc_set_time(19,18,0);

    // Global enable interrupts
    #asm("sei")

    while (1)
    {
    // Place your code here
    rtc_get_time(&h,&m,&s);
    if (h>12) h=h-12;
    disp(1,(h/10));
    disp(2,h%10);
    disp(3,(m/10));
    disp(4,m%10);



    };
    }

  • #2
    Bạn đo nguồn xem thế nào, nếu dưới 4V thì nó sẽ chập chờn lắm, mà nó toàn ra số 65,65..65 hay là ko hiện số nào hết, Cái này lúc trước mình cũng bị, lý do là nguồn nhỏ hơn 4V, cách khắc phục là mắc song song 2 con 7805.
    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


    • #3
      Chụp cái hình ra file jpeg, rồi post lên mọi ng xem cho, thường là schematic sai rồi. Chủ yếu là giao tiếp IO mà thôi.
      EDA Engineer - Design on Demand
      Email:
      Web:

      Comment


      • #4
        Hi,
        Không xem được hàm DS1307_init() của bác được nên không rõ. Nếu DS1307 không xuất ra xung 1Hz thì có 2 nguyên nhân:
        - Ô nhớ chứa Giây chưa được ghi vào giá trị nhỏ hơn 0x7F. Muốn cho RTC chạy thì phải xoá bit MSB (bit7) của nó thì nó mới chạy còn không thì nó mặc định sẽ ngủ, không giao tiếp với bên ngoài.
        - Ô nhớ chứa cấu hình chưa được ghi giá trị đúng, để có xung 1Hz thì phải ghi vào ô nhớ này (vị trí 0x07) giá trị 0x10 hoặc 0x90.
        Một số con không có nguồn backup nó cũng không thèm chạy, bác xem xét thêm.
        Thân ái.
        Đường đến những ngày vinh quang không còn xa
        Con đường chúng ta... chúng ta đã chọn.

        Comment


        • #5
          cảm ơn các đại ca.em đã sửa được và chạy thành công rồi ak
          POST video lên khoe chiến tích.các bác đừng chém em nha.

          Comment


          • #6
            Lý do vì sao vậy bạn, mà ko có thứ, ngày, tháng, năm gì à. Đồng hồ mà thiếu mất mấy cái đó thì...
            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


            • #7
              Nguyên văn bởi manh89 Xem bài viết
              Bạn đo nguồn xem thế nào, nếu dưới 4V thì nó sẽ chập chờn lắm, mà nó toàn ra số 65,65..65 hay là ko hiện số nào hết, Cái này lúc trước mình cũng bị, lý do là nguồn nhỏ hơn 4V, cách khắc phục là mắc song song 2 con 7805.
              k phải dưới 4v mà là dưới 4.5v nó k chạy
              theo datasheet
              good luck !!!
              Last edited by tuankep6; 28-12-2011, 12:05.

              Email:
              Gmail:

              Comment


              • #8
                đồng hồ làm chỉ để hiển thị giờ phút,đó là ý của mình thiết kế.việc hiển thị ngày tháng,thì dùng led đơn như thế sẽ lóa hết cả mắt

                Comment


                • #9
                  Nguyên văn bởi tuankep6 Xem bài viết
                  k phải dưới 4v mà là dưới 4.5v nó mới chạy
                  theo datasheet
                  good luck !!!
                  Cái mạch đồng hồ của tui nguồn là 4.9V vẫn chạy ầm ầm đó thôi, ai bảo dưới 4.5V mới chạy, cái gì thì cũng phải thực tế chút chứ.
                  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


                  • #10
                    Nguyên văn bởi manh89 Xem bài viết
                    Cái mạch đồng hồ của tui nguồn là 4.9V vẫn chạy ầm ầm đó thôi, ai bảo dưới 4.5V mới chạy, cái gì thì cũng phải thực tế chút chứ.
                    bạn nhầm ak tôi bảo là áp làm việc của nó là trên 4.5v dưới 4.5v thì k chạy
                    chú 4.9v k chạy có mà die ak sao lại k thực tế .bạn phải đọc kỹ phần hỏi và trả lời chứ ông kia bảo dứoi 4v nó k chạy thì chẳng lẽ tôi lại phủ nhận bằng dưới 4.5v mới chạy có lẽ bị nhầm chút thôi
                    good luck !!!

                    Email:
                    Gmail:

                    Comment


                    • #11
                      Nguyên văn bởi tuankep6 Xem bài viết
                      bạn nhầm ak tôi bảo là áp làm việc của nó là trên 4.5v dưới 4.5v thì k chạy
                      chú 4.9v k chạy có mà die ak sao lại k thực tế .bạn phải đọc kỹ phần hỏi và trả lời chứ ông kia bảo dứoi 4v nó k chạy thì chẳng lẽ tôi lại phủ nhận bằng dưới 4.5v mới chạy có lẽ bị nhầm chút thôi
                      good luck !!!
                      Thì lần sau chú ý viết rõ ràng ra chút, chứ viết thế này thì ai mà chả nghĩ vậy : ''k phải dưới 4v mà là dưới 4.5v nó k chạy ''
                      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


                      • #12
                        Nguyên văn bởi manh89 Xem bài viết
                        Thì lần sau chú ý viết rõ ràng ra chút, chứ viết thế này thì ai mà chả nghĩ vậy : ''k phải dưới 4v mà là dưới 4.5v nó k chạy ''
                        cụ thể vậy mà bạn
                        good luck thôi cái đó ai k rõ thì vô data
                        good luck !!!

                        Email:
                        Gmail:

                        Comment


                        • #13
                          cảm ơn mọi người đã viết bài giúp mình giải đáp thắc mắc.Chúc anh em sức khỏe và thành công hơn nữa
                          "có gì không hiểu em lại hỏi"

                          Comment


                          • #14
                            Nguyên văn bởi chand Xem bài viết
                            cảm ơn mọi người đã viết bài giúp mình giải đáp thắc mắc.Chúc anh em sức khỏe và thành công hơn nữa
                            "có gì không hiểu em lại hỏi"
                            có j k hiểu bạn cứ post bài có j a/e biết sẽ giúp thôi
                            giúp người rồi cũng có lúc ngừoi giúp
                            good luck !!!

                            Email:
                            Gmail:

                            Comment


                            • #15
                              vâng bác nói chí phải.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X