Thông báo

Collapse
No announcement yet.

Dành cho người mới tìm hiểu 8051

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

  • Hi hi, giờ đang bận chút xíu, để lát nữa mình rảnh rồi viết cụ thể cho bạn xem nhé?
    Vũ xuân Lợi
    YM!:

    Comment


    • Nguyên văn bởi vukhuong73 Xem bài viết
      bạn có thể nói rõ hơn ko???
      thân!
      Hi hi, như đã hứa, của bạn đây.
      [/CODE]
      #include <REGX51.H>
      #include <rtx51tny.h>

      void nhay(void) _task_ 1
      {
      unsigned char i,j,f;
      P2=0;

      while(1)
      {
      for(i=0;i<8;i++)
      {
      P2|=1<<i;
      os_wait2(K_TMO,30); //tre 300ms.
      }
      for (i=0;i<8;i++)
      {
      P2=1<<i;os_wait2(K_TMO,30);
      P2=0;os_wait2(K_TMO,30);
      }

      for (j=8;j>0;j--)
      { for(i=0;i<j;i++)
      {
      P2=1<<i|f; os_wait2(K_TMO,30);
      }
      f=P2;
      }
      for(i=0;i<=8;i++)
      {
      P2=0xff<<i;os_wait2(K_TMO,30);
      }
      for(i=0;i<=8;i++)
      {
      P2=0xff>>i;os_wait2(K_TMO,30);
      }
      for(i=0;i<=8;i++)
      {
      P2=(0xff<<i)&(0xff>>i);os_wait2(K_TMO,30);
      }
      for(i=0;i<=8;i++)
      {
      P2=(0xff<<i)^(0xff>>i);os_wait2(K_TMO,30);
      }
      for(i=0;i<=8;i++)
      {
      P2=(0xff<<i)|(0xff>>i);os_wait2(K_TMO,30);
      }
      for(i=2;i<=8;i++)
      {
      P2=1<<i;os_wait2(K_TMO,30);};
      for(i=2;i<=8;i++)
      {
      P2=0x80>>i;os_wait2(K_TMO,30);
      }
      }
      }
      void vien() _task_ 2
      {
      unsigned char m;
      P1=0;
      while (1)
      {
      for(m=0;m<3;m++)
      {
      P1=1<<m; os_wait2(K_TMO,50);
      }
      for(m=0;m<3;m++)
      {
      P1=0x04>>m; os_wait2(K_TMO,50);
      }
      for(m=0;m<3;m++)
      {
      P1=1<<m; os_wait2(K_TMO,50);
      P1=0; os_wait2(K_TMO,50);
      }
      for(m=0;m<3;m++)
      {
      P1=0x04>>m; os_wait2(K_TMO,50);
      P1=0; os_wait2(K_TMO,50);
      }
      for(m=0;m<3;m++)
      {
      P1|=0x04>>m; os_wait2(K_TMO,50);
      }
      for(m=0;m<3;m++)
      {
      P1=7&(6<<m); os_wait2(K_TMO,50);
      }
      }
      }
      void chay() _task_ 0
      {
      os_create_task(1);
      os_create_task(2);
      os_delete_task(0);
      }
      [/CODE]

      Ở đây mình viết cho Thạch Anh 12M. Nếu bạn dùng thạch anh khác thì thời gian trễ sẽ không chính xác là 200ms hoặc 500ms như mình đã gọi.
      Vì mình dùng real time os nên để dịch được ra file hex thì bạn vui lòng vào Project/ Options for Target 'Target 1' tìm List box có tên là Operating system mặc định là None Bạn đổi thành RTX-51 Tiny là biên dịch được.
      Chúc vui!
      Vũ xuân Lợi
      YM!:

      Comment


      • hì , thanks quynh nhìu lắm , quynh đã đề cập tới vấn đề mình đang tìm hỉu , quynh có thể trình bày típ về 4 phần
        -led 7 thanh, quét led 7 thanh
        -giao tiếp phím,ma trận phím
        -ma trận led
        -LCD
        còn lại nỳ đc ko? bạn trình bày rất hay , rất dễ hiểu . mail mình là ngoccuong240987@gmail.com . mong nhận đc sự giúp đỡ of bạn !
        ................. Pleiku .................... GIA LAI ...................

        Comment


        • hì , thanks quynh nhìu lắm , quynh đã đề cập tới vấn đề mình đang tìm hỉu , quynh có thể trình bày típ về 4 phần
          -led 7 thanh, quét led 7 thanh
          -giao tiếp phím,ma trận phím
          -ma trận led
          -LCD
          còn lại nỳ đc ko? bạn trình bày rất hay , rất dễ hiểu . mail mình là ngoccuong240987@gmail.com . mong nhận đc sự giúp đỡ of bạn ! mong sớm nhận đc hồi âm of bạn ! chúc vui !
          ................. Pleiku .................... GIA LAI ...................

          Comment


          • hì , thanks quynh nhìu lắm , quynh đã đề cập tới vấn đề mình đang tìm hỉu , quynh có thể trình bày típ về 4 phần
            -led 7 thanh, quét led 7 thanh
            -giao tiếp phím,ma trận phím
            -ma trận led
            -LCD
            còn lại nỳ đc ko? bạn trình bày rất hay , rất dễ hiểu . mail mình là ngoccuong240987@gmail.com . mong nhận đc sự giúp đỡ of bạn ! mong sớm nhận đc hồi âm of bạn ! chúc vui !
            ................. Pleiku .................... GIA LAI ...................

            Comment


            • EmDưới đây là 2 đoạn code trong Keil C viết cho 8051
              unsigned long t1,t2;

              CODE 1:
              t1=3000000;
              t2=t1/10000;
              nếu viết như trên thì t2 ra đúng 300

              CODE2:
              t1=300*10000;
              t2=t1/10000;
              nếu viết như thế này thi t2 lại ra sai (cụ thể t2=495)

              em không hiểu tại sao lại như vậy, nhờ các pro chỉ giáo giùm

              Comment


              • thế có bác nào viết chương trình bằng Mikrobasic pro for 8051 chỉ em với. em dang lam chương trình ứng dụng mở rộng port.

                Comment


                • bài của Quỳnh hay ghê.mình thích đọc hơn vì mình cũng mới làm quen với vdk
                  Khi ta cảm nhận đc vị ngọt của cafe,vị nhạt của rượu thì ta đã mất đi rất nhiều thứ . . .
                  •--»((¯`·°»†»—ஐღ♂_ ™¤Hạt Çát ¤™_♀ღஐ—«†«°·´¯))«--•
                  ๑۩۞۩๑♥๑۩۞۩๑ (¯`•♥Untill You♥•´¯) ๑۩۞۩๑♥๑۩۞۩๑

                  Comment


                  • ai giải thích giúp mình đoạn code này với . mình mới học vi diều khiển
                    void dichvitri(int n) //2 led cung chay tu tren xuong
                    {int m;
                    for(m=1;m<=n;m++)
                    { int j;
                    x=0xfc;
                    for(j=1;j<=10;j++)
                    {
                    P0=P1=x;
                    delay(2000);
                    x=_crol_(x,1);
                    delay(2000);
                    }
                    P0=P1=0xff;
                    x=0xfc;
                    for(j=1;j<=7;j++)
                    {
                    P2=x;
                    P3=x;
                    delay(2000);
                    x=_crol_(x,1);
                    delay(2000);
                    }
                    }
                    }
                    Never forget who you are!

                    Comment


                    • PHP Code:
                      void dichvitri(int n//2 led cung chay tu tren xuong
                      {
                          
                      int m,j;
                          for(
                      m=1;m<=n;m++)
                          {
                              
                              
                      x=0xfc;
                              for(
                      j=1;j<=10;j++)
                              {
                                  
                      P0=P1=x;
                                  
                      delay(2000);
                                  
                      x=_crol_(x,1);
                                  
                      delay(2000);
                              }
                              
                      P0=P1=0xff;
                              
                      x=0xfc;
                              for(
                      j=1;j<=7;j++)
                              {
                                  
                      P2=x;
                                  
                      P3=x;
                                  
                      delay(2000);
                                  
                      x=_crol_(x,1);
                                  
                      delay(2000);
                              }
                          }

                      Tạm hiểu đây là một chương trình con dịch LED hay làm cho LED sáng đuổi.
                      PHP Code:

                      là giá trị trạng thái đầu tiên của LED, sau đó chúng ta đưa ra Port có LED, tạo trễ một thời gian bằng hàm
                      PHP Code:
                      delay(2000
                      , tiếp đến là gọi hàm dịch vị trí LED đi một đơn vị với hàm
                      PHP Code:
                      _crol_(x,1)//với x là giá trị cần dịch, 1 là số lần dịch 
                      , cứ thế tiếp tục cho đến khi hết vòng lặp.

                      Comment


                      • ui!!thế ct quét led đâu?mình với vào nhưng đọc cũng hay hay.bạn up tiếp nha.thank

                        Comment


                        • mình dịch bít để cho led sáng tuần tự từ 1-8 nhưng không hiểu tại sao nó không bắt đầu sàng từ led đầu tiên mà nó lại bắt đầu sáng từ led thứ 2 trở đi mong các bác giúp e cái cảm ơn nhiều!!!!!!!!!!

                          #include <REGX51.H>
                          void delay(long int time);
                          void main(void)
                          {
                          unsigned n;
                          while(1)
                          {
                          P1=0x01;
                          for(n=0;n<8;n++)
                          {
                          P1=P1<<1;
                          delay(5000);
                          }
                          }
                          }

                          void delay(long int time)
                          {
                          int n;
                          for(n=0;n<=time;n++)
                          {;
                          }
                          }
                          Never forget who you are!

                          Comment


                          • Chào tất cả các bác trong diễn đàn, e là dân điện tự động hóa nhưng có liềm đam mê điện tử lên tự học về vi điều khiển, e đang làm cái đồng số hiển thị ra led 7 đoạn nhưng hiện tại ko hiểu sao sau khi viết code cho AT89C52 dùng chương trình KeilC dịch ra file hex thì nó lỗi hàng loạt ko hiểu tại do cú pháp của e viết sai hay là chương trình e viết đúng e nhờ bác admin giúp e và tất cả các bạn trong diễn đàn giúp đỡ và chỉ bảo mình, kiến thức là vô hạn rất mong mọi người giúp đỡ.
                            Attached Files

                            Comment


                            • ai giúp mình mạch này với
                              http://www.youtube.com/watch?v=_WR-r...layer_embedded
                              mình không biết dùng nhue thế nào để 1 ic 89s52 có thể mở rộng port điều khiển hơn 200 LED

                              Comment


                              • Nguyên văn bởi nhquangdt3k5 Xem bài viết
                                mình dịch bít để cho led sáng tuần tự từ 1-8 nhưng không hiểu tại sao nó không bắt đầu sàng từ led đầu tiên mà nó lại bắt đầu sáng từ led thứ 2 trở đi mong các bác giúp e cái cảm ơn nhiều!!!!!!!!!!

                                #include <REGX51.H>
                                void delay(long int time);
                                void main(void)
                                {
                                unsigned n;
                                while(1)
                                {
                                P1=0x01;
                                for(n=0;n<8;n++)
                                {
                                P1=P1<<1; // bạn sai chỗ này
                                delay(5000);
                                }
                                }
                                }

                                void delay(long int time)
                                {
                                int n;
                                for(n=0;n<=time;n++)
                                {;
                                }
                                }
                                chương trình của bạn có thực hiện ở led đầu tiên nhưng chỉ dc 1 lần và rất nhanh nên bẹn ko thấy được, code của bạn chỉ cần sửa lại như sau:
                                #include <REGX51.H>
                                void delay(long int time);
                                void main(void)
                                {
                                unsigned n,a;
                                while(1)
                                {
                                a=0x01;
                                for(n=0;n<8;n++)
                                {
                                P1=a;
                                delay(5000);
                                a=a<<1;
                                }
                                }
                                }

                                void delay(long int time)
                                {
                                int n;
                                for(n=0;n<=time;n++)
                                {;
                                }

                                chúc bạn thành công !!!

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                • mèomướp
                                  Trả lời cho Công thức điện tử
                                  bởi mèomướp
                                  Dạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
                                  Hôm qua, 21:21
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
                                  Hôm qua, 20:31
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  Ok , thanks bác đã chỉ...
                                  Hôm qua, 15:06
                                • nguyendinhvan
                                  Công thức điện tử
                                  bởi nguyendinhvan
                                  Sau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !

                                  Chập thì thay. Cháy thì tháo
                                  Làm thì láo. Báo thì hay
                                  May thì khoe. Rủi thì bỏ
                                  Thành tích nhỏ. Báo thành to
                                  Làm cho có. Báo chi li
                                  Sai cả li. Báo
                                  ...
                                  Hôm qua, 00:35
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
                                  25-11-2024, 22:31
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
                                  25-11-2024, 22:14
                                • bactho
                                  Trả lời cho Tự làm máy đo Cuộn cảm
                                  bởi bactho
                                  Hay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
                                  25-11-2024, 21:48
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  màn của mình là LCD , giờ m muốn mua màn LED để thay thế (ko muốn dùng màn LCD nữa) , lên muốn hỏi xem có cáp chuyển đổi nào có thể cắm đc màn LED vào ko , tất nhiên phải có cùng số chân pin với màn cũ rồi . VD: màn cũ là lcd mỏng , 40 pin...
                                  25-11-2024, 21:43
                                • bactho
                                  Trả lời cho các bạn giúp mình về file HEX với!!!
                                  bởi bactho
                                  Bạn vào trang phuclanshop.com ,tìm đến góc kỹ thuật. Tác giả vương khánh hưng nói rất rõ về điều bạn tìm...
                                  25-11-2024, 21:21
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ màn hình lcd đều có thể lai cấy cho nhau được hết ạ. Các loại cáp, bo mạch chuyển đổi lvds rất nhìu, với dòng sony còn phải nhổ cả chip nhớ của main cũ đưa lên gỗ thì mới lắp sang máy khác đc, chưa kể các bệnh về màu... ngay cả...
                                  25-11-2024, 20:43
                                Đang tải...
                                X