Thông báo

Collapse
No announcement yet.

cần tư vấn học 8051

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

  • cần tư vấn học 8051

    Mình rất thích học lập trình 8051, trước đây mình đã đọc nhiều tài liệu down được trên diễn đàn, đã đọc tập tài liệu 8051 cơ bản, thực hành và làm theo các bài tập, nhưng mình chỉ hiểu được các bài về quét led đơn, điều khiển led 7 thanh ... nếu viết code theo cách đơn giản thôi, còn nếu dùng các hàm trong C thì mình hiểu lơ mơ lắm, về phần cứng đối với mình ko là vấn đề, mình đã tự làm được mạch nạp, board mạch in 89s52, nạp được chương trình đơn giản cho 89s52 (quét led đơn, led 7 thanh), mình là thợ sử điện tử, muốn học lập trình 8051 để làm 1 biển quảng cáo led matrix dùng 89s52 (chỉ cần 4 đến 5 con led matrix8X8), vậy mình cần học từ đâu? (Mình biết sử dụng Orcad, Proteus)
    1- Học English? cái này cần, nhưng có thể ko cần lắm vì có thể dùng từ điển để tra từ, và mình chỉ cần lập trình đơn giản thôi.
    2 -Học lập trình C? có lẽ mình chỉ cần lập trình C phần dành riêng cho 8051 thôi.
    Vậy Mình bắt đầu phải học theo trình thự nào? Thanhks!
    Email:
    Đau đầu vì điện tử

  • #2
    Nguyên văn bởi lowpass Xem bài viết
    Mình rất thích học lập trình 8051, trước đây mình đã đọc nhiều tài liệu down được trên diễn đàn, đã đọc tập tài liệu 8051 cơ bản, thực hành và làm theo các bài tập, nhưng mình chỉ hiểu được các bài về quét led đơn, điều khiển led 7 thanh ... nếu viết code theo cách đơn giản thôi, còn nếu dùng các hàm trong C thì mình hiểu lơ mơ lắm, về phần cứng đối với mình ko là vấn đề, mình đã tự làm được mạch nạp, board mạch in 89s52, nạp được chương trình đơn giản cho 89s52 (quét led đơn, led 7 thanh), mình là thợ sử điện tử, muốn học lập trình 8051 để làm 1 biển quảng cáo led matrix dùng 89s52 (chỉ cần 4 đến 5 con led matrix8X8), vậy mình cần học từ đâu? (Mình biết sử dụng Orcad, Proteus)
    1- Học English? cái này cần, nhưng có thể ko cần lắm vì có thể dùng từ điển để tra từ, và mình chỉ cần lập trình đơn giản thôi.
    2 -Học lập trình C? có lẽ mình chỉ cần lập trình C phần dành riêng cho 8051 thôi.
    Vậy Mình bắt đầu phải học theo trình thự nào? Thanhks!
    Nền tảng kiến thức và kỹ năng vậy là tốt lắm rồi đó bạn. Bạn phải có 1 cái kit và rèn luyện kỹ năng viết code trên cái kit đó. Nếu muốn học nhanh thì viết bằng C, còn muốn nắm vững 8051 thì viết bằng ASM. Chức năng của kit bạn cũng nên lựa chọn như:
    + LED đơn.
    + LED 7 đoạn.
    + LCD.
    + Ma trận phím 4x4.
    + ADC.
    + DAC.
    + RS232.
    + Còi.
    + LED matrix.
    + Real time DS1307 (Cái này dùng để luyện tập I2C).
    + SPI.
    + Giao tiếp module RF.
    + SD card (Cái này dùng để rèn luyện SPI và cách giao tiếp thẻ nhớ luôn, là thiết bị lưu font khi làm quang báo).
    + EEPROM.
    + RAM.
    Và còn nhiều ngoại vi khác, nhưng để thành thạo 1 cái kit như thế thì cũng tốn nhiều thời gian rồi. Sau khi học mọi thứ thành thạo, bạn nghiên cứu C#, LabView...để tạo giao diện tương tác với kit. Sau đó chuyển sang dòng vi điều khiển khác mạnh hơn (lời khuyên là nên chọn PIC).
    Chúc bạn thành công.

    Comment


    • #3
      Cám ơn Opendoor, Khi đọc code mẫu có dùng biến, hàm, khai báo mảng ... mình ko thể hiểu được, ví dụ như:
      void tre(long time)
      {
      for(n=0;n<time;n++)
      {
      ;//ko lam gi
      }
      }
      tại sao gán cho n=0;n<time;n++ ? Muốn hiểu được nó phải học lập trình C phải ko? (đừng phật ý nếu câu hỏi có vẻ hơi ngớ ngẩn??).
      Email:
      Đau đầu vì điện tử

      Comment


      • #4
        do cấu trúc của lệnh for đó bạn.Lệnh for gồm 3 phần cách nhau bởi dấu phẩy.
        +Phần đầu tiên là gán giá trị cho biến đếm, ở đây là n=0.
        +Phần tiếp theo là so sánh biến đếm với 1 giá trị nào đó, ở đây là n<time
        +Phần cuối là tăng giá trị biến đếm.
        Khi gặp lệnh for thì chuơng trình sẽ gán giá trị cho biến đếm ở phần đầu tiên, sau đó chuơng trình kiểm tra xem giá trị biến đếm đúng với yêu cầu ở phần giữa ko, nếu đúng thì thực hiện các lệnh trong vòng for ở đây là ; tức là không làm gì. Sau đó chuơng trình thực hiện tăng biến đếm với lệnh ở phần cuối ở đây là n++ tức là n=n+1 và tiếp tục so sánh n với time nếu đúng chuơng trình sẽ làm tiếp ko thì thoát khỏi vòng for.

        Comment


        • #5
          Nguyên văn bởi lowpass Xem bài viết
          Cám ơn Opendoor, Khi đọc code mẫu có dùng biến, hàm, khai báo mảng ... mình ko thể hiểu được, ví dụ như:
          void tre(long time)
          {
          for(n=0;n<time;n++)
          {
          ;//ko lam gi
          }
          }
          tại sao gán cho n=0;n<time;n++ ? Muốn hiểu được nó phải học lập trình C phải ko? (đừng phật ý nếu câu hỏi có vẻ hơi ngớ ngẩn??).
          cái này phải học thêm lập trình C bạn ah. C là ngôn ngữ cơ bản cần học nếu như muốn lập trình cho vi điều khiển. bạn nên học C trước đã. học cách khai báo biến, mảng, con trỏ, hàm thành thạo...lệnh ở trên chỉ là hàm delay thời gian thôi. ban đầu gán n=0 và cứ 1 chu kỳ máy con vi điều khiển lại kiểm tra xem n đã lớn hơn biến time chưa? nếu chưa thì n tiếp tục tăng lên 1 đơn vị và ở chu kỳ sau cũng như vậy cho đến khi nào n>time thì thoát ra khỏi vòng lặp. như vậy biến time quyết định số vòng lặp và người ta dùng nó kết hợp với tần số xung nhịp của vi điều khiển để trễ(delay) 1 khoảng thời gian mong muốn và trong khoảng thời gian này vi điều khiển không làm được gì cả.
          Never forget who you are!

          Comment


          • #6
            Lời giải thích của các bạn thật dễ hiểu. vậy các bạn có thể giới thiệu cho mình tài liệu để học chương trình c đơn giản được không?
            Email:
            Đau đầu vì điện tử

            Comment


            • #7
              lên mạng seach đi bạn nhiều lắm.vào trang này mình thấy cũng khá hay: http://forums.congdongcviet.com/
              Never forget who you are!

              Comment


              • #8
                lên mạng seach đi bạn nhiều lắm.vào trang này mình thấy cũng khá hay: http://forums.congdongcviet.com/
                Never forget who you are!

                Comment


                • #9
                  Bạn cần tư vấn tìm hiểu về 8051, phần mềm và ngôn ngữ lập trình cho 8051 có thể tham khảo tại đây: www.topedu.com.vn

                  Comment


                  • #10
                    chào bạn. mình cùng đang tập tành về vdk. mình học điện lực nên về phần cứng làm mạch mình khá ổn. nhưg mình còn thua kém ban nhiều vì bạn đã làm đc với led đơn và 7 đoạn rồi. bjo mình muốn học về vđk. bạn co tài liệu nào hay gửi cho mình nhé. cho minh yahoo hoac sđt để mình trau đổi. minh tên thuân đang học o sg. còn ban?
                    "điều quan trọng khi lập nghiệp ko phải ở thành phố hay ở quê, mà quan trọng là chúng ta nhận định ra hướng đi nào là đúng"
                    yahoo:
                    gmail:

                    Comment


                    • #11
                      Bạn có thể qua bên mình để được tư vấn thêm, mình đang ở HN gần trường đại học điện lực HN. Thông tin tìm hiểu về 8051: Khóa học vi điều khiển 8051 -

                      Comment


                      • #12
                        cám ơn bạn có nhã ý nhưng đáng tiết là mình hoc đien lực ở tp hcm bạn ah. có j ko hiểu mình sẽ hỏi bạn. sẵn sàng giúp mình nhé! thân!
                        "điều quan trọng khi lập nghiệp ko phải ở thành phố hay ở quê, mà quan trọng là chúng ta nhận định ra hướng đi nào là đúng"
                        yahoo:
                        gmail:

                        Comment


                        • #13
                          Chắc không giúp được nhiều cho bạn, vì mình cũng chỉ là thợ sửa điện tử, kiến thức học chỉ có TV, radio, Đầu đĩa, và vài thứ điện tử dân dụng, mình đã đọc cuốn 8051 cơ bản, trong đó có các bài tập rất cơ bản như bật tắt các led, led7 đoạn, LCD.... có cả code mẫu, chỉ cần copy vào keliC, biên dịch, nạp vào mạch 8051 là chạy được, dowload tại đây UPLOAD FREE - Host Your Files For Free , nếu không có mạch thì chạy bằng phần mềm mô phỏng proteus7.1
                          Email:
                          Đau đầu vì điện tử

                          Comment


                          • #14
                            bạn có thể download datasheet full của vi điều khiển muốn lập trình hầu như những cái đơn giản có hết trong datasheet hoặc có code mẫu, cứ những cái đơn giản, các giao tiếp cứ làm theo trong datasheet là chạy quan trọng là giải thuật của mình làm có tối ưu không?? mà thôi. đơn giản mình ví dụ thế này: khi giao tiếp SPI thường phải chờ khi nhận hoặc truyền xong dữ liệu, cờ ngắt set lên thì mới thực hiện công việc tiếp theo, nhưng nếu như con master hoặc slave treo thì kéo theo con kia cũng treo, như vậy thì làm sao cho hệ thống tối ưu là mình nói ở chỗ này. quan trọng là thuật toán. còn code cho 8051 bạn có thể tham khảo ở 8052.com cũng có khá nhiều code mẫu. hoặc đọc trong help của thằng keil C ý.
                            Never forget who you are!

                            Comment


                            • #15
                              Nguyên văn bởi nhquangdt3k5 Xem bài viết
                              bạn có thể download datasheet full của vi điều khiển muốn lập trình hầu như những cái đơn giản có hết trong datasheet hoặc có code mẫu, cứ những cái đơn giản, các giao tiếp cứ làm theo trong datasheet là chạy quan trọng là giải thuật của mình làm có tối ưu không?? mà thôi. đơn giản mình ví dụ thế này: khi giao tiếp SPI thường phải chờ khi nhận hoặc truyền xong dữ liệu, cờ ngắt set lên thì mới thực hiện công việc tiếp theo, nhưng nếu như con master hoặc slave treo thì kéo theo con kia cũng treo, như vậy thì làm sao cho hệ thống tối ưu là mình nói ở chỗ này. quan trọng là thuật toán. còn code cho 8051 bạn có thể tham khảo ở 8052.com cũng có khá nhiều code mẫu. hoặc đọc trong help của thằng keil C ý.
                              cám ơn bạn! mình sẽ học tư tư như bạn chỉ giáo. có j ko hiểu sẵn lòng giúp mình nhé. thân!
                              "điều quan trọng khi lập nghiệp ko phải ở thành phố hay ở quê, mà quan trọng là chúng ta nhận định ra hướng đi nào là đúng"
                              yahoo:
                              gmail:

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X