Thông báo

Collapse
No announcement yet.

Gặp vấn đề với hiển thị LED7Seg

Collapse
This topic is closed.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Gặp vấn đề với hiển thị LED7Seg

    chào mọi người
    e đang hiển thị LED7 thanh
    e dùng ATmega16L
    mình đang test phần hiển thị qua LED 7 thanh mà chưa được
    mình giả mã từ BCD -7 thanh bằng con 7447
    LED A chung
    dùng bóng A1015
    cho mình hỏi 1 chút với ai đã làm với con A1015 thì chân ở giữa là chân E phải ko(ở datasheet thì nó là chân C ) vì bạn mình nó test với chân E ở giữa thì ok,,mọi người cho biết tại sao với???
    đây là chương trình và nguyên lý mà em vẽ
    em test với thì thấy nháy và toàn thấy hiển thị số 8 ở 4 led (e test với led mà coi chân E ở giữa,tức là em cấp nguồn cho chân giữa)
    Attached Files

  • #2
    A1015 thứ tự chân là ECB E quay lên nguồn. Vấn đề là bạn xem lại nguyên lý con này thôi cũng dễ nhầm lắm đấy.

    Nếu không nhầm thì con này quay ngược nó vẫn chạy có điều dễ die hơn
    Vẫn biết mỗi lần xa là một lần về lại...

    Comment


    • #3
      chân giữa là C
      Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

      Comment


      • #4
        Nguyên văn bởi hiodong Xem bài viết
        chân giữa là C
        theo dattaasheet thì đúng là chân C ở giữa
        nhưng bạn em nó bảo khi làm mạch thì với bóng A thì chân E ở giứa và nó đá hiển thị ngon lành

        Comment


        • #5
          Nguyên văn bởi bk2012 Xem bài viết
          chào mọi người
          e đang hiển thị LED7 thanh
          e dùng ATmega16L
          mình đang test phần hiển thị qua LED 7 thanh mà chưa được
          mình giả mã từ BCD -7 thanh bằng con 7447
          LED A chung
          dùng bóng A1015
          cho mình hỏi 1 chút với ai đã làm với con A1015 thì chân ở giữa là chân E phải ko(ở datasheet thì nó là chân C ) vì bạn mình nó test với chân E ở giữa thì ok,,mọi người cho biết tại sao với???
          đây là chương trình và nguyên lý mà em vẽ
          em test với thì thấy nháy và toàn thấy hiển thị số 8 ở 4 led (e test với led mà coi chân E ở giữa,tức là em cấp nguồn cho chân giữa)
          Như mọi người nói, thứ tự chân của A1015 nhìn thẳng mặt trước, từ trái qua phải là ECB. Như vậy bạn phải nối lại cho đúng, E lên Vcc, C xuống tải.
          Về phần code thì có vấn đề: port đưa dữ liệu ra và port điều khiển các A1015 để cấp nguồn cho LED đều là PORTA!!
          Một chu trình quét LED nên theo thứ tự sau: (ban đầu cắt hết nguồn của LED (turn off các A1015)).
          1. đưa dữ liệu của digit thứ 1 ra.
          2. có thể delay vài micro giây.
          3. cấp nguồn cho LED digit 1 (turn on chỉ một mình A1015 của digit 1).
          4. delay 1 vài ms (có thể đi làm việc khác nếu phải xử lý song song nhiều việc).
          5. cắt nguồn của LED digit 1 (turn off A1015 tương ứng).
          6. có thể delay vài micro giây.

          Làm lại từ bước 1 đến bước 6 với các digit còn lại.
          Khi bạn không làm đúng thứ tự các bước, sẽ xuất hiện một số hiện tượng như kiểu các digit sáng mờ mờ ở 1 số thanh không được phép hiển thị.
          Với code bạn đã viết, kể cả bạn không dùng chung port dữ liệu với port điều khiển các A1015, sẽ bị hiện tượng sáng lây giữa các digit sang nhau. Lý do là vì trước khi chuyển sang digit tiếp sau, bạn không cắt nguồn của digit trước đó.
          Thân mến,

          Comment


          • #6
            Nguyên văn bởi bk2012 Xem bài viết
            chào mọi người
            e đang hiển thị LED7 thanh
            e dùng ATmega16L
            mình đang test phần hiển thị qua LED 7 thanh mà chưa được
            mình giả mã từ BCD -7 thanh bằng con 7447
            LED A chung
            dùng bóng A1015
            cho mình hỏi 1 chút với ai đã làm với con A1015 thì chân ở giữa là chân E phải ko(ở datasheet thì nó là chân C ) vì bạn mình nó test với chân E ở giữa thì ok,,mọi người cho biết tại sao với???
            đây là chương trình và nguyên lý mà em vẽ
            em test với thì thấy nháy và toàn thấy hiển thị số 8 ở 4 led (e test với led mà coi chân E ở giữa,tức là em cấp nguồn cho chân giữa)
            A1015 chân giữa chính xác là C, nhìn vào mặt linh kiện, bên trái là E, phải là B
            Với tran đóng vỏ kiểu TO220 to thì chân giữa vần là C, thứ tự E,B ngược lại.

            Khi bạn test thấy toàn hiển thị số 8 thì cần xem lại các chân 3,4,5, tôi không nhớ rõ là chân nào cần kéo lên VCC hay GND, bạn xem datasheet.

            Quét chế độ multiplex thì như anh Blackmoon đã nói. bạn làm theo đó.
            Ethernet-RS232, PIC Webserver, RFID Reader
            CallerID, Cảnh báo BTS, ...
            0988006696
            linhnc308@gmail.com
            http://linhnc308.blogspot.com

            Comment


            • #7
              nguyên nhân???

              Nguyên văn bởi blackmoon Xem bài viết
              Như mọi người nói, thứ tự chân của A1015 nhìn thẳng mặt trước, từ trái qua phải là ECB. Như vậy bạn phải nối lại cho đúng, E lên Vcc, C xuống tải.
              Về phần code thì có vấn đề: port đưa dữ liệu ra và port điều khiển các A1015 để cấp nguồn cho LED đều là PORTA!!
              Một chu trình quét LED nên theo thứ tự sau: (ban đầu cắt hết nguồn của LED (turn off các A1015)).
              1. đưa dữ liệu của digit thứ 1 ra.
              2. có thể delay vài micro giây.
              3. cấp nguồn cho LED digit 1 (turn on chỉ một mình A1015 của digit 1).
              4. delay 1 vài ms (có thể đi làm việc khác nếu phải xử lý song song nhiều việc).
              5. cắt nguồn của LED digit 1 (turn off A1015 tương ứng).
              6. có thể delay vài micro giây.

              Làm lại từ bước 1 đến bước 6 với các digit còn lại.
              Khi bạn không làm đúng thứ tự các bước, sẽ xuất hiện một số hiện tượng như kiểu các digit sáng mờ mờ ở 1 số thanh không được phép hiển thị.
              Với code bạn đã viết, kể cả bạn không dùng chung port dữ liệu với port điều khiển các A1015, sẽ bị hiện tượng sáng lây giữa các digit sang nhau. Lý do là vì trước khi chuyển sang digit tiếp sau, bạn không cắt nguồn của digit trước đó.
              Thân mến,
              Trước hêt cảm ơn mọ ngừoi đã ghé qua
              Cả ngày hôm nay ngồi ngâm cứu,cũng đã cho hiển thị lên LED các số,nhưng LED lỗi là chỉ có LED hàng nghìn là sáng.còn các LED còn lại sáng lờ mờ?em chưa biết nguyên nhân tại sao?hix
              đây là code em post lên mọi người xem cho em

              /************************************************** ***
              This program was produced by the
              CodeWizardAVR V1.24.8d Professional
              Automatic Program Generator
              © Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.
              http://www.hpinfotech.com

              Project :
              Version :
              Date : 4/16/2008
              Author : F4CG
              Company : F4CG
              Comments:


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

              #include <mega16.h>
              #include <delay.h>
              void data(unsigned char x)
              {
              switch(x)
              {
              case 0: {PORTA=0xF0;break;} // code lần trước là em để PORTA=0x0... nên lúc nào LED cũng sáng
              case 1: {PORTA=0xF1;break;}
              case 2: {PORTA=0xF2;break;}
              case 3: {PORTA=0xF3;break;}
              case 4: {PORTA=0xF4;break;}
              case 5: {PORTA=0xF5;break;}
              case 6: {PORTA=0xF6;break;}
              case 7: {PORTA=0xF7;break;}
              case 8: {PORTA=0xF8;break;}
              case 9: {PORTA=0xF9;break;}
              }
              }
              void hienthi(int n)
              {
              int a,b,c,d;
              a=n/1000; // lay so hang nghin
              b=(n-a*1000)/100; // lay so hang tram
              c=(n-a*1000-b*100)/10; // lay so hang chuc
              d=(n-a*1000-b*100-c*10);// lay so hang don vi

              //Quet led
              //PORTA=0xFF;
              data(d); // day data ra Led don vi,hàm này cũng đồng thời tắt các LED luôn vì PORTA.(4,5,6,7)=1 nên có thể bỏ PORTA=0xFF
              PORTA.4=0; //BAT LED DON VI
              delay_ms(0.5); // TAO TRE


              //PORTA=0xFF; //tac cac led
              data(c);
              PORTA.5=0 ; // Bat Led hang chuc sang
              delay_ms(0.5); // tao tre


              //PORTA=0xFF ; // tat cac led
              data(b);
              PORTA.6=0; // bat Led hang tram
              delay_ms(0.5);
              //PORTA.6=1;

              //PORTA=0xFF; //tat cac led
              data(a);
              PORTA.7=0; // bat Led hang nghin
              delay_ms(0.5);
              //PORTA.7=1;
              }

              // Declare your global variables here

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

              // Input/Output Ports initialization
              // Port A initialization
              // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
              // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
              PORTA=0x00;
              DDRA=0xFF;

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

              while (1)
              {
              // Place your code here
              hienthi(1111);
              };
              }


              em vẫn dùng cấp nguồn cho chân ở giữa(tức là vẫn coi chân giữa là chân E)
              em để delay=5ms thì nháy
              delay=35 ms thì nó sáng từng LED một
              emđelay=0.5 ms thì nó sáng mỗi led hàng nghìn,còn các led vẫn sáng nhưng lờ mờ
              các anh xem cho em là tại sao
              rất cảm ơn các anh
              Last edited by sphinx; 17-04-2008, 00:03.

              Comment


              • #8
                Khổ quá ông bạn ơi!
                Đã bảo là nối lại cho đúng chân: E lên Vcc, C xuống tải. Dùng transistor thuận (PNP) thì phải mắc như vậy. Trước khi code thì phần cứng phải đúng đã. Sáng tạo là nên được khuyến khích, nhưng cũng có những cái không nên ... sáng tạo.
                Còn về phần quét LED:
                - delay 5ms cho 1 digit: có 4 digit, vậy là tổng số mất 20ms, thông thường thì không nháy đâu. Chắc đến 80% là bạn chưa set fuse để mega16 chạy với thạch anh ngoài (hàng mới được đặt sẵn fuse để chạy với dao động RC 1MHz bên trong cơ), do đó clock chỉ còn 1MHz thay vì 8MHz thì làm gì cũng lâu gấp 8 lần, quét 5m cho mỗi digit sẽ thành 40ms/digit, nhìn thấy nháy là đúng thôi.
                - delay 35 ms cho 1 digit: nếu đúng là chưa set fuse thì hiển thị lần lượt từng số là đúng rồi, vì delay quá lớn.
                - delay 0.5 ms cho 1 digit: bạn dùng thư viện mà không đọc kỹ, đối số của hàm delay_ms là kiểu nguyên không dấu (unsigned int), vậy mà lúc gọi hàm thì phang kiểu float vào (0.5) thì nó hiểu sao được. Nhiều khả năng nó hiểu là 0 (không có trễ), vì thế các digit hàng trăm, chục và đơn vị không có trễ sáng (đúng ra là rất ít, thời gian chỉ bằng thời gian vào rồi ra hàm delay_ms) nên nó sáng lờ mờ. Còn tại sao LED hàng nghìn lại sáng? Vì nó được delay nhiều hơn cả so với những digit kia (thời gian delay sáng = thời gian vào rồi ra hàm delay_ms giống những thằng khác, nhưng lại thêm được thời gian ra hàm hienthi, thêm thời gian vào lại hàm hienthi, thêm cả thời gian tính toán ra các số hàng nghìn, trăm, chục, đơn vị nữa).
                Thân mến,

                Comment


                • #9
                  Qua Theard này tham khảo thêm.
                  http://dientuvietnam.net/forums/showthread.php?t=8119

                  Comment


                  • #10
                    Nguyên văn bởi blackmoon Xem bài viết
                    Khổ quá ông bạn ơi!
                    Đã bảo là nối lại cho đúng chân: E lên Vcc, C xuống tải. Dùng transistor thuận (PNP) thì phải mắc như vậy. Trước khi code thì phần cứng phải đúng đã. Sáng tạo là nên được khuyến khích, nhưng cũng có những cái không nên ... sáng tạo.
                    Còn về phần quét LED:
                    - delay 5ms cho 1 digit: có 4 digit, vậy là tổng số mất 20ms, thông thường thì không nháy đâu. Chắc đến 80% là bạn chưa set fuse để mega16 chạy với thạch anh ngoài (hàng mới được đặt sẵn fuse để chạy với dao động RC 1MHz bên trong cơ), do đó clock chỉ còn 1MHz thay vì 8MHz thì làm gì cũng lâu gấp 8 lần, quét 5m cho mỗi digit sẽ thành 40ms/digit, nhìn thấy nháy là đúng thôi.
                    - delay 35 ms cho 1 digit: nếu đúng là chưa set fuse thì hiển thị lần lượt từng số là đúng rồi, vì delay quá lớn.
                    - delay 0.5 ms cho 1 digit: bạn dùng thư viện mà không đọc kỹ, đối số của hàm delay_ms là kiểu nguyên không dấu (unsigned int), vậy mà lúc gọi hàm thì phang kiểu float vào (0.5) thì nó hiểu sao được. Nhiều khả năng nó hiểu là 0 (không có trễ), vì thế các digit hàng trăm, chục và đơn vị không có trễ sáng (đúng ra là rất ít, thời gian chỉ bằng thời gian vào rồi ra hàm delay_ms) nên nó sáng lờ mờ. Còn tại sao LED hàng nghìn lại sáng? Vì nó được delay nhiều hơn cả so với những digit kia (thời gian delay sáng = thời gian vào rồi ra hàm delay_ms giống những thằng khác, nhưng lại thêm được thời gian ra hàm hienthi, thêm thời gian vào lại hàm hienthi, thêm cả thời gian tính toán ra các số hàng nghìn, trăm, chục, đơn vị nữa).
                    Thân mến,
                    trước hết cảm ơn anh blackmoon đã đóng góp ý kiến
                    hôm qua sau khi em gửi bài
                    em đã chỉnh lại delay=1ms thì thấy các LED sáng đều nhau(nhưng ko rực rỡ)
                    (em vẫn đẻ chân giữa nối với nguồn,tối nay em thử với chân giữa nối với tải xem sao?)
                    Bác Blackmoon nói rất đúng
                    Nhưng bác cho em hỏi là,trong ATmega16L có thể fuse bit cho thạch anh bên trong chạy với 8M ko(theo em được biết thì nếu để dao đông nội thì 0100 là 8M nội,còn để 0001 thì là dùng dao dộng nội là 1M).em để fuse bit là 0100 tức ầ 8M

                    lí do vì sao em vẫn coi chân Elà chân giữa là vì em đã test ko có VXL,giả sử em đưa vào các chân DCBA của 7447 lần lượt là 0011(số 3)và đưa lần lượt các cực B của A1015 xuống GND(vì bóng này mở là mức 0)thì thấy các LED sáng rực rõ với lần lựot các số 3
                    em vẽ SCH thì để chân C nối với tải,còn E lên nguồn,nhưng khi làm mạch thì em nối chân E với taỉ còn chân giữa (C ) lên nguồn???em ko hiểu tại sao lại khác với datasheet,tối nay em test xem thế nào
                    rất cảm ơn mọi người

                    Comment


                    • #11
                      em đã chỉnh lại delay=1ms thì thấy các LED sáng đều nhau(nhưng ko rực rỡ)
                      (em vẫn đẻ chân giữa nối với nguồn,tối nay em thử với chân giữa nối với tải xem sao?)
                      Chẳng nhẽ tôi lại lớn tiếng chửi bới bạn ở đây. Tại sao lại cố chấp giữ nguyên cái sai mà không chịu sửa. A Blackmoon đã nói rồi, mọi người cũng đã góp ý rồi vậy mà bạn vẫn không thèm sửa. Tôi đọc đến cái câu "em vẫn để chân giữa nối với nguồn" là đầu tôi đã thấy nóng rồi, vậy mà sau khi anh Blackmoon nói, bạn vẫn "em vẫn để chân giữa nối với nguồn".
                      Những lời khuyên dành cho bạn đều từ những thành viên có ít nhất 4 ~ 5 năm kinh nghiệm với Vi điều khiển. Phải biết học hỏi.
                      Ethernet-RS232, PIC Webserver, RFID Reader
                      CallerID, Cảnh báo BTS, ...
                      0988006696
                      linhnc308@gmail.com
                      http://linhnc308.blogspot.com

                      Comment


                      • #12
                        Nguyên văn bởi blackmoon Xem bài viết
                        Khổ quá ông bạn ơi!
                        Đã bảo là nối lại cho đúng chân: E lên Vcc, C xuống tải. Dùng transistor thuận (PNP) thì phải mắc như vậy. Trước khi code thì phần cứng phải đúng đã. Sáng tạo là nên được khuyến khích, nhưng cũng có những cái không nên ... sáng tạo.
                        Còn về phần quét LED:
                        - delay 5ms cho 1 digit: có 4 digit, vậy là tổng số mất 20ms, thông thường thì không nháy đâu. Chắc đến 80% là bạn chưa set fuse để mega16 chạy với thạch anh ngoài (hàng mới được đặt sẵn fuse để chạy với dao động RC 1MHz bên trong cơ), do đó clock chỉ còn 1MHz thay vì 8MHz thì làm gì cũng lâu gấp 8 lần, quét 5m cho mỗi digit sẽ thành 40ms/digit, nhìn thấy nháy là đúng thôi.
                        - delay 35 ms cho 1 digit: nếu đúng là chưa set fuse thì hiển thị lần lượt từng số là đúng rồi, vì delay quá lớn.
                        - delay 0.5 ms cho 1 digit: bạn dùng thư viện mà không đọc kỹ, đối số của hàm delay_ms là kiểu nguyên không dấu (unsigned int), vậy mà lúc gọi hàm thì phang kiểu float vào (0.5) thì nó hiểu sao được. Nhiều khả năng nó hiểu là 0 (không có trễ), vì thế các digit hàng trăm, chục và đơn vị không có trễ sáng (đúng ra là rất ít, thời gian chỉ bằng thời gian vào rồi ra hàm delay_ms) nên nó sáng lờ mờ. Còn tại sao LED hàng nghìn lại sáng? Vì nó được delay nhiều hơn cả so với những digit kia (thời gian delay sáng = thời gian vào rồi ra hàm delay_ms giống những thằng khác, nhưng lại thêm được thời gian ra hàm hienthi, thêm thời gian vào lại hàm hienthi, thêm cả thời gian tính toán ra các số hàng nghìn, trăm, chục, đơn vị nữa).
                        Thân mến,
                        e đã chạy thử với Port A thì các LED sáng với delay=1ms
                        nhưng chuyển tới port C thì chỉ thấy sáng led nghìn và trăm(nhưng nếu là số 4 thì chỉ có nửa số )????
                        #include <delay.h>
                        void data(unsigned char x)
                        {
                        switch(x)
                        {
                        case 0: {PORTC=0xF0;break;}
                        case 1: {PORTC=0xF1;break;}
                        case 2: {PORTC=0xF2;break;}
                        case 3: {PORTC=0xF3;break;}
                        case 4: {PORTC=0xF4;break;}
                        case 5: {PORTC=0xF5;break;}
                        case 6: {PORTC=0xF6;break;}
                        case 7: {PORTC=0xF7;break;}
                        case 8: {PORTC=0xF8;break;}
                        case 9: {PORTC=0xF9;break;}
                        }
                        }
                        void hienthi(int n)
                        {
                        int a,b,c,d;
                        a=n/1000; // lay so hang nghin
                        b=(n-a*1000)/100; // lay so hang tram
                        c=(n-a*1000-b*100)/10; // lay so hang chuc
                        d=(n-a*1000-b*100-c*10);// lay so hang don vi

                        //Quet led

                        data(d); // day data ra Led don vi ,vaf ham data nay cung giu vai tro tat cac A1015
                        PORTC.4=0; //BAT LED DON VI
                        delay_ms(1); // TAO TRE



                        data(c);
                        PORTC.5=0 ; // Bat Led hang chuc sang
                        delay_ms(1); // tao tre



                        data(b);
                        PORTC.6=0; // bat Led hang tram
                        delay_ms(1);



                        data(a);
                        PORTC.7=0; // bat Led hang nghin
                        delay_ms(1);

                        }
                        // Declare your global variables here

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

                        // 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=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
                        // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
                        PORTC=0x00;
                        DDRC=0xFF;

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

                        while (1)
                        {
                        // Place your code here
                        hienthi(3456);
                        };
                        }

                        Comment


                        • #13
                          Mọi người rất có tinh thần giúp bạn, nhưng tôi thấy với cái kiểu ngoan cố như của bạn thì nên Close luồng này tại đây!

                          PS: Việc ko chạy tại Port C là do 1 nguyên nhân rất căn bản mà những người học tập ko bài bản khó mà biết được.
                          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


                          • #14
                            Về học lại Điện tử căn bản nhé.
                            Topic closed
                            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

                            Về tác giả

                            Collapse

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

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

                            Collapse

                            Đang tải...
                            X