原创 单片机与PC通信误码两问

2008-10-3 00:04 3140 10 10 分类: MCU/ 嵌入式
1..在 单 片 机 与 PC及 通 信 时,低 速 率 时 (2400bps)很 正 常,提 高 速 率 则 遇 到 以 下 问 题 :PC机 向 单 片 机 发 送 数 据 没 有 问 题, 但 是 单 片 机 向 PC机 发 送 时 产 生 误 码, 速 率 越 高 , 误 码 越 多, 加 大 PC机 串 口 缓 冲 区 并 且 加 上 校 验 都 不 行, 提 高 接 收 线 程 优 先 级 也 不 行 , 望 各 位 高 手 指 点?

答:PC机 的 波 特 率 是 将 1.8432MHz的 时 钟 输 入 频 率 采 用 分 频 的 办 法 来 得 到 要求 的 波 特 率 , 分 频 所 用 的 除 数 是 由 CPU分 两 次 写 入 除 数 锁 存 器 的 高 位 和 低 位 , 除 数=1843200/(波 特 率 X16) 。 单 片 机 ( 以 8031为 例 , 串 口 工 作 方 式 3) 波 特 率 的 设 置 由 定 时 器 1置方 式 2自 动 重 新 装 入 , 波 特 率 =2^SMOD× 时 钟 振 荡 频 率 /(12× ( 2^N-TH1)) /32。 由 于 单 片 机 晶振 频 率 不 是 一 些 常 用 波 特 率 的 整 数 倍 , 分 频 后 有 误 差 , 如 采 用 特 殊 晶 振 如 11.059MHz, 则 可 降低 误 差 , 提 高 通 信 速 率 。

附 : 波 特 率 误 差 
波特率 PC除数值 8031TH1 误 差
110     04 17     72          0.00%
600     00 C0     E6          0.16%
1200   00 60     F3          0.16%
2400   00 30     F9           6.09%
3600   00 20     FC            8.51%
4800   00 18     FD            8.51%

2 用 MSCOMM <?xml:namespace prefix = spanstyle='COLOR /> :
    
3:
    
:
    MOV TMOD,#20H
    MOV TL1,#0FDH
    MOV TH1,#0FDH
    MOV SCON,#0C0H
    SETB TR1
    

    mov tmod,#20h
    mov tl1,#0fdh
    mov th1,#0fdh
    mov scon,#0d0h
    setb tr1
    PC MSCOMM:
    setting:9600,n,8,1
    handshaking: nohandshaking
    
:
    IDS_FRAMEERROR,
    IDS_BREAKRECEIVED
    
<?XML:NAMESPACE PREFIX = O />


 


据你 <?xml:namespace prefix = spanstyle='FONT-FAMILY />单 容 设置 数据 1 校验 特 机 上你 位 片 在 PC 上是 10位, , e,8,1 9600

='FONT-FAMILY:宋体;MSO-ASCII-FONT-FAMILY:"TIMES>='FONT-FAMILY:宋体;MSO-ASCII-FONT-FAMILY:"TIMES>='FONT-FAMILY:宋体;MSO-ASCII-FONT-FAMILY:"TIMES>='FONT-FAMILY:宋体;MSO-ASCII-FONT-FAMILY:"TIMES>='FONT-FAMILY:宋体;MSO-ASCII-FONT-FAMILY:"TIMES>='FONT-FAMILY:宋体;MSO-ASCII-FONT-FAMILY:"TIMES>='FONT-FAMILY:宋体;MSO-ASCII-FONT-FAMILY:"TIMES>='FONT-FAMILY:宋体;MSO-ASCII-FONT-FAMILY:"TIMES>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='COLOR:MAROON'>='FONT-FAMILY:宋体;MSO-ASCII-FONT-FAMILY:"TIMES>='FONT-FAMILY:宋体;MSO-ASCII-FONT-FAMILY:"TIMES>='FONT-SIZE:14.0PT;MSO-BIDI-FONT-SIZE:12.0PT;FONT-FAMILY:宋体;MSO-ASCII-FONT-FAMILY:"TIMES>

文章评论0条评论)

登录后参与讨论
相关推荐阅读
412922521_325344472 2009-11-15 00:44
通用按键消抖函数 -- 数据与过程分离
AUTO:  nicksean 不务正业          项目里经常处理按键消抖, 本来这个消抖的过程是与具体按下的键无关的, 可以前的代码总是在消抖的同时处理具体的按键值, 再加上长按 短按 组合...
412922521_325344472 2009-11-13 13:16
液晶ST7920串行显示
液晶显示128*64以7920为主控制器,采用3线制,比较经济简单。代码如下.....
412922521_325344472 2009-11-13 13:11
DS18B20 C51完整版
使用WINBOND W78C516单片机,11.0592MHZ晶振,用共阳LED数码管P0口输出段码,P1口扫描/*******************************************...
412922521_325344472 2009-11-12 13:19
74HC164驱动数码管
          74HC164是串行输入,并行输出接口器件,可用在单向的并行输出/并行地址锁存等. 74HC164因为价格便宜,容易使用特别适合使用在在需要用到数码管显示IO口又比较紧张的电子产品...
412922521_325344472 2009-11-10 20:13
at24c512多字节读写函数 欢迎测试
刚写的at24c512多字节读写函数,欢迎测试。/********************************************************************函数功能:EE...
412922521_325344472 2009-11-10 19:59
旋转编码器
    很好的旋转编码器的读码程序,设旋转编码器的输出波形如下                 ______        ______        ______        ______正转时:...
我要评论
0
10
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /4 下一条