Thông báo

Collapse
No announcement yet.

!!!! giup em ve cong P0 !!!!!

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

  • !!!! giup em ve cong P0 !!!!!

    em mới học lập trình 89c51 nên còn gà , em lập trình bằng keil c nhưng không hiểu tại sao cái Pin của P0 không có dữ liệu , còn P0 thì lại có . Em mô phỏng bằng proteus thì P0 không xuất dữ liệu .
    Mong các anh chỉ em cách khắc phục .

  • #2
    Bạn port hình lên xem và code của bạn nữa. Cổng P0 lưu ý phải có trở kéo đó.
    n
    ĐT: 0986 492 489

    Tham khảo:

    Comment


    • #3
      thanks minhhieu , đây là code của mình :
      #include<regx52.h>
      void delay(unsigned int ms)
      {
      unsigned int i;
      unsigned char j;
      for(i=0;i<ms;i++)
      for(j=0;j<121;j++)
      {}
      }
      void led(unsigned char a,b,c,d,e,f,g,h,n,m,q,w,r,t,v,x,z)
      {
      unsigned char code random[3]={0x04,0x06,0x16};
      unsigned char code tuchon[3]={0x56,0xd6,0xd7};
      unsigned char code luachon[3]={0xdf,0xef,0xff};
      unsigned char code tien[8]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
      unsigned char code chon[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
      unsigned char code dem[3]={0x01,0x03,0x07};
      switch(a)
      {


      case 2:
      P1=P2=P3=0xff;
      P0=0x01;delay(10000);
      P0=0x03;delay(10000);
      P0=0x07;delay(10000);
      P0=0x03;delay(10000);
      P0=0x01;delay(10000);
      P0=0;

      case 4:
      P1=P2=P3=0xff;
      m=20;
      while(m--)
      {
      P0=0x07;delay(1000);
      P0=0x00;delay(1000);
      }

      case 5:
      P1=P2=P3=0xff;
      for(q=0;q<3;q++)
      {P0=dem[q];delay(1000);}

      case 6:
      P0=0x07;
      for(n=0;n<8;n++)
      {P1=P2=P3=tien[n];delay(1000);}

      case 7:
      P0=0x07;
      for(w=0;w<3;w++)
      {P1=P2=P3=random[w];delay(10000);}
      for(r=0;r<3;r++)
      {P1=P2=P3=tuchon[r];delay(1000);}
      for(t=0;t<3;t++)
      {P1=P2=P3=luachon[t];delay(100);}
      case 8:
      P0=0;
      P0_1=1;
      for(v=0;v<8;v++)
      {P1=tien[v];delay(10000);}
      if(P1_7==1)
      {
      for(x=0;x<8;x++)
      {P2=tien[x];delay(10000);}
      }
      if(P2_7==1)
      {
      for(z=0;z<8;z++)
      {P3=tien[z];delay(10000);}
      }
      P0_1=0;
      P0_0=1;
      for(v=0;v<8;v++)
      {P1=tien[v];delay(10000);}
      if(P1_7==1)
      {
      for(x=0;x<8;x++)
      {P2=tien[x];delay(10000);}
      }
      if(P2_7==1)
      {
      for(z=0;z<8;z++)
      {P3=tien[z];delay(10000);}
      }
      P0=0;
      P0_2=1;
      for(v=0;v<8;v++)
      {P1=tien[v];delay(10000);}
      if(P1_7==1)
      {
      for(x=0;x<8;x++)
      {P2=tien[x];delay(10000);}
      }
      if(P2_7==1)
      {
      for(z=0;z<8;z++)
      {P3=tien[z];delay(10000);}
      }
      P0=0;






      }

      }
      void main(void)
      {

      unsigned char dem;

      while(1)
      {
      P0_3=P0_4=P0_5=P0_6=P0_7=0;
      for(dem=0;dem<=8;dem++)
      {led(dem);delay(1000);}
      }
      }

      mình nạp vào 89c52 nhưng ic không chạy ( thạch anh , tụ , EA , reset đều đúng ) , mong bạn giúp đỡ

      Comment


      • #4
        hình đây

        Comment


        • #5
          8051 ở port0 nếu:
          - Input thì ko cần R kéo
          - Output thì phải có R kéo mới dùng dc
          Mạch nạp Pickit 2 SE ---> 170k BH 1 năm
          Pic 18F2550 PDIP Thailand bao test 60K/1c


          Comment


          • #6
            thanks vidieukhien1

            Comment


            • #7
              anh chị đi trước cho em hỏi : em lắp mạch đúng như sơ đồ , nhưng 89c51 không chạy ( thạch anh , tụ , EA , reset đều đúng)


              P0 không xuất ra dữ liệu+ cũng không hoạt động
              em không biết mình sai ở chổ nào và đang điên đầu vì nó . Rất mong sự giúp đở của anh chị

              Comment


              • #8
                Code bạn dài quá, viết 1 chương trình ngắn gọn để test xem P0 có hoạt động không đã, rất có thể P0 đã die. Nguyên tắc debug là vậy, từ thấp lên cao, nhìn cái code của bạn dài quá nản lắm, chỉ cần 1 chút ko đúng, thì sẽ không chạy như ý muốn rồi.
                Nếu không bạn thử test trên proteus thử xem

                Comment


                • #9
                  #include<regx52.h>
                  void delay(unsigned int ms)
                  {
                  unsigned int i;
                  unsigned char j;
                  for(i=0;i<ms;i++)
                  for(j=0;j<121;j++)
                  {}
                  }

                  void main ()
                  {
                  while(1)
                  {
                  P0=0x01;delay(1000);
                  P0=0x03;delay(1000);
                  P0=0x07;delay(1000);
                  P0=0x0f;delay(1000);
                  P0=0x1f;delay(1000);
                  P0=0x3f;delay(1000);
                  P0=0x7f;delay(1000);
                  P0=0xff;delay(1000);
                  }



                  }
                  đây là code mình viết lại , mình cũng giả lập bằng proteul , thấy mạch chạy ngon lành , nhưng lắp mạch thật thì không chạy gì hết . Không biết có phải do ic không nữa ? . Mình lắp mạch theo hình sau :






                  2 hình này mình giả lập bằng proteul thì mạch chạy đúng hết .

                  Comment


                  • #10
                    Nguyên văn bởi thelaxong Xem bài viết
                    em mới học lập trình 89c51 nên còn gà , em lập trình bằng keil c nhưng không hiểu tại sao cái Pin của P0 không có dữ liệu , còn P0 thì lại có . Em mô phỏng bằng proteus thì P0 không xuất dữ liệu .
                    Mong các anh chỉ em cách khắc phục .
                    chao ban! ve phan chuong trinh minh xem qua thi ko co gi phai ban! con phan cung ban ket noi the nao nua chu! keil c la 1 phan mem lap trinh va mo phong rat tot cho vdk nen ko co gi noi rui! ve phan cung ban nen xem lai vi doi voi vdk 8051 thi cong P0 duoc thiet ke kieu mang ho( ho colector) nen muon hoat dong duoc ban can phai mac 1 dien tro thanh tri gia 10k len Vcc la ok! chuc ban thanh cong

                    Comment


                    • #11
                      Nguyên văn bởi thelaxong Xem bài viết
                      anh chị đi trước cho em hỏi : em lắp mạch đúng như sơ đồ , nhưng 89c51 không chạy ( thạch anh , tụ , EA , reset đều đúng)


                      P0 không xuất ra dữ liệu+ cũng không hoạt động
                      em không biết mình sai ở chổ nào và đang điên đầu vì nó . Rất mong sự giúp đở của anh chị
                      cau test la ic xem nhe! cac dong vdk rat de teo nen truoc khi lam phai test ki da! ic 74hc573 la ic chot du lieu tuong tu nhu ic 74ls374 cau phai xem ro datasheet cua no rui ket noi nhu hinh trong datasheet la ok! neu so lg chuong trinh chiem bo nho it ban chi can dua chan EA/Vpp len muc 1 de giao tiep voi vung nho trong nhe! con phan mem proteus la phan mem mo phong nen chi dung tuong doi thoi! cau nen tang thoi gian tre len de co the quan sat duoc vi thoi gian trong may khac thoi gian thuc! chuc thanh cong

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X