Thông báo

Collapse
No announcement yet.

Serial Port - lập trình giao tiếp nối tiếp

Collapse
This topic is closed.
X
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #46
    Gửi anh AFH: cảm ơn tấm thịnh tình của anh. Em sợ là bây giờ em chưa có đủ trình độ để làm nhiều. Mà giờ em đang chỉ update kiến thức thôi nên đợi đến hè là thời gian tốt nhất để em làm việc nâng cao kinh nghiệm. Em còn nhiều dự định quá. Còn phải làm việc với anh BA nữa. Nhưng không sao anh có cái gì hay thì cứ alo cho em.

    Gửi bạn phan_it: tôi biết trang web đó nhưng bạn nên biết là tôi không muốn dùng những modul có sẵn mà muốn dùng những cái sẵn có tự xây dựng cho mình những cái chuẩn, những cái mà người khác không bắt chước được.

    Cái TUT tôi viết cho các bạn là những hướng dẫn thật là chi tiết để các bạn giao tiếp với cổng COM. Còn về MSComm là một activeX có sẵn trong bản Visual Studio 6.0 bản Enterprise, Pro nên nếu dùng thì OK. Hoàn toàn quá dễ dùng chẳng cồng kềnh gì cả.

    Còn nếu bạn dùng các modul đó thì sao bạn hiểu được bản chất giao tiếp ở đây là gì. Và nếu bạn muốn làm một sản phẩm thương mại thì bạn sẽ nói như thế nào về cái modul này? Chẳng lẽ nói là tôi tự nghĩ ra, hay nói là của ông nọ , ông kia. Như thế bạn phải viết tên người ta, trả tiền bản quyền cho họ. và như thế chương trỉnh của bạn còn cái gì để mà tự hào để mà khẳng định vị trí của người VN, của điện tử VN nữa bạn.

    Chúng tôi khuyến khích các bạn tự xây dựng cái chuẩn riêng. Chúng tôi nhóm MOD PICVietnam đang xây dựng các chuẩn cho riêng mình. Sắp tới tôi sẽ xây dựng một thư viện liên kết động .dll( dynamic link library) để làm về cổng COM này để không phụ thuộc vào bọn nào cả. Đó sẽ là chuẩn của Việt Nam. Bạn hiểu ý tôi không?

    chúc bạn thành công.
    Technical sale at WT Microelectronics S'pore
    Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
    Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

    Comment


    • #47
      Nguyên văn bởi ngohaibac
      Gửi anh AFH: cảm ơn tấm thịnh tình của anh. Em sợ là bây giờ em chưa có đủ trình độ để làm nhiều. Mà giờ em đang chỉ update kiến thức thôi nên đợi đến hè là thời gian tốt nhất để em làm việc nâng cao kinh nghiệm. Em còn nhiều dự định quá. Còn phải làm việc với anh BA nữa. Nhưng không sao anh có cái gì hay thì cứ alo cho em.
      Em theo anh BinhAnh là tốt đó, anh ấy nhiều kinh nghiệm, cứ theo anh ấy sẽ học hỏi được nhiều thứ. chúc em may mắn.
      AFH

      Comment


      • #48
        to ngohaibac:
        - bạn đã hiểu sai.
        - Tôi giới thiệu trang web đó để mọi người tham khảo thôi, tham khảo cái người ta làm mà học cách để tạo cái riêng cho mình chứ. Mỗi người nên xây dựng cho mình một thư viện chứ. Tất nhiên phải hiểu được bản chất thì mới tạo riêng được sản phẩm của mình chứ. Tôi có sản phẩm mạch nạp KIT51D (có giới thiệu ở phần quảng cáo) cũng được xây dựng từ những thư viện như thế đấy.
        - Thực ra chỉ để giao tiếp với MCU qua cổng nối tiếp thì chỉ cần vài cái lệnh như CreateFile,ReadFile,WriteFile,... thôi. Còn nếu giao tiếp qua cổng song song thì phức tạp hơn một chút, có thể phải viết các .DLL
        - Nếu sử dụng cái MSComm của Microsoft thì khi bạn đóng gói sản phẩm phải bao hàm cả nó vào có to ra không ? bạn đã bao giờ đóng gải sản phẩm hoàn chỉnh chưa. Nếu làm một cái thư viện nho nhỏ của mình thì có thể chỉ cần copy file .EXE chương trình vào là chạy, hoặc chỉ cần copy kèm theo file .DLL (như trường hợp với cổng song song).
        - Tôi rất ủng hộ các anh em phát triển những chuẩn riêng của mình, nhưng cảnh giác đấy vì những chuyện đó có khi rất lớn lao so với khả năng của mình, có khi lại mất cả đời để hì hục nghiên cứu cái mà người ta đã làm ra từ lâu rồi.
        Chúc sáng suốt !
        0912666017

        Comment


        • #49
          to phan_it:

          Cảm ơn bạn. Chúng tôi biết sức của mình. Nếu tôi không làm được thì đời con, cháu, ... sẽ tiếp tục sự nghiệp của tôi. Chúng ta phải xây dựng cái chuẩn riêng của mình. Chứ để bọn nước ngoài đưa vào VN thì đến bao giờ chúng ta mới cạnh tranh được.

          Sự nghiệp này còn lâu còn dài. Tôi mong rằng mình sẽ đóng góp một phần nào đó vào việc này.

          Chào bạn. Mong sự đóng góp của bạn.

          Tóm lại: tài liệu TUT được đưa tại địa chỉ sau:

          http://www.picvietnam.com/forum//sho...=newpost&t=274

          Các bạn đọc xem giới thiệu về TUT này ở các trang trước để biết thêm chi
          tiết.

          To admin: em đã hoàn thành TUT này về RS232. Mong anh BA đóng luồng này để mọi người chỉ đọc thôi. Coi như chấm dứt về lập trình giao tiếp về RS232 trên PC.

          Chúc các bạn thành công.
          Last edited by ngohaibac; 04-05-2007, 02:50.
          Technical sale at WT Microelectronics S'pore
          Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
          Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

          Comment


          • #50
            Trong VC++ dùng MSComm thì đầy đủ nhưng hơi cồng kềnh. Nếu chỉ dùng để giai tiếp với MCU thì có thể tạo một class đơn giản hơn, nếu bạn nào quan tâm thì tham khảo ở www.codeproject.com
            Nếu dùng VB thì sao?
            P_I có thể cho 1 vd cụ thể không. Chứ mỗi lần đóng gói là phải vướng cái MScom, khó chịu thật.

            Comment


            • #51
              Hu hu, đóng gói thì tự nó load tất tần tật, có làm gì ngoài việc nhấn next mà phải mệt!????

              Comment


              • #52
                Chào các bạn.

                Mình đã đóng gói bằng nhiều phần mềm như InstallShield 12, Installer Pro,.. nhưng thấy đóng gói bằng Installshield rất đơn giản. Chương trình này có thể kiểm tra tất cả tài nguyên nào mà phần mềm này chạy yêu cầu và gom vào chương trình cài đặt để có bộ cài hoàn chỉnh chạy trên nhiều PC.

                Khi thiết lập nhớ chọn chế độ tự đăng ký cho các DLL.

                Các bạn có thể dùng thử chương trình này tại:
                http://www.macrovision.com/products/...tallshield.htm

                Bạn kích vào Download Evaluation để chọn bản mà bạn muốn dùng thử nhé.

                Ngoài ra bản Visual Studio 6.0 có chương trình cài Installshield for VC++6.0 nhẹ hơn nhiều so với bản này.

                Chúc bạn thành công.
                Technical sale at WT Microelectronics S'pore
                Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
                Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

                Comment


                • #53
                  Chào các bác!

                  Hiện tại em đang lập trình giao tiếp giữa máy tính và 8051 (em dùng Visual Basic). Em dùng cổng nối tiếp. Tuy nhiên có vấn đề này em muốn hỏi các bác. Các bác có thể chỉ giáo cho em được không.

                  Bài toán của em là hiển thị nhiệt độ và độ ẩm trên máy tính. Đối với nhiệt em có 5 thông số, còn đối với ẩm em có 2 thông số. Đồng thời em còn phải gửi tín hiệu điều khiển cho bộ điều khiển nhiệt và bộ điều khiển ẩm.

                  Vấn đề ở chỗ, em chưa hiểu lập trình như thế nào để có thể nhận biết được các tín hiệu đó một cách riêng biệt (tức là hiển thị đúng giá trị của cảm biến mà mình đang đo theo đúng thứ tự).

                  Làm thế nào để tại mỗi thời điểm VB hiểu được đó là giá trị của cảm biến nhiệt thứ nhất, thứ hai,... hay của cảm biến ẩm thứ nhất, thứ hai,...
                  Và làm thế nào để vi điều khiển biết được tín hiệu gửi đến nó dùng để điều khiển nhiệt hay dùng để điều khiển ẩm.

                  Em đã đọc trên diễn đàn nhưng hình như các bác vẫn chưa đề cập đến vấn đề này (có thể em chưa tìm thấy).

                  Em mới bắt đầu học lập trình giao tiếp như thế này nên còn nhiều bỡ ngỡ lắm, mong các bác chỉ giáo.

                  Mong các bác hồi âm sớm!

                  Cảm ơn các bác rất nhiều!

                  Chúc các pác luôn vui vẻ!

                  Comment


                  • #54
                    Chào bạn.

                    Mình nghĩ rằng để nhận biết dữ liệu nào là dành cho cảm biến nào thì các dữ liệu này phải truyền theo một khung bản tin do mình tự qui định thì mới ok được.

                    Mình ví dụ nhé. Nếu là của cảm biến thứ nhất thì là: #A dữ liệu liên tiếp đến hết

                    Cái này là qui ước giữa phần mềm trên PC và vi điều khiển thôi.

                    Chúc bạn thành công.
                    Technical sale at WT Microelectronics S'pore
                    Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
                    Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

                    Comment


                    • #55
                      Chào Super ngohaibac!

                      Mình bận quá nên hôm nay mới lên mạng được. Ban đầu mình cũng nghĩ như bạn vậy. Nhưng mình không chắc lắm. Mình nghĩ mọi người có cách làm hay hơn. Mình sẽ thử cách này nha. Nếu có kết quả mình sẽ báo cho các bạn để chúng ta cùng trao đổi nhé.

                      Mình thấy bọn Tây nó lập mấy cái phần mềm này khá hay. Không biết nó có quy ước như mình không nhỉ? Hay nó có nguyên tắc (chuẩn) truyền và nhận biết dữ liệu chứ nhỉ. Nếu các bạn nghiên cứu được cách nào hay thì share cho mình với nha!

                      Chúc mọi người luôn vui vẻ!

                      Comment


                      • #56
                        Cái này gọi là gì?

                        Nguyên văn bởi ngohaibac Xem bài viết
                        Chào bạn.

                        Mình nghĩ rằng để nhận biết dữ liệu nào là dành cho cảm biến nào thì các dữ liệu này phải truyền theo một khung bản tin do mình tự qui định thì mới ok được.

                        Mình ví dụ nhé. Nếu là của cảm biến thứ nhất thì là: #A dữ liệu liên tiếp đến hết

                        Cái này là qui ước giữa phần mềm trên PC và vi điều khiển thôi.

                        Chúc bạn thành công.
                        Mong anh em chỉ giáo! Nếu đây là giao thức thì hãy nói với mình cách thiết lập giao thức. Còn nếu nó là chuẩn thì xin hãy nói với mọi người là một chuẩn truyền thông mới. Chứ cứ cái cách giải thích dữ liệu này thì nó chăng ra một giao thức nào cả. . Bao nhiêu người hiểu rồi sao ko lên tiếng
                        http://techpal.vn
                        Chia sẻ công nghệ, cùng thành công

                        Comment


                        • #57
                          Nguyên văn bởi techpro Xem bài viết
                          Mong anh em chỉ giáo! Nếu đây là giao thức thì hãy nói với mình cách thiết lập giao thức. Còn nếu nó là chuẩn thì xin hãy nói với mọi người là một chuẩn truyền thông mới. Chứ cứ cái cách giải thích dữ liệu này thì nó chăng ra một giao thức nào cả. . Bao nhiêu người hiểu rồi sao ko lên tiếng
                          Cái này Bắc đã nói ở trên rồi: Do mình quy ước mà, chứ chuẩn gì mà gào lên ghê thế

                          Comment


                          • #58
                            Gởi bạn mụ mụ gì ấy nhỉ:

                            Bạn dùng cú pháp switch.. case, vd như khi nhận được từ cổng UART các giá trị từ 30H-39H sẽ tương ứng 5 giá trị nhiệt độ và 2 giá trị độ ẩm.

                            Trong lập trình 8051 (ASM) switch case dạng như sau:

                            switch:
                            dw Temp0;0
                            ...
                            dw Temp4; 5
                            dw humid0
                            dw humid1

                            temp0:
                            ...
                            ret
                            temp1:
                            ..
                            ret
                            ...
                            humid1:
                            ..
                            ret

                            Bên trong mỗi routine bạn lấy giá trị từ ô nhớ tương ứng với cổng analog gán vào thanh ghi nối tiếp.Cách này sử dụng phổ biến nhất.
                            30H -39H tương ứng là mã ASCII của các phím 0-9 do đó để lấy giá trị bạn phải trừ đi 30H, để con trỏ PC 9051 định vị đúng routine tương ứng, bạn phải lấy địa chỉ (movc #switch) cộng với 0, 1 hoặc 9 thì PC sẽ nhảy đến từ temp0, temp1..humid1.

                            Còn tại sao dùng 30H-39H: chẳng qua cho dễ view
                            Opentdoors- Thành viên của Rock'n'Roll club

                            Comment


                            • #59
                              Nguyên văn bởi ngohaibac Xem bài viết
                              Chúng tôi khuyến khích các bạn tự xây dựng cái chuẩn riêng. Chúng tôi nhóm MOD PICVietnam đang xây dựng các chuẩn cho riêng mình. Sắp tới tôi sẽ xây dựng một thư viện liên kết động .dll( dynamic link library) để làm về cổng COM này để không phụ thuộc vào bọn nào cả. Đó sẽ là chuẩn của Việt Nam. Bạn hiểu ý tôi không?

                              chúc bạn thành công.
                              Hình như bạn hơi nhầm lẫn hay quá phấn khích.
                              Opentdoors- Thành viên của Rock'n'Roll club

                              Comment


                              • #60
                                Nguyên văn bởi ngohaibac Xem bài viết
                                to phan_it:

                                Cảm ơn bạn. Chúng tôi biết sức của mình. Nếu tôi không làm được thì đời con, cháu, ... sẽ tiếp tục sự nghiệp của tôi. Chúng ta phải xây dựng cái chuẩn riêng của mình. Chứ để bọn nước ngoài đưa vào VN thì đến bao giờ chúng ta mới cạnh tranh được.

                                .
                                Đã là chuẩn thì không nên có chuẩn riêng, bạn thử tìm hiểu khái niệm "Finish state machine", sau đó sẽ cân nhắc nên sáng tác chuẩn riêng hay tích hợp các chuẩn chung.
                                Opentdoors- Thành viên của Rock'n'Roll club

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X