SOS!!!电脑和单片机串并口通信问题(200分)

  • 主题发起人 主题发起人 angelsoft
  • 开始时间 开始时间
A

angelsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
我正在编一个程序,要用到电脑和单片机串并口通信,碰到了问题,希望大虾救我

一,串口通信我已能正确接收发送,但有一个问题想请教,如果我不知道单片机的

接收格式,即波特率,奇偶校验位,停止位,但我手里有一个程序,这个程序能够和单

片机正常通信,试问:我如何通过这个程序正确得到该单片机的接收格式,即波特率,

奇偶校验位,停止位.(注:串口通信用的是SPCOMM控件,电脑和电脑之间通信已实现)

二,并口如何实现正确接收和发送,在我的电脑里通过直接电缆连接能够正确通信,

但如何编程实现并口的数据传送及接收,我已经在大富翁已答问题上查过,但在我

的程序中都没有用,所以我希望能够得到哪位大虾已经实际验证使用过的代码,这

两个问题已经困扰我多日,请高手不吝赐教,另我用的是D4
 
可以反汇编把单片机的那段初始化程序调出来察看,如果是51系列你可把他反汇编过来我在dfw
里帮你看
 
在《单片机应用技术选编6》中有“80C51系列单片机波特率自动检测的通用程序”,
测试不要用PC机,用单片机好操作。
 
To liwenbin:
因为我对单片机不熟,所以要反汇编单片机的代码是不可能的
To H999:
我所要传送的单片机不一定是80C51系列,也可能是其他系列,但有一点应该可以肯定
就是说不论是哪一种单片机,他们的波特率,奇偶校验,停止位都应该是一样的,(
注:我指定的是我的程序要传送的单片机,不是指其他的单片机,因为这有一个标准)
你所说的程序我在何处能够得到,你如果有的话,能否EMAIL给我,不用感谢!
 
是PC先发送给单片机然后单片机进行应答,还是单片机先向PC发送,
如是后者就比较简单了,通过改变PC的波特率,奇偶校验,停止位
进行接收何时收到说明格式应是确的。如果是前者,我认为用liwenbin
的方法应是正确的。
 
1.反汇编51程序,然后用开发机调试。
2.用超级终端接收单片机发出的数据,一般将波特率设高点可以接收到低拨特率的数据。
停止位,和奇偶校验位可以一个一个试,或者自己编程序读数据,然后再分析。
3.关于并口通讯,比较麻烦,有一个dlportio控件自带设备驱动程序,专门有一个打印口控件
提供打印口控制,可以控制打印口的每针。在torry's Delphi Pages里有。


 
To mfc:
在我的程序里应该是PC发给单片机然后单片机应答,我在调试别人编的和单片机通
信的程序发现,设A为别人编的程序,B为单片机
A先发送请求信号 00 00
B在收到后不论发送什么信息,A都开始发送
我试验时B仍然是使用的PC,因为手里没有单片机
TO HEXI:
请问torry's Delphi Pages主页地址?

不胜感谢

 
通过改变PC的波特率,奇偶校验,停止位多试几次不行吗,因为常用的组合并不多。
我发现MCS-51在模式3,M2=1的情况下,PC的校验位为MARK,NONE时,都能收到。
 
问题还没有解决,请大虾继续解答,尤其是并口通信问题,torry's delphi pages的
DLPORTIO我已经得到,可是仍然无法接收,哪位高手有并口通信的源程序,而且实际
使用过的,请赐教,不胜感谢!!!
 
我发现可能是我的并口连线有误,哪位大虾知道并口线的接法,请赐教
(注意:不是直接电缆连接的接法,我发现直接电缆连接的接法实际上是一种将
并口当串口用的接法,我说的接法,应该能编程方问对方的计算机)
 
1)帧格式可以这样得到,用你手头的程序通一下,然后编程去getcommstate
一般情况下,程序关闭端口后都不会复置commstate,这样你就可以得到了
如果不行的话,可以试着改变自己的格式去连.
再有的办法就是上示波器看了
但是我很奇怪,难道你知道这些就足够了吗?上层通信协议怎么办?你已经得到了?
我想人家的文档不会写了通信协议却忘了帧格式吧
2)并口线连法是很多的,如果纯并行通信,8条数据线连上就可以
其实一般应该象直接电缆连接那样用,否则传不远
 
DOS下有一个MSD.EXE,你运行完通讯程序后,再运行MSD,
应当可以得到你所需要的,除非写通讯程序这人有病,程
序结束时恢复了串口设置
 
To iie & driver:
谢谢了,等你们所说的方法我测试通过,我一定给你们加分
另iie兄:
并口接线的方法确实是有很多,我现在想要的是并口在SPP(NORMAL)模式下的
接线方法,在ECP模式下的接线方法我已经得到了,另关于上层通信协议,我有一
部分资料,但不完整,我想通过测试自己得到,即接收PC和单片机的通信数据进行
分析,我想这种方法应该是可行的。因为我这个程序不是替某个人或某个单位做的,
所以有些资料这能自己想办法得到,更希望大虾们帮忙
 
拉拉拉拉拉!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
MCS-51在模式3,M2=1时
Pc Com==>PcTestCom1 // 第一步
||(中间监测程序)
PcTestCom2==>Msc-51ComPort //第二步
这是一种本办法,当你的单板机和计算机通信的前提下,可以用此方法自动判定
通讯的格式(ASCII/BIN;DATABIT,...,FRAME FORMAT ),你要将可能见到的通信格式
做个排列组合,先实现第一步, pcCOM==>TestPcCom1 将您得到的数据再原封不动的
通过PcTestCom2发送给单板机,试试行吗?
 
angelsoft:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
829
SUNSTONE的Delphi笔记
S
S
回复
0
查看
788
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部