各位高手,帮我一下,串口数据处理,在线.....(200分)

  • 主题发起人 主题发起人 rzqcjwrz
  • 开始时间 开始时间
R

rzqcjwrz

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手,帮我一下.我单位有一金额显示牌,已不可能找到编程资料,但我想通过串口监控程序,得到原来程序发送的控制码。我用两台计算机将COM1口联接,得到另一台计算机发送的串口数据,如:0A 04 01 00 ,但我通过编程,无法将此数据控制金额显示牌的单片机显示字符.如何才能正确操作?
单片机:89C51,串口蕊片:MC1489P,片选:HD74LS373P
 
前提是你得弄明白对金额显示牌控制的通讯报文,比如显示需要的内容用什么通讯码控制,效验方式、波特率等必须得搞明白。当然测试直接就可以用串口调式工具就行了
 
谢谢你。
波物率是:1200
8位、无校验、1位停止位
但其它我不知了。
怎样才能自己编程发码控制金额显示牌.
 
领导规定了时限,请各位帮助.
 
原来不是有程序吗?
联系原来程序的编写人,要通讯协议,这是最快的方法。
不行用你的串口通讯监控,这个需要花点时间。
把通讯的协议弄清楚了之后,就可以编代码控制了。
 
原来的程序在,可以测出串口所发的码.
找不到原来编程的人了,公司在,但人走了.
串口我已监控了,但反过来不能控制.
 
对金额显示牌的控制目前如果是自动控制的,如果没有一点资料最好的办法是你可以直接将一串口线并接在金额显示牌的串口上,分析收发的代码。不过这很麻烦,需要时间
 
谢谢你,还有没有更好的办法
 
如果没有任何资料的话,只能是监视代码了
 
下载一个PortMon,把数据都记录下来,贴上来
 
我原程序是在DOS下编的,怎么测试??
 
A 计算机(DOS) COM1 <-> B 计算机 COM2, B 计算机 COM1 <-> 金额显示牌
自己在Windows下写一个串口程序,放在B计算机上,用于Com1 Com2 之间转发数据,
并记录,然后把记录的数据贴上来
 
监控: COM1
创建时间: 2008-02-25, 00:06:45
计算机名: J4
系统版本: Microsoft Windows XP Personal Service Pack 2 (Build 2600)
# Time Function Data ( Hex )
1 [00064374] IRP_MJ_READ Length: 0004, Data: 0A 04 01 00
2 [00064575] IRP_MJ_READ Length: 0004, Data: 0A 06 02 00
3 [00064838] IRP_MJ_READ Length: 0004, Data: 01 00 03 00
4 [00065052] IRP_MJ_READ Length: 0004, Data: 02 00 04 00
5 [00065258] IRP_MJ_READ Length: 0004, Data: 02 00 05 00
6 [00065429] IRP_MJ_READ Length: 0004, Data: 03 00 05 00
7 [00065645] IRP_MJ_READ Length: 0004, Data: 04 00 05 00
8 [00065940] IRP_MJ_READ Length: 0004, Data: 05 00 05 00
9 [00066165] IRP_MJ_READ Length: 0004, Data: 06 00 05 00
10 [00066416] IRP_MJ_READ Length: 0004, Data: 07 00 05 00
11 [00066681] IRP_MJ_READ Length: 0004, Data: 08 00 05 00
12 [00066893] IRP_MJ_READ Length: 0004, Data: 09 00 05 00
13 [00067139] IRP_MJ_READ Length: 0004, Data: 0A 00 05 00
14 [00067359] IRP_MJ_READ Length: 0004, Data: 01 00 05 00
15 [00067581] IRP_MJ_READ Length: 0004, Data: 02 00 05 00
16 [00067780] IRP_MJ_READ Length: 0004, Data: 03 00 05 00
17 [00068036] IRP_MJ_READ Length: 0004, Data: 04 00 05 00
18 [00068249] IRP_MJ_READ Length: 0004, Data: 05 00 05 00
19 [00068471] IRP_MJ_READ Length: 0004, Data: 06 00 05 00
20 [00068707] IRP_MJ_READ Length: 0004, Data: 07 00 05 00
21 [00068934] IRP_MJ_READ Length: 0004, Data: 08 00 05 00
22 [00069151] IRP_MJ_READ Length: 0004, Data: 09 00 05 00
23 [00069376] IRP_MJ_READ Length: 0004, Data: 0A 00 05 00
24 [00070055] IRP_MJ_READ Length: 0004, Data: 01 00 05 00
25 [00070284] IRP_MJ_READ Length: 0004, Data: 02 00 05 00
26 [00070486] IRP_MJ_READ Length: 0004, Data: 03 00 05 00
27 [00070690] IRP_MJ_READ Length: 0004, Data: 04 00 05 00
28 [00070910] IRP_MJ_READ Length: 0004, Data: 05 00 05 00
29 [00071110] IRP_MJ_READ Length: 0004, Data: 06 00 05 00
30 [00071371] IRP_MJ_READ Length: 0004, Data: 07 00 05 00
31 [00071610] IRP_MJ_READ Length: 0004, Data: 08 00 05 00
32 [00071866] IRP_MJ_READ Length: 0004, Data: 09 00 05 00
33 [00072110] IRP_MJ_READ Length: 0004, Data: 0A 00 05 00
34 [00072334] IRP_MJ_READ Length: 0004, Data: 01 00 05 00
35 [00072559] IRP_MJ_READ Length: 0004, Data: 02 00 05 00
 
数据不完整,不应该只有Read的,要么就是你监听的方法不对
 
我通过串口中继方式,得不到数据
 
不会吧?你写的转发程序有问题?监听时一定要保证不破坏原有的环境状态。还有
他原来的串口线是3线还是7线的?是不是他利用DTR,CTS等做了什么手脚?
 
它接的是2、3和7脚,3线接法,但有区别。
 
可以试着用串口大师之类的调试工具向金额显示牌发数据看看。
例:0A 04 01 00 (记住是16进制)
 
25针3线接法?和通常有什么区别?
 
9针3线接法,2-接收数据,3-发送数据,7-请求发送
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部