Ⅰ 两个8051单片机之间用方式2串行通信
串行口是单片机与外界进行信息交换的工具,8051单片机的通信方式有两种:
并行通信:数据的各位同时发送或接收。
串行通信:数据一位一位次序发送或接收。
串行通信的方式
异步通信
用一个起始位0表示字符的开始,用停止位1表示字符的结束,中间夹着8个数据位,字符能一个接一个传送
CPU与外设之间必须有字符格式和波特率两项规定
字符格式规定能使双方把0和1串理解成同一种意义,原则上自由制定,通用角度使用标准如ASCII
波特率即数据传输速率,每秒传送的二进制位数,如120字符/s,每个字符10数位,则传送波特率为1200波特
同步通信
去掉了开始结束标志提高速度,但由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。
通信方向
在串行通信中,把通信接口只能发送或接收的单向传送办法叫单工传送;把数据能双向传递称为双工传送。半双工传送两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。全双工传送是能同时发送接收。
串行接口结构
51单片机一个可编程的全双工串行通信接口。可用作异步通信方式(UART),与串行传送信息的外部设备相连接。或用于通过同步或异步标准通信协议进行全双工的8051多机系统,使用TTL或CMOS移位寄存器来扩充I/O口。
8051单片机通过管脚RXD(P3.0,串行数据接收端)和管脚TXD(P3.1,串行数据发送端)与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。
Ⅱ 关于51单片机与单片机通过315M无线模块实现双机通信问题
2262和2272是单向通信的,不能双向传输数据,因此,也无法实现反馈。
如果要实现反馈,有三个建议:
一、在发送和接收端各安装一片2262和2272,也就是说,一共要有2片2262、2片2272,用2272来收数据,再用2262发出一组编码来做反馈。
二、用单片机程序来模拟2262和2272,这样可以省掉两个芯片。模拟2262和2272的程序在网上能够找到。
三、使用nRF905这样的数传模块,可以很容易实现双向通信。
以上建议仅供参考。
如果要详细的,可以发站内信加QQ详谈。
Ⅲ 单片机通过485如何避免通信冲突,比如要发送数据,但是串口在接受数据,这样是不是就要错过此次发送数据了
单片机通过485通信, 属于准双向通讯,在接收时不能发送,上位机与下位机通讯,
一般为 上位机 发送 指令 或者 数据,下位机接收完成后 判断 是指令还是数据,
并返回 执行状态 和 数据。
就是 有接收完成 后 马上 返回数据 给 上位机。即 上位机与下位机的收发协议。
如果 随意发送数据,那肯定会乱套了。