Thông báo

Collapse
No announcement yet.

Mong chỉ giáo về lập trình C cho giao tiếp cổng COM!

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

  • Mong chỉ giáo về lập trình C cho giao tiếp cổng COM!

    Xin chào!
    Em là sinh viên, được nhận 1 đề tài về lập trình giao tiếp cổng con dùng ngôn ngữ C. mà e không biết hướng làm bắt đầu từ đâu. Trước tiên, em muốn viết 1 chương trình giao tiếp giữa 2 máy tính kết nối với nhau bằng cổng COM. và có 2 chương trình chạy trên 2 máy, máy nhận sẽ nhận và hiển thị thông tin (ví dụ chuỗi kí tự, hay xa hơn là file dữ liệu) được gửi từ máy gửi.

    Mong được sự chỉ giáo của mọi người! em cảm ơn nhiều!
    |

  • #2
    Nguyên văn bởi vutoannd Xem bài viết
    Xin chào!
    Em là sinh viên, được nhận 1 đề tài về lập trình giao tiếp cổng con dùng ngôn ngữ C. mà e không biết hướng làm bắt đầu từ đâu. Trước tiên, em muốn viết 1 chương trình giao tiếp giữa 2 máy tính kết nối với nhau bằng cổng COM. và có 2 chương trình chạy trên 2 máy, máy nhận sẽ nhận và hiển thị thông tin (ví dụ chuỗi kí tự, hay xa hơn là file dữ liệu) được gửi từ máy gửi.

    Mong được sự chỉ giáo của mọi người! em cảm ơn nhiều!
    Trong quyển Kĩ thuật ghép nối máy tính của Ngô Diên Tập có nói rõ ràng mà bác.

    Đây là đoạn code mà em dùng, pác xem có xài được thì cứ tự nhiên nhé.

    Code:
    // Thiet lap thong so cho cong Com
    void set_up(void)
    {
      outp(lcr,0x80);//Dat bit so 7 cua LCR len 1 de chot so chia
      outp(com1,0x0c);// chon toc do Baud la 9600
      outp(lcr,0x03);// chon cac thong so: khung truyen 8 bit. khong kiem tra Party
                   // xoa bit 7 de thiet lap bo dem truyen nhan, su dung 1 bit Stop   
    }
    
    void Send(int ch)
    {
     char status;
     do
      {
       status=inp(lsr) & 0x40;
        // kiem tra bit thu 6 xem qua trinh truyen da xong chua
      } while (status!= 0x40);
           // khi da truyen xong thi gui
     outport(txdata,(char) ch);
    }
    
    int Get(void)
    {
     char status;
     do
      {
        status=inp(lsr) & 0x01; // kiem tra xem co ki tu nao o bo dem khong, neu co thi doc
    } while (status!= 0x01);
      return ((int)inportb(txdata));// tra ve gia tri doc duoc.
    }

    Chúc bác thành công.

    Comment


    • #3
      Thanks bác nhiều! nhưng mà em mới bắt đầu, cũng chưa biết dùng công cụ nào để biên dịch phần này luôn. Yêu cầu gửi nhận lại ở trên 2 máy tính nữa,
      |

      Comment


      • #4
        Nguyên văn bởi vutoannd Xem bài viết
        Thanks bác nhiều! nhưng mà em mới bắt đầu, cũng chưa biết dùng công cụ nào để biên dịch phần này luôn. Yêu cầu gửi nhận lại ở trên 2 máy tính nữa,
        Turbo C bác àhh !

        Cắm chéo nó lại:
        TX1 >> RX2
        RX1 << TX2

        Thử dùng 2 hàm truyền/ nhận trên cho từng kí tự nhé.

        Comment


        • #5
          giao tiếp cổng Com bằng VB

          bạn nào rành giao tiếp cổng com bảng VB thì giúp mình với.
          mình tập viết chương trình VB giao tiếp với cổng com. chương trình truyền và nhận chuỗi kiểm string thì bình thường. nhưng khi gửi kiểu byte (0 -> 255) hay kiểm interger thì chương trình chỉ gửi mã dạng ASCII của số đó. ví dụ mình gửi số 1 xuống VDK thì nó phản hồi lại mã ASCII là 49 , gủi số 12 thì phản hồi lại 67, gủi 115 thì phản hồi lại 2 số là 50 và 51.
          mình muốn chương trình gửi xuống số 1 thì phản hồi lên số 1, gửi 115 thì phản hồi lên 115
          bạn nào biết giúp mình với nhé
          thanh you!
          LMD 238 Tăng Bạc Hổ - TP. Quy Nhơn.

          Comment


          • #6
            vb

            file đính kèm
            LMD 238 Tăng Bạc Hổ - TP. Quy Nhơn.

            Comment


            • #7
              Nguyên văn bởi tungtot_vl Xem bài viết
              bạn nào rành giao tiếp cổng com bảng VB thì giúp mình với.
              mình tập viết chương trình VB giao tiếp với cổng com. chương trình truyền và nhận chuỗi kiểm string thì bình thường. nhưng khi gửi kiểu byte (0 -> 255) hay kiểm interger thì chương trình chỉ gửi mã dạng ASCII của số đó. ví dụ mình gửi số 1 xuống VDK thì nó phản hồi lại mã ASCII là 49 , gủi số 12 thì phản hồi lại 67, gủi 115 thì phản hồi lại 2 số là 50 và 51.
              mình muốn chương trình gửi xuống số 1 thì phản hồi lên số 1, gửi 115 thì phản hồi lên 115
              bạn nào biết giúp mình với nhé
              thanh you!
              Dùng lệnh chr để đổi ký tự ví dụ: mscomm1.send(chr(115))
              AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
              Xem thêm tại Online Store ---> Click here
              Mob: 0982.083.106

              Comment


              • #8
                Mấy bác đừng đi lạc đề sang vb! Chỉ bên c cụ thể giùm em với! Thầy e yêu cầu c chứ không phải c++. Hiz
                |

                Comment


                • #9
                  Khi mà người ta ko bik thì nên giới thiệu giáo trình hoặc đưa tài liệu cho đọc Chứ mấy bác trả lời thế "lày" thì sao mà hỉu dc chứ.
                  Tui cũng nhận dc bt lớn vxl giao tiếp máy tính. Mình có tìm dc tài liệu nè,nhưng chưa đọc nữa, có j thì chúng ta củng nhau học hỏi hen :")
                  [Tài liệu] Luận văn giao tiếp máy tính 8051 : http://www.mediafire.com/?ynymhzyjnzx

                  Comment


                  • #10
                    Uh! Thanks bạn ủng hộ! Nhưng cái của bạn có phần giao tiếp qua cổng com không?
                    |

                    Comment


                    • #11
                      bạn đọc tài liệu mình đưa chưa, dùng qua cổng com đó. Nhưng viết bằng asem, nhưng nếu bạn hiểu dc giải thuật thì có thể viết lại qua C dc muh

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X