请问如何实现计算机和单片机之间的串口通信!(100分)

  • 主题发起人 主题发起人 lenapu
  • 开始时间 开始时间
L

lenapu

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有一个计算机和一个单片机,在delphi 制作的PC界面中使用MSCOMM实现他们之间的通信。
比如计算机发送01给单片机,单片机感受不同的电平进行不同的操作,然后发送一个16位的数据给计算机,计算机接收其后12位在PC界面上进行其他的操作。
难者不会,会者不难,知道的告诉一声,十分感谢!
我的邮箱是pulina126@126.com
 
搂主再说清楚点。单片机发上来的是12byte还是12位?其中开始位、停止位、校验等是怎么设置的阿?
 
我应用的是ADuC812的芯片,其内核是8052。我用的是UART接口通过MAX232ACSE(16)与PC机进行通信。通信方式是方式一,即:10位发送(通过TXD)或接收(通过RXD).一位起始位(0),8位数据位(lsb在前),一位停止位。
其中单片机向pc机发送的数据是经A/D转换后的数据,由于其芯片的特征,数据的存储方式比较特别:模拟信号经过A/D转换变成12位的数字结果存储在特殊功能寄存器ADCDATA H/L中。就是要将这12位数据发送给电脑,第一次发送低八位,第二次发送高四位(其前边四位用零补足)。
就是想问一下:利用mscom控件和delphi,如何接收这些数据,以及发送一些控制指令给单片机!
 
自己顶一下!嘿嘿!
难者不会,会者不难,知道的传授一下心得,非常感谢!
 
听说用API函数比较简单,可是还是不懂;请教!!!!
 
你都知道用MSComm了,还问什么呢?
通信过程都是用十六进制就可以了
 
用MSCOMM我当然知道
可是我还不知道怎么用呢!
能否告知一声!嘿嘿!
 
Pcomm.dll 下载去吧,里头还有帮助文档
 
Pcomm.dll怎么用的啊?
 
spcomm,这个也比较好用,具体帮助都有。MSComm这个也行,用法帮助里都有的。自己看一下吧,需要我联系,不过下面硬件我不怎么熟啊
 
我只负责实现软件部分就行了!
握手协议是这样的:
1)PC(通过串口)先向812发送“0xaa”,812回应,向PC发送“0xaa”;
2)再执行步骤1一次,无误,则握手成功。
3)PC向812发送明确指令,812按照指令执行相关操作。需发送的指令包括“预加激励的电极和测量电极确认”和“采样次数”。协议如下:
   1)PC先向812发送“0x84”,
   2)发送两个字节的“激励、测量电极确认指令”,发送2次,以确保指令无误。
   3)再发送一个字节的“采样次数指令”。
   4)812回应,分别将“电极确认”,“采样次数”两个命令发回PC,然后812开始执行相关指令。
   5)执行完毕,待机,等待新指令。
 
那简单啊,很小的东西,直接写点就成了。可以联系我。qq:50051082。
 
谢谢谢谢!
 
其实你把mscomm设置好,如波特率、停止位等。只要写入mscomm1.outpot:=你要发送的数据,就可以了,同样在单片机上你只要写入 mov sbuf,a 就行了,没什么问题。
 
若有源代码,请给我一份。
200分,另开帖
yu-zhiwei@126.com
 
以前设计过IC卡读写器,里面一部分是PC与单片机(8052)通讯的,可惜源码(VC写的DLL库,DELPHI可调用)在家里(出差当中),要不就可以发一份给你。
 
谁有相关的源代码都非常欢迎发给我啊!
呵呵!
 
建议用cport,简单好用。
1、确定用查询方式还是事件(中断)方式。
2、实现通信协议,最好做成一个通信类,串口监视用线程。。。
3、控制部分如果比较复杂,最好也做个控制类。。。
 
用spcomm这个控件
 
大家说说学单片机好呢,还是学cisio网络好呢?
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部