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

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • ThuyLinh1993
    Thành viên chính thức
    • Sep 2013
    • 35

    #1

    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!!!
  • lowpass
    Thành viên tích cực
    • Jul 2011
    • 511

    #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

    • lose
      Thành viên chính thức
      • Jun 2013
      • 65

      #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

      • ThuyLinh1993
        Thành viên chính thức
        • Sep 2013
        • 35

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

        Comment

        • ThuyLinh1993
          Thành viên chính thức
          • Sep 2013
          • 35

          #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

          • lose
            Thành viên chính thức
            • Jun 2013
            • 65

            #6
            đây bạn: 0906622883

            Comment

            • ThuyLinh1993
              Thành viên chính thức
              • Sep 2013
              • 35

              #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

              • ThuyLinh1993
                Thành viên chính thức
                • Sep 2013
                • 35

                #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

                • Hard
                  Thành viên tích cực
                  • Aug 2005
                  • 779

                  #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

                  • ThuyLinh1993
                    Thành viên chính thức
                    • Sep 2013
                    • 35

                    #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

                    • ThuyLinh1993
                      Thành viên chính thức
                      • Sep 2013
                      • 35

                      #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

                      • spam12345
                        Thành viên tích cực
                        • Jun 2013
                        • 162

                        #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

                        • lowpass
                          Thành viên tích cực
                          • Jul 2011
                          • 511

                          #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

                          • condonhan
                            Thành viên tích cực
                            • Apr 2012
                            • 233

                            #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, 15:41.

                            Comment

                            • spam12345
                              Thành viên tích cực
                              • Jun 2013
                              • 162

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