查看: 1379|回复: 19
|
各位高手,请问谁懂得怎样让PIC的output send 去VB?
[复制链接]
|
|
各位高手
我现在想让PIC的output(5V) send 去 VB, 然后让 VB 能知道有input 进来,可以通过 parallel port 弄到吗?
应该要怎么做啊?
程序该怎么写?
先谢谢咯。。。 |
|
|
|
|
|
|
|
发表于 19-10-2007 10:56 PM
|
显示全部楼层
原帖由 jason86 于 19-10-2007 09:55 PM 发表
各位高手
我现在想让PIC的output(5V) send 去 VB, 然后让 VB 能知道有input 进来,可以通过 parallel port 弄到吗?
应该要怎么做啊?
程序该怎么写?
先谢谢咯。。。
serialport & parallel port都可以 |
|
|
|
|
|
|
|
楼主 |
发表于 19-10-2007 11:22 PM
|
显示全部楼层
原帖由 fritlizt 于 19-10-2007 10:56 PM 发表
serialport & parallel port都可以
那么程序方面要怎么写呢?
可以教教我吗? |
|
|
|
|
|
|
|
发表于 20-10-2007 10:40 AM
|
显示全部楼层
原帖由 jason86 于 19-10-2007 11:22 PM 发表
那么程序方面要怎么写呢?
可以教教我吗?
通常我们都不send voltage(5V)去pc的。
都是senddata去pc,然后再process.也就是一个byte 一个byte这样send.
我用serial port。
pic方面用usart.这个不多解释。 datasheet里面有很详细地讲解。
pc 方面, 我用vb6.0。 你需要一个library. 就是mscomm.
把mscomm加进去。
然后要一点setting.我的mscomm命名为MSComm1.
MSComm1.CommPort = 1 ‘设定你要的com port.
MSComm1.Settings = "9600,N,8,1" '9600baudrate, no parity bit, 8 data bits, 1 stop bit.
接下来就很简单。
要以用的时候就要open port.
MSComm1.PortOpen = True 'open com port.
要send data就用 MSComm1.output = <string>
要receive data就用<string> = MSComm1.Input
EXAMPLE: receive.Text = MSComm1.Input
你是要拿来做什么用途的??
这个贴应该开在单晶片分区那边把
[ 本帖最后由 fritlizt 于 20-10-2007 10:43 AM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 20-10-2007 11:21 AM
|
显示全部楼层
回复 #4 fritlizt 的帖子
哦。。。 那我想我真的是开错地方了。。。 对不起
其实我是要让PIC做完一个task后send signal 去 PC(VB), VB 接收到信号后就让counter 提高一个数据。。。
我现在弄着的project是 PCB driller machine, 就是说,当钻完一个洞后 PIC 会 send signal 去 PC, 然后在 VB 的 GUI 里会显示哪一个洞已经完成。
你有更好的建议吗?
谢谢你的教学咯,感激不尽 |
|
|
|
|
|
|
|
发表于 20-10-2007 11:37 AM
|
显示全部楼层
原帖由 jason86 于 20-10-2007 11:21 AM 发表
哦。。。 那我想我真的是开错地方了。。。 对不起
其实我是要让PIC做完一个task后send signal 去 PC(VB), VB 接收到信号后就让counter 提高一个数据。。。
我现在弄着的project是 PCB driller machine, 就是 ...
强!这样的话就要控制driller的位置控制到很准。
不然的话会钻错洞。
我就没什么建议啦。。。。precision control我不在行。
做完后来分享分享一下。 |
|
|
|
|
|
|
|
楼主 |
发表于 20-10-2007 12:01 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 20-10-2007 12:58 PM
|
显示全部楼层
原帖由 jason86 于 20-10-2007 12:01 PM 发表
我完成整个 project 后一定把全部资料 post 上去,跟各位分享。。。
控制 precision 我搞定了,现在只是剩下 VB part 罢了。。。
其实刚才你提供的我不是很明白,能不能改用parallel port?
我已经加入 ...
改用paralle port是可以的。不过我不会/ 要请教pic斑竹。
其实我的方法是send data给cpu,不是cpu detect signal再process.你可以pic process再send data给cpu.或者直接send raw data给cpu process也可以。自己决定。
把pic rx -->db9 tx, pic tx-->db9 rx.ground 要common.
中间要用一个max232.来做level shifter. |
|
|
|
|
|
|
|
发表于 20-10-2007 03:51 PM
|
显示全部楼层
电子跑灯的帖, 教了如何Output 到 Parallel Port.
你要input, 可以用以下的code。
- Private Declare Function DlPortReadPortUchar Lib "dlportio.dll" (ByVal Port As Long) As Byte
- Value = DlPortReadPortUchar(&H379)
复制代码
value是读回来的8bit , Address &379, 是Parallel port 的Status port。
基本的Parallel Port 可以读回5个bit,
你可以用 Pin 10 , ACK (Bit 6) 为input。
我只是简单讲, 你不明白再问。 |
|
|
|
|
|
|
|
楼主 |
发表于 20-10-2007 05:41 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 26-10-2007 05:16 PM
|
显示全部楼层
回复 #10 jason86 的帖子
可以改, 改好了贴上来。 |
|
|
|
|
|
|
|
发表于 28-10-2007 11:33 AM
|
显示全部楼层
至于 c++ 的呢??
我在尝试用 c 和 c++ 来comunicate , 但是, 试了很多方法,
visual studio , turbo c , 都不能 。
然后我尝试用 dos 来控制 parallel port , 但是还是不能。。 |
|
|
|
|
|
|
|
发表于 28-10-2007 02:41 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 28-10-2007 02:53 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 28-10-2007 03:01 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 28-10-2007 06:54 PM
|
显示全部楼层
原帖由 chan1314 于 28-10-2007 11:33 AM 发表
至于 c++ 的呢??
我在尝试用 c 和 c++ 来comunicate , 但是, 试了很多方法,
visual studio , turbo c , 都不能 。
然后我尝试用 dos 来控制 parallel port , 但是还是不能。。
还是用dlportio1.dll, 下载Driver. << Port95NT.exe (1,573,094bytes)>>
安装后参考VC 源码。 |
|
|
|
|
|
|
|
发表于 28-10-2007 08:04 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 28-10-2007 08:12 PM
|
显示全部楼层
回复 #17 chan1314 的帖子
直接用VB比较容易吧。。。
你的C是那一个version 的?
现在有新的version,VC 差不多像VB那样的,有GUI... |
|
|
|
|
|
|
|
发表于 28-10-2007 09:16 PM
|
显示全部楼层
我试用vb , 然后大概agak agak 参考别的, 然后做到, 不知道syntax 真的很麻烦。 还好vb 不想 c /c++ 那么复杂, 猜到, 然后能用。
c 我是用 6.0 , visual.net 2005 之前向学校申请拿到, 但是不会用 |
|
|
|
|
|
|
|
楼主 |
发表于 28-10-2007 10:39 PM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|