RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

Giúp Mình Về Việc Quet Led 7 đoạn

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • thanhtung86
    Thành viên chính thức
    • Jan 2008
    • 73

    #1

    Giúp Mình Về Việc Quet Led 7 đoạn

    các cao nhân AVR giúp mình với
  • thanhtung86
    Thành viên chính thức
    • Jan 2008
    • 73

    #2
    #include <mega16.h>
    #include <delay.h>
    #include <stdio.h>
    #define A PORTC.0//A,B,C,D nối vào ic giải mã 74247
    #define B PORTC.1
    #define C PORTC.2
    #define D PORTC.3
    #define T1 PORTC.5 // T1,t2,T3 nối vào IC 74138 dùng để quét 5 led(anod)
    #define T2 PORTC.6
    #define T3 PORTC.7
    unsigned long a,b,c,d,e,f,g,h,sodem,cnt;
    void giaima(unsigned long cnt)
    {
    switch (cnt)
    {
    case 0:
    A=0;
    B=0;
    C=0;
    D=0;
    break;
    case 1:
    A=1;
    B=0;
    C=0;
    D=0;
    break;
    case 2:
    A=0;
    B=1;
    C=0;
    D=0;
    break;
    case 3:
    A=1;
    B=1;
    C=0;
    D=0;
    break;
    case 4:
    A=0;
    B=0;
    C=1;
    D=0;
    break;
    case 5:
    A=1;
    B=0;
    C=1;
    D=0;
    break;
    case 6:
    A=0;
    B=1;
    C=1;
    D=0;
    break;
    case 7:
    A=1;
    B=1;
    C=1;
    D=0;
    break;
    case 8:
    A=0;
    B=0;
    C=0;
    D=1;
    break;
    case 9:
    A=1;
    B=0;
    C=0;
    D=1;
    break;
    }
    }
    sodem=DATA;//dât cần xuất ra led
    a=(sodem/10000);
    b=(sodem-a*10000)/1000;
    c=(sodem-a*10000-b*1000)/100;
    d=(sodem-a*10000-b*1000-c*100)/10;
    e=(sodem-a*10000-b*1000-c*100-d*10);
    //------------------ ---------------------------------------
    cnt=a;
    giaima(cnt);
    //PORTA=0b11101111;
    T1=1;
    T2=1;
    T3=0;
    delay_ms(2);
    //------------------
    cnt=b;
    giaima(cnt);
    T1=0;
    T2=0;
    T3=1;
    delay_ms(2);
    //------------------
    cnt=c;
    giaima(cnt);
    T1=1;
    T2=0;
    T3=1;
    delay_ms(2);
    //-----------------------
    cnt=d;
    giaima(cnt);
    T1=0;
    T2=1;
    T3=1;
    // PORTA=0b10111101;
    delay_ms(2);
    PORTA=0xFF;
    //------------------
    cnt=e;
    giaima(cnt);
    T1=1;
    T2=1;
    T3=1;
    delay_ms(2);
    PORTA=0xFF;

    Comment

    • thanhtung86
      Thành viên chính thức
      • Jan 2008
      • 73

      #3
      cũng chương trình quét vậy mình dùng các POTRA thi OK nhưng dùng qua PORTC thi led sáng led không.mình đã thử với nhiều ic khác nhưng vẫn vậy.kô biết nguyên nhân tại sao
      mong cao nhân giúp đỡ

      Comment

      • thanhtung86
        Thành viên chính thức
        • Jan 2008
        • 73

        #4
        mình có cảm giác như PORTC bị lỗi hay sao đó

        Comment

        • thanhtung86
          Thành viên chính thức
          • Jan 2008
          • 73

          #5
          đây là đoạn chương trình khai báo trong main
          PORTA=0xFF;
          DDRA=0xFF;
          PORTB=0xFF;
          DDRB=0xFE;
          PORTC=0xff;
          DDRC=0xFF;
          PORTD=0xff;
          DDRD=0x00;
          TCCR0=0x00;
          TCNT0=0x00;
          OCR0=0x00;
          TCCR1A=0x00;
          TCCR1B=0x00;
          TCNT1H=0x00;
          TCNT1L=0x00;
          ICR1H=0x00;
          ICR1L=0x00;
          OCR1AH=0x00;
          OCR1AL=0x00;
          OCR1BH=0x00;
          OCR1BL=0x00;
          ASSR=0x00;
          TCCR2=0x00;
          TCNT2=0x00;
          OCR2=0x00;
          // INT2: On
          // INT2 Mode: Falling Edge
          GICR|=0x00;
          MCUCR=0x00;
          MCUCSR=0x00;
          GIFR=0x00;
          TIMSK=0x00;
          ACSR=0x80;
          SFIOR=0x00;

          Comment

          • hotuanhai
            Thành viên chính thức
            • Sep 2007
            • 65

            #6
            ban bo chuc nang jtag o portc thi portc moi hoat dong nhu io binh thuong. chuc ban thanh cong

            Comment

            • thanhtung86
              Thành viên chính thức
              • Jan 2008
              • 73

              #7
              cảm ơn bạn'hotuanhai' minh đã làm được rồi

              Comment

              • thanhtung86
                Thành viên chính thức
                • Jan 2008
                • 73

                #8
                chúc diễn đàn thành công vì nền điện tử việt nam

                Comment

                • bk_exp
                  Thành viên chính thức
                  • Jul 2006
                  • 71

                  #9
                  khi chuyển qua mấy con AVR có JTAG lúc đầu chưa biết mọi người không bỏ nó đi nên mấy chân dùng cho JTAG lập trình hok đc,chỉ cần set lại Fusebit để bỏ nó đi thôi mà

                  Comment

                  • Proturtle
                    Thành viên mới
                    • Feb 2008
                    • 24

                    #10
                    Nguyên văn bởi bk_exp Xem bài viết
                    khi chuyển qua mấy con AVR có JTAG lúc đầu chưa biết mọi người không bỏ nó đi nên mấy chân dùng cho JTAG lập trình hok đc,chỉ cần set lại Fusebit để bỏ nó đi thôi mà
                    Haha! Anh Nam cũng vào đây ah. Em có con mega16 set fuse JTAGEN = 0 mà PORTC vẫn không hoạt động ở GPIO được. Chả hiểu thế nào nữa???

                    Comment

                    • sphinx
                      Moderator
                      • Jul 2005
                      • 871

                      #11
                      Bạn phải để JTAGEN = 1 (tức là không được tick) chứ không phải =0 (tức là Enable chức năng JTAG).
                      PNLab
                      Mạch nạp/debug ULink2, Jlink ARM USB
                      Mạch nạp AVR, PIC, 8051, MSP430 USB
                      Mạch phát triển STM32, ARM9, ARM11
                      more...www.pnlabvn.com

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...