Lỗi khi lập trình với 8051

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • voiviqua
    Thành viên tích cực
    • Jan 2011
    • 141

    #1

    Lỗi khi lập trình với 8051

    các anh cho em hỏi cái lỗi này khi em biên dịch để kiểm tra lỗi là thế nào với ạ.mà phải sửa như thế nào,em bị nhiều lắm rồi mà không biết sửa
    *** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE: DATA
    SEGMENT: _DATA_GROUP_
    LENGTH: 0008H
    Program Size: data=133.0 xdata=0 code=1359
    Target not created

    thanks các anh trước.
  • anh_hung_21
    Thành viên tích cực
    • Sep 2011
    • 313

    #2
    hồi trước tui cũng bj cái lỗi này và đc chuẩn đoán là tràn bộ nhớ.lập trình trên keilc

    Comment

    • voiviqua
      Thành viên tích cực
      • Jan 2011
      • 141

      #3
      thế là phải xóa bớt chương trình đi à.hay có cách nào khác sửa được nó không anh.

      Comment

      • Ck33spkt
        Thành viên tích cực
        • Apr 2010
        • 616

        #4
        Nguyên văn bởi voiviqua Xem bài viết
        thế là phải xóa bớt chương trình đi à.hay có cách nào khác sửa được nó không anh.
        Tìm con VĐK nào có bộ nhớ lớn hơn mà thay thế hoặc tìm cách tối ưu lại code!

        Comment

        • VNarmy
          Moderator
          • Feb 2007
          • 1413

          #5
          Nguyên văn bởi voiviqua Xem bài viết
          các anh cho em hỏi cái lỗi này khi em biên dịch để kiểm tra lỗi là thế nào với ạ.mà phải sửa như thế nào,em bị nhiều lắm rồi mà không biết sửa
          *** ERROR L107: ADDRESS SPACE OVERFLOW
          SPACE: DATA
          SEGMENT: _DATA_GROUP_
          LENGTH: 0008H
          Program Size: data=133.0 xdata=0 code=1359
          Target not created

          thanks các anh trước.
          Data của 8051 chỉ có 128 thôi. Chuyển sang con 52 là đc.
          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

          • voiviqua
            Thành viên tích cực
            • Jan 2011
            • 141

            #6
            em đã chuyển sang con 89c52 rồi(data=256).nhưng khi biên dịch chương trình nó vẫn báo lỗi thế này.
            *** ERROR L107: ADDRESS SPACE OVERFLOW
            SPACE: DATA
            SEGMENT: _DATA_GROUP_
            LENGTH: 0008H
            Program Size: data=130.0 xdata=0 code=3444
            Target not created

            Ai giúp em với.

            Comment

            • voiviqua
              Thành viên tích cực
              • Jan 2011
              • 141

              #7
              sao k ai giúp em vậy.

              Comment

              • rptdnmqs
                Thành viên tích cực
                • Nov 2008
                • 440

                #8
                code da^u.xem cai mang Ram ban khai bao' nhu the nao.
                , , ,

                Comment

                • voiviqua
                  Thành viên tích cực
                  • Jan 2011
                  • 141

                  #9
                  code day.minh lam led trai tim 2 mau.
                  #include <REGX52.H>
                  unsigned char a,s,d,f,g,h,j,k,l;
                  unsigned char ma1[]={254,253,251,247,239,223,191,127};
                  unsigned char ma2[]={127,191,223,239,247,251,253,254};
                  unsigned char ma3[]={254,252,248,240,224,192,128,0};
                  unsigned char ma4[]={127,63,31,15,7,3,1,0};
                  unsigned char ma5[]={254,253,251,247,239,223,191,127,126,125,123,119, 111,95,63,62,61,59,55,47,31,30,29,27,23,15,14,13,1 1,7,6,5,3,2,1,0};//36
                  unsigned char ma6[]={127,191,223,239,247,251,253,254,126,190,222,238, 246,250,252,124,188,220236,244,248,120,184,216,232 ,240,112,176,208,224,96,160,192,64,128,0}
                  void tre(long time)
                  {
                  long tg;
                  for(tg=0;tg<time;tg++);
                  }
                  void d4(unsigned char x)
                  {
                  int i,temp;
                  for(i=0;i<8;i++)
                  {
                  temp=x;//gan bien
                  temp=temp&0x80;//lay ra bit dau tien (bit 7)
                  if(temp==0x80)//so sanh bit
                  P1_0=1; //bang 1 thi xuat vao chip =1
                  else
                  P1_0=0; //nguoc lai bang 0
                  x*=2; //dich bit lay bit trong so thap
                  P1_1=0; //tao xung tren chan 11
                  P1_1=1; //1 xung dua vào 1 bít
                  }
                  P1_4=0; //xuat du lieu ra output
                  P1_4=1;
                  }
                  void d3(unsigned char x)
                  {
                  int i,temp;
                  for(i=0;i<8;i++)
                  {
                  temp=x;//gan bien
                  temp=temp&0x80;//lay ra bit dau tien (bit 7)
                  if(temp==0x80)//so sanh bit
                  P1_2=1; //bang 1 thi xuat vao chip =1
                  else
                  P1_2=0; //nguoc lai bang 0
                  x*=2; //dich bit lay bit trong so thap
                  P1_3=0; //tao xung tren chan 11
                  P1_3=1; //1 xung dua vào 1 bít
                  }
                  P1_4=0; //xuat du lieu ra output
                  P1_4=1;
                  }
                  void d1(unsigned char x)
                  {
                  int i,temp;
                  for(i=0;i<8;i++)
                  {
                  temp=x;//gan bien
                  temp=temp&0x80;//lay ra bit dau tien (bit 7)
                  if(temp==0x80)//so sanh bit
                  P2_7=1; //bang 1 thi xuat vao chip =1
                  else
                  P2_7=0; //nguoc lai bang 0
                  x*=2; //dich bit lay bit trong so thap
                  P2_6=0; //tao xung tren chan 11
                  P2_6=1; //1 xung dua vào 1 bít
                  }
                  P1_4=0; //xuat du lieu ra output
                  P1_4=1;
                  }
                  void d2(unsigned char x)
                  {
                  int i,temp;
                  for(i=0;i<8;i++)
                  {
                  temp=x;//gan bien
                  temp=temp&0x80;//lay ra bit dau tien (bit 7)
                  if(temp==0x80)//so sanh bit
                  P2_5=1; //bang 1 thi xuat vao chip =1
                  else
                  P2_5=0; //nguoc lai bang 0
                  x*=2; //dich bit lay bit trong so thap
                  P2_4=0; //tao xung tren chan 11
                  P2_4=1; //1 xung dua vào 1 bít
                  }
                  P1_4=0; //xuat du lieu ra output
                  P1_4=1;
                  }
                  void v1(unsigned char x)
                  {
                  int i,temp;
                  for(i=0;i<8;i++)
                  {
                  temp=x;//gan bien
                  temp=temp&0x80;//lay ra bit dau tien (bit 7)
                  if(temp==0x80)//so sanh bit
                  P2_3=1; //bang 1 thi xuat vao chip =1
                  else
                  P2_3=0; //nguoc lai bang 0
                  x*=2; //dich bit lay bit trong so thap
                  P2_2=0; //tao xung tren chan 11
                  P2_2=1; //1 xung dua vào 1 bít
                  }
                  P3_4=0; //xuat du lieu ra output
                  P3_4=1;
                  }
                  void v2(unsigned char x)
                  {
                  int i,temp;
                  for(i=0;i<8;i++)
                  {
                  temp=x;//gan bien
                  temp=temp&0x80;//lay ra bit dau tien (bit 7)
                  if(temp==0x80)//so sanh bit
                  P2_1=1; //bang 1 thi xuat vao chip =1
                  else
                  P2_1=0; //nguoc lai bang 0
                  x*=2; //dich bit lay bit trong so thap
                  P2_0=0; //tao xung tren chan 11
                  P2_0=1; //1 xung dua vào 1 bít
                  }
                  P3_4=0; //xuat du lieu ra output
                  P3_4=1;
                  }
                  void v3 (unsigned char x)
                  {
                  int i,temp;
                  for(i=0;i<8;i++)
                  {
                  temp=x;//gan bien
                  temp=temp&0x80;//lay ra bit dau tien (bit 7)
                  if(temp==0x80)//so sanh bit
                  P3_2=1; //bang 1 thi xuat vao chip =1
                  else
                  P3_2=0; //nguoc lai bang 0
                  x*=2; //dich bit lay bit trong so thap
                  P3_3=0; //tao xung tren chan 11
                  P3_3=1; //1 xung dua vào 1 bít
                  }
                  P3_4=0; //xuat du lieu ra output
                  P3_4=1;
                  }
                  void v4(unsigned char x)
                  {
                  int i,temp;
                  for(i=0;i<8;i++)
                  {
                  temp=x;//gan bien
                  temp=temp&0x80;//lay ra bit dau tien (bit 7)
                  if(temp==0x80)//so sanh bit
                  P3_0=1; //bang 1 thi xuat vao chip =1
                  else
                  P3_0=0; //nguoc lai bang 0
                  x*=2; //dich bit lay bit trong so thap
                  P3_1=0; //tao xu7ng tren chan 11
                  P3_1=1; //1 xung dua vào 1 bít
                  }
                  P3_4=0; //xuat du lieu ra output
                  P3_4=1;
                  }
                  void main(void)
                  {
                  TMOD=0x02;
                  TH0=TL0=0xCD;
                  EA=1;
                  ET0=1;
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);
                  v1(0xff);v2(0xff);v3(0xff);v4(0xff);
                  while(1)
                  {
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);
                  v1(0xff);v2(0xff);v3(0xff);v4(0xff);
                  d1(0);d2(0);d3(0);d4(0); tre(5000);
                  for(a=0;a<10;a++)
                  {
                  d1(0);d2(0);d3(0);d4(0);tre(2000);
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);tre(2000);
                  }
                  for(k=0;k<8;k++)
                  {
                  d1(ma1[k]);tre(2000);
                  d1(0xff);
                  }
                  d1(0xff);
                  for(l=0;l<8;l++)
                  {
                  d2(ma1[l]);tre(2000);
                  d2(0xff);
                  }
                  d2(0xff);
                  for(f=0;f<8;f++)
                  {
                  d3(ma2[f]);tre(2000);
                  }
                  d3(0xff);
                  for(g=0;g<8;g++)
                  {
                  d4(ma2[g]);tre(2000);
                  }
                  d4(0xff);
                  for(h=0;h<8;h++)
                  {
                  d4(ma1[h]);tre(2000);
                  }
                  d4(0xff);
                  for(j=0;j<8;j++)
                  {
                  d3(ma1[j]);tre(2000);
                  }
                  d3(0xff);
                  for(k=0;k<8;k++)
                  {
                  d2(ma2[k]);tre(2000);
                  }
                  d2(0xff);
                  for(l=0;l<8;l++)
                  {
                  d1(ma2[l]);tre(2000);
                  }
                  d1(0xff);
                  for(h=0;h<8;h++)
                  {
                  d1(ma1[h]);tre(2000);
                  }
                  d1(0xff);
                  for(g=0;g<8;g++)
                  {
                  d2(ma1[g]);tre(2000);
                  }
                  d2(0xff);
                  for(f=0;f<8;f++)
                  {
                  d3(ma2[f]);tre(2000);
                  }
                  d3(0xff);
                  for(d=0;d<8;d++)
                  {
                  d4(ma2[d]);tre(1000);
                  }
                  d4(0xff);
                  for(s=0;s<4;s++)
                  {
                  for(a=0;a<8;a++)
                  {
                  d1(ma3[a]);tre(1000);
                  }
                  for(l=0;l<8;l++)
                  {
                  d2(ma3[l]);tre(1000);
                  }
                  for(k=0;k<8;k++)
                  {
                  d3(ma4[k]);tre(1000);
                  }
                  for(j=0;j<8;j++)
                  {
                  d4(ma4[j]);tre(1000);
                  }
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);
                  for(h=0;h<8;h++)
                  {
                  v4(ma3[h]);tre(1000);
                  }
                  for(g=0;g<8;g++)
                  {
                  v3(ma3[g]);tre(1000);
                  }
                  for(f=0;f<8;f++)
                  {
                  v2(ma4[f]);tre(1000);
                  }
                  for(d=0;d<8;d++)
                  {
                  v1(ma4[d]);tre(1000);
                  }
                  v1(0xff);v2(0xff);v3(0xff);v4(0xff);
                  }
                  v1(0xff);v2(0xff);v3(0xff);v4(0xff);
                  for(s=0;s<20;s++)
                  {
                  d1(0x55);v1(~(0x55));
                  v2(0x55);d2(~(0x55));
                  d3(0x55);v3(~(0x55));
                  v4(0x55);d4(~(0x55));tre(2000);
                  v1(0x55);d1(~(0x55));
                  d2(0x55);v2(~(0x55));
                  v3(0x55);d3(~(0x55));
                  d4(0x55);v4(~(0x55));tre(2000);
                  }
                  v1(0xff);v2(0xff);v3(0xff);v4(0xff);d1(0xff);d2(0x ff);d3(0xff);d4(0xff);
                  for(a=0;a<20;a++)
                  {
                  d1(0x55);d2(~(0x55));d3(0x55);d4(~(0x55));tre(2000 );
                  d2(0x55);d1(~(0x55));d4(0x55);d3(~(0x55));tre(2000 );
                  }
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);
                  for(j=0;j<8;j++)
                  {
                  v1(ma3[j]);v4(ma3[j]);tre(2000);
                  }
                  for(h=0;h<8;h++)
                  {
                  v2(ma3[h]);v3(ma3[h]);tre(2000);
                  }
                  for(j=0;j<8;j++)
                  {
                  v1(~(ma3[j]));v4(~(ma3[j]));tre(2000);
                  }
                  for(h=0;h<8;h++)
                  {
                  v2(~(ma3[h]));v3(~(ma3[h]));tre(2000);
                  }
                  v1(0xff);v2(0xff);v3(0xff);v4(0xff);
                  for(g=0;g<4;g++)
                  {
                  for(f=0;f<8;f++)
                  {
                  d1(ma1[f]);d2(ma1[f]);d3(ma2[f]);d4(ma2[f]);tre(2000);
                  }
                  for(d=0;d<8;d++)
                  {
                  d1(ma2[d]);d2(ma2[d]);d3(ma1[d]);d4(ma1[d]);tre(2000);
                  }
                  }
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);
                  for(s=0;s<4;s++)
                  {
                  for(a=0;a<8;a++)
                  {
                  d1(ma3[a]);d2(ma3[a]);d3(ma4[a]);d4(ma4[a]);tre(2000);
                  }
                  for(l=0;l<8;l++)
                  {
                  d1(~(ma3[l]));d2(~(ma3[l]));d3(~(ma4[l]));d4(~(ma4[l]));tre(2000);
                  }
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);
                  }
                  for(k=0;k<10;k++)
                  {
                  d2(0xff);d4(0xff);
                  v1(0);v3(0);tre(2000);
                  d2(0);d4(0);
                  v1(0xff);v3(0xff);tre(2000);
                  }
                  v1(0xff);v2(0xff);v3(0xff);v4(0xff);d1(0xff);d2(0x ff);d3(0xff);d4(0xff);
                  for(j=0;j<8;j++)
                  {
                  v3(ma3[j]);v4(ma4[j]);tre(2000);
                  }
                  for(h=0;h<8;h++)
                  {
                  v1(ma3[h]);v2(ma4[h]);tre(2000);
                  }
                  for(g=0;g<8;g++)
                  {
                  v3(~(ma3[g]));v4(~(ma4[g]));tre(2000);
                  }
                  for(f=0;f<8;f++)
                  {
                  v1(~(ma3[f]));v2(~(ma4[f]));tre(2000);
                  }
                  for(d=0;d<10;d++)
                  {
                  d1(0);d2(0);d3(0);d4(0);tre(4000);
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);tre(2000);
                  }
                  d1(0);d2(0);d3(0);d4(0);v1(0);v2(0);v3(0);v4(0);
                  for(s=0;s<20;s++)
                  {
                  d1(0x55);d2(~(0x55));d3(0x55);d4(~(0x55));tre(2000 );
                  d1(~(0x55));d2(0x55);d3(~(0x55));d4(0x55);tre(2000 );
                  }
                  d1(0);d2(0);d3(0);d4(0);tre(8000);
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);v1(0xff);v2(0x ff);v3(0xff);v4(0xff);
                  for(a=0;a<36;a++)
                  {
                  v1(ma5[a]);v2(ma5[a]);v3(ma5[a]);v4(ma5[a]);tre(1000);
                  }
                  for(k=0;k<36;k++)
                  {
                  v1((~ma5[k]));v2((~ma5[k]));v3((~ma5[k]));v4(~(ma5[k]));tre(1000);
                  }
                  for(j=0;j<36;j++)
                  {
                  v1(ma5[j]);v2(ma5[j]);v3(ma5[j]);v4(ma5[j]);tre(1000);
                  }
                  for(h=0;h<36;h++)
                  {
                  v1((~ma5[h]));v2((~ma5[h]));v3((~ma5[h]));v4(~(ma5[h]));tre(1000);
                  }
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);v1(0xff);v2(0x ff);v3(0xff);v4(0xff);
                  for(g=0;g<10;g++)
                  {
                  d1(0);d3(0);v2(0);v4(0);tre(2000);
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);v1(0xff);v2(0x ff);v3(0xff);v4(0xff);
                  d2(0);d4(0);v1(0);v3(0);tre(2000);
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);v1(0xff);v2(0x ff);v3(0xff);v4(0xff);
                  }
                  v1(0);v2(0);v3(0);v4(0);
                  for(f=0;f<4;f++)
                  {
                  for(d=0;d<8;d++)
                  {
                  v1(~(ma1[d]));v2(~(ma1[d]));v3(~(ma2[d]));v4(~(ma2[d]));tre(2000);
                  }
                  }
                  v1(0xff);v2(0xff);v3(0xff);v4(0xff);
                  for(d=0;d<4;d++)
                  {
                  for(s=0;s<8;s++)
                  {
                  v1(ma4[s]);v2(ma4[s]);v3(ma3[s]);v4(ma3[s]);tre(2000);
                  }
                  for(a=0;a<8;a++)
                  {
                  v1(~(ma4[a]));v2(~(ma4[a]));v3(~(ma3[a]));v4(~(ma3[a]));tre(2000);
                  }
                  }
                  v1(0xff);v2(0xff);v3(0xff);v4(0xff);
                  for(a=0;a<8;a++)
                  {
                  v1(ma3[a]);v3(ma4[a]);tre(2000);
                  }
                  for(s=0;s<8;s++)
                  {
                  v2(ma3[s]);v4(ma4[s]);tre(2000);
                  }
                  v1(0xff);v2(0xff);v3(0xff);v4(0xff);
                  for(d=0;d<8;d++)
                  {
                  d4(ma3[d]);d2(ma4[d]);tre(2000);
                  }
                  for(f=0;f<8;f++)
                  {
                  d3(ma3[f]);d1(ma4[f]);tre(2000);
                  }
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);
                  for(g=0;g<8;g++)
                  {
                  d1(ma3[g]);d3(ma4[g]);tre(2000);
                  }
                  for(h=0;h<8;h++)
                  {
                  d4(ma3[h]);d2(ma4[h]);tre(2000);
                  }
                  d1(0xff);d2(0xff);d3(0xff);d4(0xff);
                  for(j=0;j<8;j++)
                  {
                  v1(ma1[j]);v4(ma1[j]);tre(2000);
                  }
                  v1(0xff);v4(0xff);
                  for(k=0;k<8;k++)
                  {
                  v2(ma1[k]);v3(ma1[k]);tre(2000);
                  }
                  v3(0xff);v2(0xff);
                  for(l=0;l<8;l++)
                  {
                  for(a=0;a<8;a++)
                  {
                  v1(ma1[a]);v4(ma1[a]);tre(2000);
                  }
                  v1(0xff);v4(0xff);
                  if(l==0)
                  {
                  for(s=0;s<8;s++)
                  {
                  v2(ma5[s]);v3(ma5[s]);tre(2000);
                  }
                  }
                  if(l==1)
                  {
                  for(d=8;d<15;d++)
                  {
                  v2(ma5[d]);v3(ma5[d]);tre(2000);
                  }
                  }
                  if(l==2)
                  {
                  for(f=15;f<21;f++)
                  {
                  v2(ma5[f]);v3(ma5[f]);tre(2000);
                  }
                  }
                  if(l==3)
                  {
                  for(g=21;g<26;g++)
                  {
                  v2(ma5[g]);v3(ma5[g]);tre(2000);
                  }
                  }
                  if(l==4)
                  {
                  for(h=26;h<30;h++)
                  {
                  v2(ma5[h]);v3(ma5[h]);tre(2000);
                  }
                  }
                  if(l==5)
                  {
                  for(j=30;j<33;j++)
                  {
                  v2(ma5[j]);v3(ma5[j]);tre(2000);
                  }
                  }
                  if(l==6)
                  {
                  for(k=33;k<35;k++)
                  {
                  v2(ma5[k]);v3(ma5[k]);tre(2000);
                  }
                  }
                  if(l==7) {v2(ma5[35]);v3(ma5[35]);tre(2000);}
                  }
                  for(l=0;l<36;l++)
                  {
                  v1(ma5[l]);v4(ma5[l]);tre(2000);
                  }
                  v1(0xff);v2(0xff);v3(0xff);v4(0xff);
                  }
                  }

                  Comment

                  • rptdnmqs
                    Thành viên tích cực
                    • Nov 2008
                    • 440

                    #10
                    ban xem lai cai' unsigned char ma6 ,trong mang co' cai so lon hon 255 kia`.chac ban danh quen dau phay.
                    , , ,

                    Comment

                    • aaahhhh
                      Thành viên tích cực
                      • Aug 2009
                      • 123

                      #11
                      mấy cái mảng "ma1..6" a cho nó là program, chứ mấy cái đó mà lưu vô ram thì @@

                      Comment

                      • voiviqua
                        Thành viên tích cực
                        • Jan 2011
                        • 141

                        #12
                        thế phải khai báo kiểu gì để thành programe vay aaahhhh

                        Comment

                        • voiviqua
                          Thành viên tích cực
                          • Jan 2011
                          • 141

                          #13
                          cái ma6[]={......} đó lúc post lên mình nhầm thôi,chứ không phải mình quên trong chương trình đâu. rptdnmqs

                          Comment

                          • viboyth.haui
                            Thành viên tích cực
                            • Feb 2012
                            • 300

                            #14
                            Bạn thử khai báo dữ liệu kiểu: unsigned char code xem
                            vanduc0211@gmail.com

                            Comment

                            • voiviqua
                              Thành viên tích cực
                              • Jan 2011
                              • 141

                              #15
                              được rồi.cảm ơn mọi người nhé.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...