关于51单片机的串口方式0通讯

这里讲REN置1后开始接收数据,暂时是串口方式0,但是系统还没发送数据,可是它说已经接收到了数据,产生中断,那它接收到的数据是什么数据,而且开启中断是在后面才开启的,(中断还没开启,如果标志位置位,那么中断开启后回立马执行中断服务函数吗?)

严格来说,51单片机的串口方式0,并不是用于串口通信的,只用于在RXD,TXD引脚上接有74LS164,串入/并出,或74LS165,并入串出。也就是只能与串行芯片配合使用的。
而真正用串口实现串行通信的是方式1。所以,你的程序要改成方式1。在方式1时,只有开中断允许标志位和接收到数据后,才会申请中断,单片机才会响应中断。追问

我想问的是他还没改为方式1的时候,还是方式0通讯的时候,它已经接受到数据并产生中断,这个数据是什么数据?怎么判断是高电平还是低电平?它一开始产生第一个中断是因为方式0而产生中断的,中断是后面才开启的,在开启中断之前,中断标志位已置位,那么它一开启中断是不是就马上进入中断函数呢?

追答

别用方式0,只要开中断,RXD,TXD引脚有信号,就会接收了。在写
SCON=0X50; 后就清除了中断标志位,而且必须是接收到真正的串口通信数据才中断。

为什么就不能直接设置方式1呢,这么留恋方式0吗?已经告诉你了,方式0不是串行通信,为什么纠结在方式0呢?

追问

方式1我之前已经看懂了,只是我看到方式0这个例子我不太懂就很想弄懂,是我的强迫症。。。

追答

这好哇,想弄懂方式0,给你两个例子,专门用方式0工作的,自己练习根据仿真图,写程序。

方式0发送方式,外接74LS164

方式0接收方式,外接74LS165

请采纳吧

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-11-19
51单片机串口方式0是同步移位工作模式,波特率是固定的,没法改变波特率。一般用于串转并或并转串的应用中。你的例子中是方式1,说明文字告诉你先设置工作方式,再允许接收,这样可以避免默认状态下(方式0)的误接收数据。追问

我这里对方式0的解释我不太懂,它接收数据然后产生中断,这个接收到的数据是什么数据我不知道,也不知道是谁提供的,中断标志位是在开启中断前就已经置位了,是吗?然后打开中断就立马进入中断函数?

第2个回答  2019-12-21
建议你这样理解,方式0不属于(通信方式),它必须和某个以为寄存器一起,才能发挥作用,一起实现串转并(比如74ls164)或者并转串。。。
第3个回答  2018-11-19
机电一体化追问

??你是在回答我问题??

相似回答