查看: 1128|回复: 7
|
PIC Microcontroller与Visual Basic的沟通
[复制链接]
|
|
我在本地敦胡仙翁工艺大学学院就读电气工程,选修仪器与控制系,即将要考最后的两个大考,和发表毕业论文。下个月中就可毕业了。
我的论文是 Development of Computer Controlled Car Parking Management System.硬体(PIC Microcontroller)和软体(Visual Basic)的设备都必须做好。
目前硬体似乎和软体不能好好沟通,谁有办法拯救我?
需要我在这里公开什么资料吗? |
|
|
|
|
|
|
|
发表于 20-4-2006 12:34 AM
|
显示全部楼层
你的 vb 需要通過什麼來和 pic 溝通呢 rs232 嗎 ?
可能需要一些硬體及軟體的 spec |
|
|
|
|
|
|
|
楼主 |
发表于 20-4-2006 02:33 PM
|
显示全部楼层
对,我是使用rs232来让它沟通。你要的spec有哪些? |
|
|
|
|
|
|
|
发表于 20-4-2006 09:21 PM
|
显示全部楼层
一般上是這樣的
pic - rs232 - pc (vb)
pc (vb) 通過 rs232 來命令以及讀取 pic status
至於需要用怎樣的命令來 '吩咐' pic 去動作就需要 pic 的 handbook 或 manual 了
不然就用 pic 附帶的 cd |
|
|
|
|
|
|
|
楼主 |
发表于 21-4-2006 12:48 AM
|
显示全部楼层
这个我明白。看来我的问题必须一个一个来。
My serial port only applies one data line, meaning that one way to PC only, there is no Line Feed and Carriage Return.
If I wish to send 3 bytes of data, how to write the VB code? 是如以下所写吗?因为如果用2 bytes,它可以function,3就不可以了。。。
Private Sub Form_Load()
' Fire Rx Event Every 3 Bytes
MSComm1.RThreshold = 3
' When Inputting Data, Input 3 Bytes at a time
MSComm1.InputLen = 3
' 9600 Baud, No Parity, 8 Data Bits, 1 Stop Bit
MSComm1.Settings = "9600,N,8,1"
' Disable DTR
MSComm1.DTREnable = False
' Open COM1
MSComm1.CommPort = 1
MSComm1.PortOpen = True
End Sub |
|
|
|
|
|
|
|
发表于 21-4-2006 09:47 AM
|
显示全部楼层
serial communication 中比較簡單的方法是
open port
send command
receive command
close port
至於其他的設定則根據硬體而不同
你也可以嘗試使用一個 byte 一個 byte 的處理, manual poll data
有些硬體每次需要的命令及回答的長度都不同,
那就需要自己把每一個 byte 接在一起
例如;
open port
send command ( mscomm1.output = "command" )
delay
get reply ( reply1 = mscomm1.input )
close port
delay 時間的長短會根據你的 baud rate 以及距離而不同
可以從 0.010 sec 到 0.2 sec 嘗試不同的組合 |
|
|
|
|
|
|
|
楼主 |
发表于 22-4-2006 12:00 AM
|
显示全部楼层
让我先研究一番,因为你说得我都有写到。
下回才告诉你整个过程是怎么样的。
谢谢你的帮助。 |
|
|
|
|
|
|
|
楼主 |
发表于 9-5-2006 06:46 PM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|