Thông báo

Collapse
No announcement yet.

xem zum e đoạn code này với

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

  • xem zum e đoạn code này với

    e lập trình cho 89c51 chay tuần tựu 8 led :
    #include<at89x51.h>
    void delay(unsigned long ms)
    {
    while ( ms--) ;
    }
    void main ( void )
    {
    int n;
    while ( 1)
    {
    P3 = 0x01;
    for ( n=0;n<8;n++)
    {
    P3=P3<<1;
    delay ( 25000);
    }
    }
    }

    nhưng khi thữ thì e thấy led đầu tiên e nối zo P3.0 lại ko sáng . . . mấy a xem e sai chỗ nào và sửa giúp e với . .

  • #2
    hĩ ai xem sửa zumf e với . .

    Comment


    • #3
      bạn thêm một biến ở main chẳng hạn như t và ở while(1) thì t=t<<1;P3=t; thử xem

      Comment


      • #4
        code bạn viết không sai gì cả chỉ là bạn hiểu nhầm xíu thôi do khi vào vòng lặp for thì P3 đã bị dịch mất một bit rồi nên led tại P3.0 sẽ không sáng được. Bạn thử sửa chương trình như thế này xem mình nghĩ chắc chắn sẽ chạy
        #include<at89x51.h>
        void delay(unsigned long ms)
        {
        while ( ms--) ;
        }
        void main ( void )
        {
        int n;
        while ( 1)
        {
        P3 = 0x01;
        delay ( 25000);
        for ( n=0;n<8;n++)
        {
        P3=P3<<1;
        delay ( 25000);
        }
        }
        }
        Mình chắc chắn nó sẽ chạy theo đúng ý của bạn là sáng dần từng led một từ P3.0->P3.7 thử xem ha.

        Mobile: 0985158901
        Email:

        Comment


        • #5
          Nguyên văn bởi quanghuydck Xem bài viết
          code bạn viết không sai gì cả chỉ là bạn hiểu nhầm xíu thôi do khi vào vòng lặp for thì P3 đã bị dịch mất một bit rồi nên led tại P3.0 sẽ không sáng được. Bạn thử sửa chương trình như thế này xem mình nghĩ chắc chắn sẽ chạy
          #include<at89x51.h>
          void delay(unsigned long ms)
          {
          while ( ms--) ;
          }
          void main ( void )
          {
          int n;
          while ( 1)
          {
          P3 = 0x01;
          delay ( 25000);
          for ( n=0;n<8;n++)
          {
          P3=P3<<1;
          delay ( 25000);
          }
          }
          }
          Mình chắc chắn nó sẽ chạy theo đúng ý của bạn là sáng dần từng led một từ P3.0->P3.7 thử xem ha.
          quá chuẩn . . tks bạn nha . . ak tiện thể cho mình hỏi 1 cái này . . . đoạn code trên bạn sửa đã làm cho ca 8 led chạy . . vậy mình cần phải thêm gì vào để nó chạy led từ P3.0->P3.7 . . sau dó nó lại lặp lại từ P3.0->P3.6 . . trong khi led P3.7 vẫn sáng . . và lần lượt lới lúc sáng hết đc ko vậy ??

          Comment


          • #6
            ai giúp e vấn đề này với
            #include<at89x51.h>
            void delay(unsigned long ms)
            {
            while ( ms--) ;
            }
            void main ( void )
            {
            int n;
            while ( 1)
            {
            P3 = 0x01;
            delay ( 25000);
            for ( n=0;n<8;n++)
            {
            P3=P3<<1;
            delay ( 25000);
            }
            }
            }


            đoạn code trên làm cho ca 8 led chạy . . vậy mình cần phải thêm gì vào để nó chạy led từ P3.0->P3.7 . . sau dó nó lại lặp lại từ P3.0->P3.6 . . trong khi led P3.7 vẫn sáng . . và lần lượt lới lúc sáng hết đc ko vậy ??

            Comment


            • #7
              ai giúp e với

              Comment


              • #8
                #include<at89x51.h>
                char m=0;
                void delay(unsigned long ms)
                {
                while ( ms--) ;
                }
                void main ( void )
                {
                int n;
                while ( 1)
                {
                P3 = 0x01+m;
                delay ( 25000);
                for ( n=0;n<(8-m);n++)
                {
                P3=(1<<n)+m;
                delay ( 25000);
                }
                m++;
                if(m==8)m=0;
                }
                }
                Bạn thử code thế này xem sao. Mình nghĩ đúng đó, do mình không cài trình dịch C nên không test thử được bạn thử dịch xem có gì thì post lên mọi người cùng trao đổi.

                Mobile: 0985158901
                Email:

                Comment


                • #9
                  #include<at89x51.h>
                  char m=0,c=0;
                  void delay(unsigned long ms)
                  {
                  while ( ms--) ;
                  }
                  void main ( void )
                  {
                  int n;
                  while ( 1)
                  {
                  P3 = 0x01+c;
                  delay ( 25000);
                  for ( n=0;n<(8-m);n++)
                  {
                  P3=(1<<n)+c;
                  delay ( 25000);
                  }
                  m++;
                  c=c+(1<<(7-m));
                  if(m==8){
                  m=0;
                  c=0;
                  }
                  }
                  xin lỗi code trước sai rồi bạn thử thế này xem

                  Mobile: 0985158901
                  Email:

                  Comment


                  • #10
                    Nguyên văn bởi anhgia1607 Xem bài viết
                    ai giúp e vấn đề này với
                    #include<at89x51.h>
                    void delay(unsigned long ms)
                    {
                    while ( ms--) ;
                    }
                    void main ( void )
                    {
                    int n;
                    while ( 1)
                    {
                    P3 = 0x01;
                    delay ( 25000);
                    for ( n=0;n<8;n++)
                    {
                    P3=P3<<1;
                    delay ( 25000);
                    }
                    }
                    }


                    đoạn code trên làm cho ca 8 led chạy . . vậy mình cần phải thêm gì vào để nó chạy led từ P3.0->P3.7 . . sau dó nó lại lặp lại từ P3.0->P3.6 . . trong khi led P3.7 vẫn sáng . . và lần lượt lới lúc sáng hết đc ko vậy ??
                    chú xem có phải thế này không nhé

                    Comment


                    • #11
                      Nguyên văn bởi kidteam Xem bài viết
                      chú xem có phải thế này không nhé
                      hihi đúng rồi đó a . . nhìn hay wa

                      Comment


                      • #12
                        Nguyên văn bởi quanghuydck Xem bài viết
                        #include<at89x51.h>
                        char m=0,c=0;
                        void delay(unsigned long ms)
                        {
                        while ( ms--) ;
                        }
                        void main ( void )
                        {
                        int n;
                        while ( 1)
                        {
                        P3 = 0x01+c;
                        delay ( 25000);
                        for ( n=0;n<(8-m);n++)
                        {
                        P3=(1<<n)+c;
                        delay ( 25000);
                        }
                        m++;
                        c=c+(1<<(7-m));
                        if(m==8){
                        m=0;
                        c=0;
                        }
                        }
                        xin lỗi code trước sai rồi bạn thử thế này xem
                        e thu mo phong tren proteus thấy nó ko đc chính xác lắm a ơi . . . nó chạy luân phiên 8 led xong . sáng led 7 xong chạy tiếp các led còn lại . . sau đó nó sáng led 6 và 7 . . cu nhu vậy tới hét . . còn led 8 thì ko sáng

                        Comment


                        • #13
                          chả chịu tìm gì cả
                          trong diễn đàn có rồi mà
                          Code:
                          #include <reg51.h>
                          //Ngo Hung Cuong
                          unsigned char a,c,d;
                          unsigned char i,j,t,k;
                          void delay(void);
                          void delay50ms(void);
                          void main()
                          {
                          	//khoi tao cho bo dinh thoi 0
                          	//dau tien tat tat ca cac led
                          	TMOD=1;
                          	tiep:
                          	P1=0xff;
                          	a=0xff;//tat ca cac led tat
                          	delay();
                          	for(i=0;i<8;++i)
                          	{
                          		d=0xff;
                          		for(j=0;j<i;++j)
                          			d>>=1;
                          		a=0xff;
                          		for(j=0;j<8-i;++j)
                          		{
                          			a<<=1;
                          			c=0;
                          			for(k=0;k<j;++k)
                          			{
                          				c<<=1;
                          				c|=1;
                          			}
                          			a|=c;
                          			a&=d;
                          			P1=a;
                          			delay();
                          		}
                          	}
                          	goto tiep;
                          }
                          void delay50ms(void)
                          {
                          	//tre khoang 50ms
                          	TR0=0;
                          	TL0=0xb0;
                          	TH0=0x3c;
                          	TF0=0;
                          	TR0=1;
                          	while(!TF0);
                          	TR0=0;
                          	TF0=0;
                          }
                          void delay(void)
                          {
                          	//tre 500ms
                          	for(t=0;t<10;++t)
                          		delay50ms();
                          }

                          Comment


                          • #14
                            Nguyên văn bởi kidteam Xem bài viết
                            chả chịu tìm gì cả
                            trong diễn đàn có rồi mà
                            Code:
                            #include <reg51.h>
                            //Ngo Hung Cuong
                            unsigned char a,c,d;
                            unsigned char i,j,t,k;
                            void delay(void);
                            void delay50ms(void);
                            void main()
                            {
                            	//khoi tao cho bo dinh thoi 0
                            	//dau tien tat tat ca cac led
                            	TMOD=1;
                            	tiep:
                            	P1=0xff;
                            	a=0xff;//tat ca cac led tat
                            	delay();
                            	for(i=0;i<8;++i)
                            	{
                            		d=0xff;
                            		for(j=0;j<i;++j)
                            			d>>=1;
                            		a=0xff;
                            		for(j=0;j<8-i;++j)
                            		{
                            			a<<=1;
                            			c=0;
                            			for(k=0;k<j;++k)
                            			{
                            				c<<=1;
                            				c|=1;
                            			}
                            			a|=c;
                            			a&=d;
                            			P1=a;
                            			delay();
                            		}
                            	}
                            	goto tiep;
                            }
                            void delay50ms(void)
                            {
                            	//tre khoang 50ms
                            	TR0=0;
                            	TL0=0xb0;
                            	TH0=0x3c;
                            	TF0=0;
                            	TR0=1;
                            	while(!TF0);
                            	TR0=0;
                            	TF0=0;
                            }
                            void delay(void)
                            {
                            	//tre 500ms
                            	for(t=0;t<10;++t)
                            		delay50ms();
                            }
                            oh tks a nhìu

                            Comment


                            • #15
                              Click image for larger version

Name:	a.jpg
Views:	1
Size:	68.1 KB
ID:	1360718

                              thế này là sao a . . e gán đc " chung " sao ko gán đc " chung1"

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              • Andrea14
                                Vấn đề về tốc độ quay
                                bởi Andrea14
                                Chào mọi người,

                                Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
                                hôm nay, 12:42
                              • bqviet
                                Trả lời cho Đấu tắt điện cho máy tính bảng
                                bởi bqviet
                                Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                                06-12-2025, 17:17
                              • nguyendinhvan
                                Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                                bởi nguyendinhvan
                                Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                                05-12-2025, 19:59
                              • afrendly
                                Trả lời cho Đấu tắt điện cho máy tính bảng
                                bởi afrendly
                                Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                                04-12-2025, 01:27
                              Đang tải...
                              X