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

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • thelaxong
    Thành viên tích cực
    • May 2009
    • 198

    #1

    !!!! 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 .
  • minhhieu
    Thành viên tích cực
    • Mar 2006
    • 499

    #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

    • thelaxong
      Thành viên tích cực
      • May 2009
      • 198

      #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

      • thelaxong
        Thành viên tích cực
        • May 2009
        • 198

        #4
        hình đây

        Comment

        • vidieukhien1
          Thành viên tích cực
          • Aug 2009
          • 239

          #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

          • thelaxong
            Thành viên tích cực
            • May 2009
            • 198

            #6
            thanks vidieukhien1

            Comment

            • thelaxong
              Thành viên tích cực
              • May 2009
              • 198

              #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

              • anhhnt
                Thành viên chính thức
                • Nov 2008
                • 88

                #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

                • thelaxong
                  Thành viên tích cực
                  • May 2009
                  • 198

                  #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

                  • dttcong
                    Thành viên mới
                    • Mar 2009
                    • 26

                    #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

                    • dttcong
                      Thành viên mới
                      • Mar 2009
                      • 26

                      #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...