Keil调试串口通信程序的时候为何看不到P3.0/RDX和P3.1/TXD针脚电平的变化呢?

来源:百度知道 编辑:UC知道 时间:2024/06/22 00:42:02
我随便写了个串口发送程序,在Keil中调试,单步执行,为何看不到P3.0/RDX和P3.1/TXD脚电平变化呢?然后,我又把程序编译了以后放在Proteus里运行,用示波器观察,却可以看到数据一位一位地传出,针脚电平在变,说明程序写的没问题啊。
后来我又写个串行接收程序,本来想在Keil中通过手动改变P3电平,然后单步执行程序使单片机接收,结果还是不行。
小弟初学者,在此请教各位高人。

还有个问题,在Keil中通过串口给单片机发数据正确的方法是什么?

(单片机型号选的是AT89C51)
不单步执行一样看不到变,你们自己可以试试
为了看到明显效果,我把波特率设置为最大,干脆设为模式0,即位移寄存器,这样就每个机器周期都会从P3.1/TXD输出一个位移脉冲,就是一串方波,连这个方波都一样看不到,用Logic Analyzer都看不到任何变化,无语了。。。

发送和接收是硬件自动完成的。
在Keil中调试是按指令进行的,一句“mov sbuf,a”就完成,发送/接收和您的波特率有关系,其实单片机的速度比串口最快都还要快上100倍左右,也就是说,您启动了发送,都还要等很久,端口上才会有变化。
建议您还是用实际电路做吧,仿真毕竟是纸上谈兵,实际做做收获更多。

单步执行 下 很多 都 变了

别 单步执行

是啊
最好是用MOV SBUF ,A 传送