Thông báo

Collapse
No announcement yet.

Giao tiếp RS232 trên PC bằng Visual Basic 6.0

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

  • Giao tiếp RS232 trên PC bằng Visual Basic 6.0

    Chào các bạn.

    Đây là TUT về RS232 dùng VC++ để lập trình :
    http://www.picvietnam.com/forum/show...=newpost&t=274

    Mình xin đưa cho bạn một Code mẫu đơn giản viết băng VB và có file gửi kèm.

    Code:
    Private Sub cmdClear_Click()
        Text1.Text = ""
        
    End Sub
    
    Private Sub cmdExit_Click()
    Unload Me
    End Sub
    
    Private Sub cmdSend_Click()
        MSComm1.Output = Text2.Text
    End Sub
    
    Private Sub Form_Load()
        cmdSend.Caption = "&Send"
        Text1.Text = ""
        Text2.Text = ""
        Text1.Enabled = False
        cmdExit.Caption = "&Exit"
        With MSComm1
            .Settings = "9600,N,8,1"
            .CommPort = 1
            .RThreshold = 1
            .SThreshold = 0
            .InputMode = comInputModeText
            .InputLen = 0
            .Handshaking = comNone
            .InBufferSize = 1024
            .OutBufferSize = 1024
            If .PortOpen = False Then
              .PortOpen = True
            End If
             
        End With
    End Sub
    
    Private Sub MSComm1_OnComm()
        Dim Buffer As Variant
        If MSComm1.CommEvent = comEvReceive Then
            Text1.Text = Text1.Text + MSComm1.Input
        End If
    End Sub
    Chúc bạn thành công.
    Attached Files
    Last edited by ngohaibac; 05-05-2007, 11:03.
    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

  • #2
    Cám ơn bạn nha

    Mình đang bí về đề tài này. Rất cám ơn bạn.!!
    |

    Comment


    • #3
      Anh em có cần vài cái hình ảnh hướng dẫn thêm cái thư viện MSCOMM32 vào không nhỉ ?

      Cho hình ảnh cho hoành tráng và trực quan nhỉ. Vì các bạn khoái Visual Basic hơn thì phải .

      Chúc cá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


      • #4
        Bắc dạo này luyện về interface ghớm nhỉ! Chúc em sức khỏe!

        Comment


        • #5
          Nguyên văn bởi ngohaibac Xem bài viết
          Anh em có cần vài cái hình ảnh hướng dẫn thêm cái thư viện MSCOMM32 vào không nhỉ ?

          Cho hình ảnh cho hoành tráng và trực quan nhỉ. Vì các bạn khoái Visual Basic hơn thì phải .

          Chúc các bạn thành công.
          Cám ơn Ngô Bắc Hải.

          Nhưng bạn nên viết chượng trình cho VXL và VB để người theo dõi dễ dàng học thêm.

          Thân chào
          ---------------------------------------------------




          ---------------------------------------------------

          Comment


          • #6
            Bắc cho mình hỏi về cái kết nối rs232 với

            đây là phần lập trình cho pic và cho VB nhưng khi chạy thì chẳng hoạt động đúng mặc dù cái Mscomm1.input vẫn nhận nhưng cái text thì ko hiển thị được mình cho chạy debug thì thấy cái Mscomm1.input như là dòng chữ bị lỗi phông toàn ô vuông ko hiểu tại sao ? còn cái text thì vẫn ko thay đổi ko biết phải sửa lại ntn
            #include <16f877a.h>
            #include <def_877a.h>

            #device *=16
            #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
            #use delay(clock=20000000)
            #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)//Su dung cong RS232
            void main()
            {
            int8 i;
            // Thiet lap che do cho PORTB
            TRISB = 0x00; // Tat ca PORTB deu la cong xuat du lieu
            PORTB = 0xFF; // Tat het cac LED
            While(1)
            {
            printf("Sampling:");
            }
            }
            Private Sub Command1_Click()
            MSComm1.PortOpen = False
            End
            End Sub

            Private Sub Form_Load()
            With MSComm1
            .Settings = "9600,N,8,1"
            .CommPort = 1
            .RThreshold = 1
            .SThreshold = 0
            .InputMode = comInputModeText
            .InputLen = 0
            .Handshaking = comNone


            If .PortOpen = False Then
            .PortOpen = True
            End If

            End With

            End Sub

            Private Sub Timer1_Timer()
            If MSComm1.InBufferSize = 32 Then
            Text1.Text = Text1.Text + MSComm1.Input
            End If

            End Sub

            Comment


            • #7
              Em thấy anh hướng dẫn rỏ ràng, mà em muốn viết chương trình nhỏ chỉ nhận dữ liệu từ máy đọc thẻ từ TR500A Series (TR512A Magnetic Card TK2, RS-232) làm hoài không được.
              "em muốn viết chương trình ghi lại thời gian vào và ra của nhân viên khi nhân viên gạch thẻ từ(từ máy đọc thẻ từ) qua cổng COM nối tiếp, nhưng không biết viết như thế nào. Nhờ anh chỉ giúp em cách thiết lập và viết code để nhận dữ liệu khi có sự kiện gạch thẻ.
              Em là thành viên mới chưa biết cách Post bài lên.

              Comment


              • #8
                Nguyên văn bởi thiennghi Xem bài viết
                Em thấy anh hướng dẫn rỏ ràng, mà em muốn viết chương trình nhỏ chỉ nhận dữ liệu từ máy đọc thẻ từ TR500A Series (TR512A Magnetic Card TK2, RS-232) làm hoài không được.
                "em muốn viết chương trình ghi lại thời gian vào và ra của nhân viên khi nhân viên gạch thẻ từ(từ máy đọc thẻ từ) qua cổng COM nối tiếp, nhưng không biết viết như thế nào. Nhờ anh chỉ giúp em cách thiết lập và viết code để nhận dữ liệu khi có sự kiện gạch thẻ.
                Em là thành viên mới chưa biết cách Post bài lên.
                Code chương trình VB6 giao tiếp 232 các bạn down load file đính kèm.
                @thiennghi: Nếu bạn ở HN thì mang cái đó qua, tôi sẽ xử lý giúp bạn. Dễ mà, không có j là khó cả, chỉ là ta chưa biết mà thôi
                Attached Files
                Last edited by linhnc308; 08-03-2008, 23:20. Lý do: attach file
                Ethernet-RS232, PIC Webserver, RFID Reader
                CallerID, Cảnh báo BTS, ...
                0988006696
                linhnc308@gmail.com
                http://linhnc308.blogspot.com

                Comment


                • #9
                  thấy các bác bàn luận sôi nổi quá , biết mình công lực vẫn non kém ... nên hỏi mấy bác giúp đỡ .

                  --- Giả sử ta có một thiết bị chuyển đổi USB sang RS232 .

                  không sử dụng API , làm sao ta biết được thông tin để truy cập port đó một cách tự động . ( quy luật gán địa chỉ các com port ảo , LPT ảo )... dựa trên yếu tố nào ???

                  VD : com 1 0x.... ??? com 2 ....
                  LPT1 : $0378 ... LPT2 : $0278 ... LPT3: $03BC

                  --- Đã bác nào làm truy cập DOS vào cổng com ảo được chưa ???

                  Có thể đưa thông tin bằng giải thuật hoặc EX code được không

                  VD : đặt 1 ID cho MCU
                  dùng chương trình gửi (scan ) từng port , đến khi nhận port là detect phần cứng
                  Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

                  Comment


                  • #10
                    Bác có thể tìm cuốn Cấu trúc MT của Phan Quốc Thắng HVKTQS để tham khảo. Cổng com đc truy cập qua ngắt 14h.
                    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


                    • #11
                      Địa chỉ của cổng COM có tại 0040:0000 . Mỗi cổng chiếm 2 byte địa chỉ.
                      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


                      • #12
                        Hình như standard com port chỉ có từ Com1 đến com4 thôi thì phải ( trong bios )

                        Việc quét những comport này để tự động nhận phần cứng thì đơn giản trong dos ( vì các port này map địa chỉ Bios )

                        --- còn các port ảo ( mở rộng đến 256 port ) thường phải dùng win api để nhận dạng ( các port dll ) hoặc các hàm .

                        ---
                        Điều mình quan tâm là có thể truy cập các port này bằng các chương trình đã được dùng trong DOS trước đây được không ??? ( cõ lẽ là không được )

                        --- Đã có ai ngâm cứu cái porttalk chưa ??? vì mình đã thấy một số chương trình viết trên các OS đời cũ ( 95 , 98 ... ) khi sang win32 không truy cập được port và phải dùng cái này để nhận port ( cái project AVR ISP 3. thì phải ) .

                        --- mọi người có phương án gì không . Hay là cứ phải nâng đời máy rồi mấy cái phần mềm cũ vứt hết , viết cái phần mềm mới , hay phải mua 1 con máy tính cổ về để phục dịch cái phần mềm cũ ... chuối nhỉ
                        Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

                        Comment


                        • #13
                          các thông số Com ảo này nói lên điều gì ???

                          USB\VID_067B&PID_2303\5&2D3FDD4A&0&1

                          VID_067B = địa chỉ ???
                          PID_2303 = Chip PL2303

                          ?????????????????????????
                          Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

                          Comment


                          • #14
                            Nguyên văn bởi linhnc308 Xem bài viết
                            Code chương trình VB6 giao tiếp 232 các bạn down load file đính kèm.
                            @thiennghi: Nếu bạn ở HN thì mang cái đó qua, tôi sẽ xử lý giúp bạn. Dễ mà, không có j là khó cả, chỉ là ta chưa biết mà thôi
                            cám ơn linhnc, mình đã lấy file đính kèm về chạy thử rồi nhưng vẫn chưa nhận dữ liệu được tử đầu đọc thẻ từ (hình như là sự kiện MSComm1.CommEvent = comEvReceive không xảy ra, vì khi mình gạch thẻ MSComm1.CommEvent = comEvReceive không thi hành. (máy đọc thẻ từ của mình là Model: TR500A Series)

                            Comment


                            • #15
                              các bác ơi! cho em hỏi một tý...
                              em đang lập trình giao tiếp giữa pc và pic 16f877a, em muon truyen một chuổi từ máy tính bằng vb6 đến pic thi nên viết code trên VB như thế nào và viết hàm nhận trong ccs như thế nào........

                              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