EdSim51 UART输出奇怪的字符

时间:2018-11-10 16:23:35

标签: assembly 8051 edsim51

我尝试使用EdSim51模拟8051 UART,以保持输出字符A,并且效果很好。但是,如果我更改了一些理论上不会干扰输出的寄存器,则输出将变成其他一些字符,其中一些在扩展ASCII表中,例如Ph,{ {1}},ENQVTBELNELÐ

我想知道我的代码有什么问题还是仅仅是EdSim51的错误?

¨设置为System Clock (MHz),而11.0592设置为8-bit UART Baud Rate

下面的工作代码将4800 Baud设置为SBUF,然后等到'A'变成TI,将1设置为TI并循环。它不使用任何寄存器,堆栈,累加器,仅使用简单的命令。

完整的汇编代码:(一直输出字符0。)

A

将产生奇怪字符的完整汇编代码:(基于工作代码,我添加了许多看似多余的行,它们用于增加发生奇怪行为的可能性。)

ORG 0000H
;; TMOD = 0x20;
MOV TMOD,#20H
;; TH1 = (char)-6;
MOV TH1,#0FAH
;; SCON = 0x50;
MOV SCON,#50H
;; TR1 = 1;
SETB TR1
START:
;; SBUF = 'A';
MOV SBUF, #41H
WAIT:
;; if TI is 1, Clear TI and goto START.
JBC TI, START
;; Otherwise keep polling.
;; goto WAIT;
JMP WAIT

0 个答案:

没有答案