阅读:1941回复:16
51串口传输模式中,要对传输的位进行控制,我该如何做?
51串口传输模式中,要对传输的位进行控制,我该如何做?
如,1(start bit) + 8(data bit) + 1(verify bit) + 1(stop bit) 在上面我该如何对检验位(verify bit)控制并使它送出去? 我是否要用 Vxd 技术。 在window下面,能不能用VC实现? |
|
沙发#
发布于:2002-03-11 14:37
51的串口传输模式中,方式2和方式3都是11位传输,发送的第10位由SCON中的TB8决定,如果作为奇偶校验位,那么你需要先算出你发送的数的位和是奇还是偶,然后决定TB8是0还是1,然后再发送出去;接受的第10位在SCON的RB8中,如果作为奇偶校验,你也要算出接受的数的位和是奇还是偶,再和RB8对照!
|
|
板凳#
发布于:2002-03-11 15:41
to: Wxy8030
你说的很对。 比如说工作在方式3时,我如何用PC机来发送给51片一串信息,使得可以控制发送出去的第10位?比如使它为1或0 我对Vxd一点都不了解,我不知道在PC机中能不能用VC一类的编程来实现? |
|
地板#
发布于:2002-03-13 16:42
我倒,这边怎么没有人回答我的问题```````~~~~~~
|
|
地下室#
发布于:2002-03-13 18:36
单片几我不知道,不过PC下,如果是98用VC没问题,也可以用vxd
2000下不行 |
|
|
5楼#
发布于:2002-03-14 07:44
to: Snare
就上面所说得,如我想控制那个(verify bit)位,那我该如何来实现。能不能说说思路,我真的很想知道。 特些谢谢Snare了。实现了,有机会可以请客,真的。 |
|
6楼#
发布于:2002-03-14 07:46
对了,可以暂时在职98下实现。
|
|
7楼#
发布于:2002-03-14 13:02
对不起老兄,PC机上的程序我是用VB做的,用VB实现你说的问题很简单!不过我不太懂VC.
|
|
8楼#
发布于:2002-03-22 16:47
to: Wxy8030
你在PC下实现的,你用VB实现了对检验位的操作吗? 对检验位的操作中,你能很好的把它改写吗?在PC上你能接收到从8051发过来的第九位(检验位)吗?并能不能对改写了的检验位进行很好的数据发送?这中间当然不能影响到要发送的数据内容。 请问下你在VB下是如何实现的? 谢谢! |
|
9楼#
发布于:2002-03-23 11:18
应该是在MSCOMM控件中设置通信方式和是否进行奇偶校验,如果有校验的话,直接由主板上的8253来做,与你的软件编程无关。
我认为是这样,愿共同探讨。 |
|
10楼#
发布于:2002-03-25 13:12
to: jep
你说的很对,一般的软件编程只设置好协议就可。 但问题是,我要用软件编程检测从串口接收来的数据对应的校验位的值是多少。 同时也自己设置发送数据时对应的校验位的值。 你说我用软件编程能实现吗? |
|
11楼#
发布于:2002-03-26 17:28
现在的主板上是16550控制串口,和你编程不发生什么关系。
|
|
12楼#
发布于:2002-03-27 06:02
网上有篇文章<<在windows95下PC机和单片机的串行通信>>,找来看看,挺好的,正合你胃口。(Sorry,我忘了出处了,可用MAX232和N80C196KB做检索)。我也在学单片机,希望能联系,多指教。 :)
|
|
13楼#
发布于:2002-03-28 14:02
Use inline assembly, write/read hardware port directly.
|
|
|
14楼#
发布于:2002-03-31 13:34
1。如果你的校验位只是做校验的话那就简单用控件
2。如果你的校验位有特殊的用法,对51没问题,pc有最蹉的方法:在每写一个字节时根据内容选偶校验或奇校验,读取时也一样,要用中断方式。用vxd当然好,如果你的编程不错,而且颧骨高,印堂发亮,一定可以编一个很通用的接口, |
|
|
15楼#
发布于:2002-04-01 13:08
1。如果你的校验位只是做校验的话那就简单用控件 Agree with point 1. 在每写一个字节时根据内容选偶校验或奇校验,读取时也一样 no need, just use Stick Parity Bit. And you can use inline assembly under Win98. very easy. |
|
|
16楼#
发布于:2002-04-01 14:23
1。如果你的校验位只是做校验的话那就简单用控件 Agree with point 1. 在每写一个字节时根据内容选偶校验或奇校验,读取时也一样,要用中断方式 --------no need, just use Stick Parity Bit. You can use inline assembly under win98 instead VXD,very easy. I don\'t know whether you need to read parity bit. If no, just use API--\"SetCommState\" to set Stick Parity bit. |
|
|