Thông báo

Collapse
No announcement yet.

Sửa giúp em đoạn code này với

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

  • Sửa giúp em đoạn code này với

    Dem san phan don gian.DSN

    EM sửa hoài code mà sao con LED ở giữa nó cứ nhảy số lung tung trong khi 2 con ngoài thì bình thường mấy đại ca giúp em với





    /*====================khai bao thu vien lenh va dinh nghia chan vdk ===========*/
    #include<regx51.h> // thu vien lenh
    #define leddata P2 // dinh nghia duong du lieu le 7 thanh noi P2
    #define led1 P3_0
    #define led2 P3_1
    #define led3 P3_2
    #define led4 P3_3
    #define led5 P3_4
    #define led6 P3_5
    #define nut P1_0 // dinh nghia nut an noi voi P1.3
    #define nut1 P1_3// dinh nghia nut an noi voi P1.0
    #define nut2 P1_4// dinh nghia nut an noi voi P1.4
    /*============================khai bao bien ===========*/
    unsigned char cao,tb,thap;
    unsigned char so[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0}; // ma led 7 thanh anot chung tuong ung voi tu 0 den 9
    unsigned char a,b,c,d,e,f;
    /*============================chuong trinh con tao tre ===========*/
    void delay( unsigned int m )
    {
    unsigned int i,j;
    for(i=0;i<m;i++)
    {
    for(j=0;j<125;j++)
    {}
    }
    }
    /*============================chuong trinh con hien thi quet led===========*/
    void hien_thi(unsigned char cao,unsigned char tb,unsigned char thap)
    {
    a=cao/10;
    b=(cao-a*10);
    c=tb/10;
    d=(tb-c*10);
    e=thap/10;
    f=(thap-e*10);

    led1=1;led2=0,led3=0,led4=0,led5=0,led6=0;
    leddata=so[a];
    delay(3);

    led1=0;led2=1,led3=0,led4=0,led5=0,led6=0;
    leddata=so[b];
    delay(3);

    led1=0;led2=0,led3=1,led4=0,led5=0,led6=0;
    leddata=so[c];
    delay(3);

    led1=0;led2=0,led3=0,led4=1,led5=0,led6=0;
    leddata=so[d];
    delay(3);

    led1=0;led2=0,led3=0,led4=0,led5=1,led6=0;
    leddata=so[e];
    delay(3);

    led1=0;led2=0,led3=0,led4=1,led5=0,led6=1;
    leddata=so[f];
    delay(3);

    }
    /*============================chuong trinh chinh ===========*/
    void main()
    {
    cao=0;
    tb=0;
    thap=0;
    while(1)
    {
    if(nut==0)
    {
    delay(200);
    cao=cao+1;
    }
    if(cao==100)
    {
    tb=0;
    thap=0;
    cao=cao+0;
    }
    if(cao==100)
    cao=0;
    hien_thi(cao,tb,thap);
    if(nut1==0)
    {
    delay(200);
    tb=tb+1;
    }
    if(tb==100)
    {
    cao=0;
    thap=0;
    tb=tb+0;
    }
    if(tb==100)
    tb=0;
    hien_thi(cao,tb,thap);
    if(nut2==0)
    {
    delay(200);
    thap=thap+1;
    }
    if(thap==100)
    {
    cao=0;
    tb=0;
    thap=thap+0;
    }
    if(thap==100)
    thap=0;
    hien_thi(cao,tb,thap);
    }
    }

  • #2
    led1=0;led2=0,led3=0,led4=1,led5=0,led6=1;
    bác sửa led4=0; nhé.

    Comment


    • #3
      thanks cám ơn bạn
      công nhận tìm hoài chả ra giờ mới thấy

      Comment


      • #4
        EM thay thế mấy con Led bằng mấy cái động cơ như hình dưới đây.ví dụ như bật thằng CT1 thì được sản phẩm cao đồng thời con LED nó sáng lên nhưng sao em em bật thì mấy con LED 7 đoạn cứ chớp chớp hoài không biết bị sao nữa
        như hình dưới đây ạ.

        Last edited by thanhhau123; 06-04-2013, 10:18.

        Comment


        • #5
          ĐÂY LÀ CODE em mới sửa xong

          /*====================khai bao thu vien lenh va dinh nghia chan vdk ===========*/
          #include<regx51.h> // thu vien lenh
          #define bat 1
          #define tat 0
          #define leddata P2 // dinh nghia duong du lieu le 7 thanh noi P2
          #define T P0
          #define led1 P3_0
          #define led2 P3_1
          #define led3 P3_2
          #define led4 P3_3
          #define led5 P3_4
          #define led6 P3_5
          #define led7 P3_6
          #define led8 P3_7
          #define nut P1_0 // dinh nghia nut an noi voi P1.3
          #define nut1 P1_3// dinh nghia nut an noi voi P1.0
          #define nut2 P1_4// dinh nghia nut an noi voi P1.4
          sbit DC1=P1^1;
          sbit DC2=P1^2;
          sbit ROLE1=P1^6;
          sbit ROLE2=P1^7;
          /*============================khai bao bien ===========*/
          unsigned char cao,tb,thap,tong;
          unsigned char so[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0}; // ma led 7 thanh anot chung tuong ung voi tu 0 den 9
          unsigned char a,b,c,d,e,f,g,h;
          /*============================chuong trinh con tao tre ===========*/
          void delay( unsigned int m )
          {
          unsigned int i,j;
          for(i=0;i<m;i++)
          {
          for(j=0;j<125;j++)
          {}
          }
          }

          /*============================chuong trinh con hien thi quet led===========*/
          void hien_thi(unsigned char cao,unsigned char tb,unsigned char thap,unsigned char tong)
          {
          a=cao/10;
          b=(cao-a*10);
          c=tb/10;
          d=(tb-c*10);
          e=thap/10;
          f=(thap-e*10);
          g=tong/10;
          h=(tong-g*10);


          led1=1;led2=0,led3=0,led4=0,led5=0,led6=0,led7=0,l ed8=0;
          leddata=so[a];
          delay(3);

          led1=0;led2=1,led3=0,led4=0,led5=0,led6=0,led7=0,l ed8=0;
          leddata=so[b];
          delay(3);

          led1=0;led2=0,led3=1,led4=0,led5=0,led6=0,led7=0,l ed8=0;
          leddata=so[c];
          delay(3);

          led1=0;led2=0,led3=0,led4=1,led5=0,led6=0,led7=0,l ed8=0;
          leddata=so[d];
          delay(3);

          led1=0;led2=0,led3=0,led4=0,led5=1,led6=0,led7=0,l ed8=0;
          leddata=so[e];
          delay(3);

          led1=0;led2=0,led3=0,led4=0,led5=0,led6=1,led7=0,l ed8=0;
          leddata=so[f];
          delay(3);

          led1=0;led2=0,led3=0,led4=0,led5=0,led6=0,led7=1,l ed8=0;
          T=so[g];
          delay(3);

          led1=0;led2=0,led3=0,led4=0,led5=0,led6=0,led7=0,l ed8=1;
          T=so[h];
          delay(3);

          }
          /*============================chuong trinh chinh ===========*/
          void main()
          {
          cao=0;
          tb=0;
          thap=0;
          DC1=tat;
          DC2=tat;
          ROLE1=tat;
          ROLE2=tat;

          while(1)
          {
          if(nut==0)
          {
          delay(200);
          cao=cao+1;
          tong=cao+tb+thap;
          DC1=bat;
          ROLE1=bat;
          }
          if(nut==1)
          {delay(50);
          DC1=tat;
          ROLE1=tat;
          }
          if(cao==100)
          {
          tb=0;
          thap=0;
          cao=cao+0;
          }
          if(cao==100)
          cao=0;
          hien_thi(cao,tb,thap,tong);

          if(nut1==0)
          {
          delay(200);
          tb=tb+1;
          tong=cao+tb+thap;
          DC2=bat;
          ROLE2=bat;
          if(nut1==1)
          {
          delay(50);
          DC2=tat;
          ROLE2=tat;
          }

          }
          if(tb==100)
          {
          cao=0;
          thap=0;
          tb=tb+0;
          }
          if(tb==100)
          tb=0;
          hien_thi(cao,tb,thap,tong);
          if(nut2==0)
          {
          delay(200);
          thap=thap+1;
          tong=cao+tb+thap;
          }
          if(thap==100)
          {
          cao=0;
          tb=0;
          thap=thap+0;
          }
          if(thap==100)
          thap=0;
          hien_thi(cao,tb,thap,tong);
          }
          }

          Comment


          • #6
            vì khi bấm nút, việc quét led bị gián đoạn nên led bị chớp. Bạn phải dùng ngắt timer để quét led hoặc dùng ngắt ngoài để bấm nút thì led mới ko bị chớp.

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X