Thông báo

Collapse
No announcement yet.

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

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

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

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


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


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


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


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


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

              Comment


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

                Comment


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


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

                    Comment


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


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

                        Comment


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


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

                            Comment


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