Thông báo

Collapse
No announcement yet.

Xin Tài Liệu Và Hướng Dẫn Viết Code Cho 8051

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

  • Xin Tài Liệu Và Hướng Dẫn Viết Code Cho 8051

    Xin Chào Các ACE. mình mới bắt đầu học về viết code cho 8051 bằng C.
    có 1 ít tài liệu nhưng viết chung chung khó hiểu quá, với lại không có người hướng dẫn nên hiểu mập mờ lắm...
    ai có tài liệu nào hay( có nhiều ví dụ, bài tập có lời giải...) cho mình xin...
    hay ai trực tiếp giúp mình thì càng tốt...
    mong mọi người giúp đỡ
    Thanks!!!

  • #2
    Xem tạm cái này đi:
    Điện Tử Máy Tính: Học Lập Trình 8051
    Email:
    Đau đầu vì điện tử

    Comment


    • #3
      Nguyên văn bởi ThuyLinh1993 Xem bài viết
      Xin Chào Các ACE. mình mới bắt đầu học về viết code cho 8051 bằng C.
      có 1 ít tài liệu nhưng viết chung chung khó hiểu quá, với lại không có người hướng dẫn nên hiểu mập mờ lắm...
      ai có tài liệu nào hay( có nhiều ví dụ, bài tập có lời giải...) cho mình xin...
      hay ai trực tiếp giúp mình thì càng tốt...
      mong mọi người giúp đỡ
      Thanks!!!
      Hướng dẫn kèm ví dụ ở đây cũng rất dễ hiểu đây bạn: Điện Tử Máy Tính: Học Lập Trình 8051

      Comment


      • #4
        thanks bác... còn nữa cho mình xin nhé... mình cần nhiều ví dụ...

        Comment


        • #5
          Nguyên văn bởi lose Xem bài viết
          Hướng dẫn kèm ví dụ ở đây cũng rất dễ hiểu đây bạn: Điện Tử Máy Tính: Học Lập Trình 8051
          bác có thể cho em sdt không.. nhiều lúc đọc mà có đoạn nào không hiểu em hỏi....
          đc pro dạy 1 ngày còn hơn tự cày cả tháng

          Comment


          • #6
            đây bạn: 0906622883

            Comment


            • #7
              Nguyên văn bởi lose Xem bài viết
              đây bạn: 0906622883
              biết ơn bác lắm

              Comment


              • #8
                Nguyên văn bởi lose Xem bài viết
                đây bạn: 0906622883
                biết ơn bác lắm
                có gì không hiểu mình sẽ hỏi

                Comment


                • #9
                  Chơi luôn MSP430 ngay từ đầu đi bác ơi, giá rẽ bằng 1/2 đồ 89.
                  Đường đến những ngày vinh quang không còn xa
                  Con đường chúng ta... chúng ta đã chọn.

                  Comment


                  • #10
                    Nguyên văn bởi Hard Xem bài viết
                    Chơi luôn MSP430 ngay từ đầu đi bác ơi, giá rẽ bằng 1/2 đồ 89.
                    em mới tập tọe. mọi người bảo học 8051 là căn bản nhất nên em học cái này trước cho nó có chút kiến thức đã. va mấy cái khó em sợ ko hiểu nổi rồi lại chán

                    Comment


                    • #11
                      tiện thể giải thích hộ em cái này với. em có 1 đoạn code như này
                      #include<at89x52.h>
                      unsigned char nhayled[20]={0x05,0x0e,0x1d,0x3e,0x7d,0xfe,0x01,0x82,0xc1,0xe 2,0xf1,0xfa,0xfd,0x02,0xfd,0x02,0xfd,0x02,0xfd,0x0 2}; //cac hieu ung nhay led
                      void delay(unsigned int i)
                      {
                      while(i--)
                      {
                      unsigned char j=121;
                      while(j--){}
                      }
                      }
                      main()
                      {
                      unsigned char k;
                      while(1)
                      {
                      for(k=0;k<20;k++)
                      {
                      P0=nhayled[k];
                      delay(250);
                      }
                      }
                      }
                      em không hiểu dòng unsigned char nhayled[20]={0x05,0x0e,0x1d,0x3e,0x7d,0xfe,0x01,0x82,0xc1,0xe 2,0xf1,0xfa,0xfd,0x02,0xfd,0x02,0xfd,0x02,0xfd,0x0 2}
                      các cái số hexa ấy là như nào ạ... các bác giúp em với. tks!!!

                      Comment


                      • #12
                        Nguyên văn bởi ThuyLinh1993 Xem bài viết
                        tiện thể giải thích hộ em cái này với. em có 1 đoạn code như này
                        #include<at89x52.h>
                        unsigned char nhayled[20]={0x05,0x0e,0x1d,0x3e,0x7d,0xfe,0x01,0x82,0xc1,0xe 2,0xf1,0xfa,0xfd,0x02,0xfd,0x02,0xfd,0x02,0xfd,0x0 2}; //cac hieu ung nhay led
                        void delay(unsigned int i)
                        {
                        while(i--)
                        {
                        unsigned char j=121;
                        while(j--){}
                        }
                        }
                        main()
                        {
                        unsigned char k;
                        while(1)
                        {
                        for(k=0;k<20;k++)
                        {
                        P0=nhayled[k];
                        delay(250);
                        }
                        }
                        }
                        em không hiểu dòng unsigned char nhayled[20]={0x05,0x0e,0x1d,0x3e,0x7d,0xfe,0x01,0x82,0xc1,0xe 2,0xf1,0xfa,0xfd,0x02,0xfd,0x02,0xfd,0x02,0xfd,0x0 2}
                        các cái số hexa ấy là như nào ạ... các bác giúp em với. tks!!!
                        Thì bạn chuyển đổi số hex ra nhị phân. Mã nhị phân đó, lần lượt được gán vào P0 => có tác dụng gì? Mình trả lời theo kiểu gợi ý thui. Để bạn tự tìm tòi thì hay hơn.

                        Comment


                        • #13
                          Khai báo mảng nhayled[20]={...} gồm 20 phần tử , sau đó gán các giá trị này cho cổng P0 (P0=nhayled[k], tùy theo giá trị của k tăng từ 0 đến 19 mà P0 sẽ có giá trị xác định VD: khi k=6 thì P0=0X01 (tương đương P0=00000001), điện áp của chân P0_0=5V, các chân còn lại của cổng P0 có điện áp =0 Volt.
                          Email:
                          Đau đầu vì điện tử

                          Comment


                          • #14
                            nếu được thì bác nên đầu tư 1 bộ kit thực hành để trải nghiệm thực tế.
                            Last edited by condonhan; 03-10-2013, 16:41.

                            Comment


                            • #15
                              Nguyên văn bởi lowpass Xem bài viết
                              Khai báo mảng nhayled[20]={...} gồm 20 phần tử , sau đó gán các giá trị này cho cổng P0 (P0=nhayled[k], tùy theo giá trị của k tăng từ 0 đến 19 mà P0 sẽ có giá trị xác định VD: khi k=6 thì P0=0X01 (tương đương P0=00000001), điện áp của chân P0_0=5V, các chân còn lại của cổng P0 có điện áp =0 Volt.
                              Lưu ý tí xíu là con AT89S52 Port 0 của nó là "open-drain", tức là chỉ có thể sink voltage, chức không source voltage được. Nói dễ hiểu là nó không thể tạo điện áp đầu ra 5v được (trừ một số trường hợp đặc biệt, mình ít dùng nên quên mất rồi). Cái này bạn tham khảo sơ đồ nguyên lý của Port 0 trong datasheet sẽ thấy.

                              Ngoài ra là dòng ra (output current) của AT89S52 khá yếu, led chỉ sáng mờ, nên người ta hay lắp ngược lại (Vcc -> LED -> Pin). Nên 0 thì led lại sáng, mà 1 là led lại tắc.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X