|
楼主 |
发表于 30-11-2006 02:12 AM
|
显示全部楼层
回复 #20 pic 的帖子
- 可以先知道之前为什么不可以吗?作了什么又可以?
- 可以分享过程吗?你的经验对其他网友会有参考价值。
复制代码
其实不算是什么经验,我只是把 MAX232 的 IC 换掉。
因为,我用 scope 查到其中一个 pin 出来的 pulse 是很小。
所以知道了那粒 IC 是不正常的。
还有之前我没有注意我所用的 cable 是 direct cabling 还是 cross cabling。
所以不能正常操作。
至于 VB 来读取资料, 我还没成功。
应该在需要一点时间。
迟些才回来报告。 |
|
|
|
|
|
|
|
楼主 |
发表于 2-12-2006 08:06 PM
|
显示全部楼层
回复上次的话题
至于 VB 来读取资料, 我还没成功。
应该在需要一点时间。
迟些才回来报告。
我已经做到了!
谢谢 pic 大哥一路教导我!!
这几天应该会忙着交功课。等好了,我会学习怎样用 877A.
希望 pic 大哥 和 各位能指导小弟下一次 877A 的应用。
pic 大哥,真的很感谢你的教导 和谢谢你送给我的 PICCdos.
以下是我基本的 VB code。
Private Sub Command1_Click() 'start timer
Timer1.Enabled = True
Command1.Enabled = False
Command2.Enabled = True
End Sub
Private Sub Command2_Click() 'stop timer
Timer1.Enabled = False
Command1.Enabled = True
Command2.Enabled = False
End Sub
Private Sub Form_Load() 'when project 1st load
Timer1.Enabled = False
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True 'open the COMM port
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False 'close the COMM port
End Sub
Private Sub Timer1_Timer() 'timer event
Dim ADCValue As String
MSComm1.Output = "Q"
ADCValue = MSComm1.Input
Label1.Caption = ADCValue
End Sub |
|
|
|
|
|
|
|
楼主 |
发表于 13-12-2006 10:36 AM
|
显示全部楼层
不能显示当时的资料
pic 大哥!!
当我 design vb 给 84A 时候。
我发现了一个问题。
第一次 click button 拿资料时, 资料是显示 0 号。
第二次 click button 拿资料时, 资料是显示上一次的资料。
而第三次是拿到第二次的资料。
eg. 第一次的资料是 120, 但是我拿到 0。
第二次 click button 拿资料时, 资料是 120。
这是上一次的资料, 而当时第二次的资料应该是 50。
他不能显示当时的资料。
我用 hyperterminal test 过了 84A。
在hyperterminal 84A没有出现这问题,他是显示当时的资料。
而且开头的第一个资料也没显示 0。
是不是我的 coding 有问题呢?
Private Sub cmdStart_Click() 'GET DATA
Dim ADCValue As String
Dim SolarValue As Double
MSComm1.Output = "Q"
X = MSComm1.Input
Z = (Val(X) * 4.4)
lblDisplay.Caption = Z
End Sub
Private Sub cmdStop_Click() 'stop timer
lblDisplay.Caption = ""
cmdStart.Enabled = True
cmdStop.Enabled = False
End Sub
Private Sub Form_Load() 'when project 1st load
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True 'open the COMM port
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False 'close the COMM port
End Sub
pic 大哥,我要怎么处理呢?
可以指点指点我吗?
p/S当初还以为自己成功了。正是害羞呢... |
|
|
|
|
|
|
|
发表于 13-12-2006 04:01 PM
|
显示全部楼层
原帖由 kevy 于 13-12-2006 10:36 AM 发表
pic 大哥!!
当我 design vb 给 84A 时候。
我发现了一个问题。
第一次 click button 拿资料时, 资料是显示 0 号。
第二次 click button 拿资料时, 资料是显示上一次的资料。
而第三次是拿到第二次的资 ...
这是因为你送完request 后,需要等一下,可能10ms~100ms, 让16F84a有时间处理你的request, 再return data 回PC。
Delay可以用Sleep。
加在第一行。
' For Sleep command
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
MSComm1.Output = "Q"
call sleep(100)’delay 100ms
X = MSComm1.Input |
|
|
|
|
|
|
| |
本周最热论坛帖子
|