导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[clair]C51编程:高手请进:关于PC与单片机通



No.11636
作者:clair
邮件:clair@vip.sina.com
ID:1858
登陆:1次
文章数:5篇
最后登陆IP:
最后登陆:2002/9/28 13:36:00
注册:2002/9/28 13:36:00
财富:20
发帖时间:2002/9/28 14:34:00
发贴者IP:61.160.199.84
标题:clair:C51编程:高手请进:关于PC与单片机通讯的一些问题
摘要:No.11636C51编程:高手请进:关于PC与单片机通讯的一些问题 近日在作一解码板的开发,主要是模仿国外的板子重做自己的,芯片采用89C51,通讯协议
已经入手。调试时由PC端程序(用VB自编)发送指令,C51接收指令判断后处理。

指令格式:每条指令为七个字节,起始字节为0xff;
指令流程:PC COM1口 --> RS232/RS485转换器 --> MAX1483+AT89C51

目前问题:VB发送指令,那块原装的板子可以正常接收并处理;而用我的板子和程序接收时
必须在VB发送端作附加处理:每两个字节中加入延时。延时的时间和波特率成反比。在波特
率2400时,须加入延时空循环250000次;波特率9600时,空循环100000次。我的机器配置是
赛扬1.7GHz,如果换台主频慢的如赛扬300的话,可能只要空循环50000次就够了。


以下是VB程序中用来测试的单击事件:在测试原装板时 i 和 j 等于 0 即可

    If Button = vbLeftButton Then
        Dim i, j As Double
        i = 250000            'i和j用来控制空循环的次数
        j = 250000            '也是延时程序Delay的入口参数

    '由于要发送大于&H80的字节,所以定义了这么多单字节数组
        Dim da001(1 To 1) As Byte
        Dim da002(1 To 1) As Byte
        Dim da003(1 To 1) As Byte
        Dim da004(1 To 1) As Byte
        Dim da005(1 To 1) As Byte
        Dim da006(1 To 1) As Byte
        Dim da007(1 To 1) As Byte
        
        da001(1) = &HFF
        da002(1) = &H10
        da003(1) = &H0
        da004(1) = &H80
        da005(1) = &HA3
        da006(1) = &H0
        da007(1) = &H0
        
        MSComm1.OutBufferCount = 0
    &nbs ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:7276毫秒 查询6次