Thông báo

Collapse
No announcement yet.

PIC 16F877A ko chạy. ai chỉ giúp e nguyên nhân với.

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

  • PIC 16F877A ko chạy. ai chỉ giúp e nguyên nhân với.

    e đang bắt đầu vs pic 16f877a,nhưng ko hiểu sao e cắm test mạch đk led nó lại ko chạy, mạch e mắc như sau
    chân 11 và 32 nối VDD +5V
    chân 12 và 31 nối GND
    chân 1 nối VDD qua trở 10k
    13, 14 nối thạch anh 20M mỗi chân nối thêm vs 1 con tụ 22,tụ nối đất.
    các b xem giùm e còn thiếu gì ko?
    thanks..!
    Nguyễn Huy Biên - 01649 802 694
    gmail :

  • #2
    kiểm tra:
    1 Nguồn
    2 Thạch anh

    3 Chip còn "sống" ko

    4 ( kiểm tra cấu hình ( configuration bits) xem đúng chưa Nhiều khi "em" cấu hình chưa đúng ( ví dụ nếu để ở chế độ debug bằng ICD thì ko chạy mà phải để ở chế độ debug phần mềm)
    chúc okie
    Be quan. Plz contact through email:

    Comment


    • #3
      a hướng dẫn e cụ thể hơn cái debug được ko ạh? e vẫn chưa hiểu?
      Nguyễn Huy Biên - 01649 802 694
      gmail :

      Comment


      • #4
        e sử dụng trình biên dịch nào em chú ý khi cấu hình - tức quy định chế độ làm việc ( tốt nhất là post code lên)
        Be quan. Plz contact through email:

        Comment


        • #5
          vâng. e dùng CCS. code e viết và đã chạy mô phỏng. đây là code:
          #include <16f877a.h>
          #use delay(clock=20M)
          void main()
          {
          set_tris_b(0x00);
          while(1)
          {output_b(0xff);delay_ms(30);
          output_b(0x00);delay_ms(30);
          }
          }
          Nguyễn Huy Biên - 01649 802 694
          gmail :

          Comment


          • #6
            sử dụng thêm
            #use fast_io(B)
            nhé

            Vì nó phải được khai báo khi sử dụng lênh set_tris nha
            Be quan. Plz contact through email:

            Comment


            • #7
              vâng. vậy nếu ko sử dụng câu lệnh đó thì code ko chạy ạh,
              Nguyễn Huy Biên - 01649 802 694
              gmail :

              Comment


              • #8
                uhhhhhhhhhhhhhhhhhhhhhhhhhhhh
                Be quan. Plz contact through email:

                Comment


                • #9
                  #include <16F877A.h>
                  #include <def_877a.h>
                  #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
                  #use Delay(Clock=20000000)


                  void main()
                  {
                  TRISA = 0xFF;
                  TRISD = 0x00;
                  trisc = 0x00;
                  TRISB = 0x00;

                  PORTC = 0xFF;
                  PORTD = 0xFF;
                  PORTB = 0xFF;

                  // enable_interrupts(INT_TIMER0);
                  enable_interrupts(GLOBAL);

                  while(1)
                  {
                  portb = 0x00;
                  portd = 0x00;
                  delay_ms(100);
                  portb = 0xff;
                  portd = 0xff;
                  delay_ms(100);
                  }
                  }
                  Quang Nhat
                  ---------------------------------------
                  Yahoo :quangnhat85ls
                  Mail :
                  Nhận thiết kế và ép nhựa cho đồ điện tử

                  Comment


                  • #10
                    bạn minhnhat sử dụng thêm một file định nghĩa rồi ( sao cho giống với phàn cứng)
                    Be quan. Plz contact through email:

                    Comment


                    • #11
                      vâng. e cám ơn 2 anh. để e thử lại xem sao
                      Nguyễn Huy Biên - 01649 802 694
                      gmail :

                      Comment


                      • #12
                        hì. nó nháy rồi. thanks 2 anh rất nhiều :X
                        Nguyễn Huy Biên - 01649 802 694
                        gmail :

                        Comment


                        • #13
                          nút Thanks to đùng kìa hehe
                          Be quan. Plz contact through email:

                          Comment


                          • #14
                            e còn 1 code này nữa. mô phỏng thì ok mà mạch thực thì ko chạy, pro nào chỉ giúp e luôn vs:

                            #include <16f877a.h>
                            #include <def_877a.h>
                            #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
                            #device 16f877a*=16ADC=10
                            #use delay(clock=4000000)
                            #use fast_io(b)
                            #use fast_io(d)
                            #byte portb = 0x6
                            #byte portd = 0x8
                            #bit rs = portd.0
                            #bit rw = portd.1
                            #bit en = portd.2
                            #bit sos = portd.3// bit canh bao
                            int8 malenh,dulieu,vitri;
                            int8 i,tram,chuc,donvi,x;
                            char baocaothuchanh[13]="TKMS K12D HOU";
                            char nhietdo[13]="Nhiet do la: ";
                            float ketqua;
                            char *text;
                            //--------------------------------------------------------
                            void lenh_lcd(int8 malenh)
                            {
                            portb=malenh;
                            en=1;
                            rs=0;
                            rw=0;
                            en=0;
                            delay_ms(3);
                            }
                            //--------------------------------------------------------
                            void data_lcd(int8 dulieu)
                            {
                            portb=dulieu;
                            en=1;
                            rs=1;
                            rw=0;
                            en=0;
                            delay_ms(3);
                            }
                            //--------------------------------------------------------
                            void hienthi(int8 vitri, char mang[])
                            {lenh_lcd(vitri);
                            text=mang;
                            for(i=0;i<=12;i++)
                            {data_lcd(*(text+i));
                            }
                            }
                            //---------------------------------------------------
                            void main()
                            {
                            set_tris_a(0x01);
                            set_tris_b(0);
                            set_tris_d(0);
                            //-------------------
                            setup_ADC(ADC_clock_internal);
                            setup_ADC_ports(AN0);
                            set_ADC_channel(0);
                            delay_ms(1);
                            //-------------------
                            lenh_lcd(0x38);
                            lenh_lcd(0x0e);
                            lenh_lcd(0x01);
                            lenh_lcd(0x80);
                            //---------------
                            hienthi(0x82,baocaothuchanh);
                            delay_ms(1);
                            hienthi(0xc0,nhietdo);
                            delay_ms(1);
                            //---------------------------------------------------
                            loop:

                            x = read_ADC()/2.049;
                            if (x >= 50)// nhiet do canh bao 50 do
                            {
                            sos = 1;
                            delay_ms(5);
                            sos = 0;
                            delay_ms(5);}
                            else
                            {
                            sos = 0;}
                            tram = x/100;
                            chuc = (x%100)/10;
                            donvi=(x%100)%10;
                            lenh_lcd(0xcd);
                            data_lcd(tram + 48);
                            delay_ms(1);
                            data_lcd(chuc + 48);
                            delay_ms(1);
                            data_lcd(donvi + 48);
                            delay_ms(1);

                            goto loop;
                            }
                            Nguyễn Huy Biên - 01649 802 694
                            gmail :

                            Comment

                            Về tác giả

                            Collapse

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

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

                            Collapse

                            Đang tải...
                            X