【问题标题】:Sending a stored value register over serial in assembly and 8051在汇编和 8051 中通过串行发送存储值寄存器
【发布时间】:2013-06-11 09:36:48
【问题描述】:

我想使用 8051 微处理器和汇编代码通过串行端口发送处理器寄存器中包含的值。

超级终端上出现一些奇怪的字符,而发送字符串效果很好。 想法?

【问题讨论】:

  • 为什么不在发送寄存器值之前将其转换为十六进制 ASCII 字符串?
  • 是的,这听起来并不那么直接

标签: assembly serial-port 8051


【解决方案1】:

3 名候选人

  1. 很可能:您在超词中收到的奇怪字符实际上是您的 8051 正在发送的数据。由于 8051 可能发送代码为 128 - 255 的字节,ASCII 之外的区域以及 0 - 31 范围内的不可打印 ASCII(10,13 除外),超术语使用了一些 有趣 字符显示这些字节。 e. G。部分代码字符表如下。请注意存在其他代码到字符的映射。

128 欧元 129 ? 130 ‚ 131° 132 „ 133… 134 † 135 ‡ 136 137‰

  1. 发送方/接收方未使用相同的奇偶校验/停止/位长度设置。确保两者都使用相同数量的位/字 (8)、停止位 (1) 和奇偶校验设置(建议“无”)。

  2. 波特率不匹配。不寻常,但 8051 可能使用与接收波特不同的发送波特。 (不太可能)


有待进一步调查的问题

A.详细说明您如何知道发送字符串工作良好。

B.收到的预期字符是什么?你收到了什么奇怪的字符?

【讨论】:

  • 是的,你是对的。我试图以不正确的方式发送包含存储值的寄存器,导致客户端解码错误。其他数值还可以!
【解决方案2】:
org 0h
mov a,#10110011b
mov r2,#8d
clr P2.2
     rrc a
     mov p2.2,c
     djnz r2,go
    setb p2.2
end

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 2012-01-11
    • 2014-04-25
    相关资源
    最近更新 更多