单片机项目四单片机通信项目基本任务:双机通讯甲方按键‘1’并向乙方发出指令,乙方播放音乐甲机乙机-1--喇叭显示播放音乐按键显示扩展任务:多机通信拓扑:总线协议:主从式,轮询法图9.23多机通信示意图4•甲机发送信息给乙机,乙机显示•单片机播放音乐•甲机控制乙机播放音乐基本任务分解通信的硬件设计两种通信方式的示意图串口通讯硬件设计三线连接甲机的TXD与乙机的RXD相连,甲机的RXD与乙机的TXD相连,双机共地。三线通讯的传输距离与传输速率有关:速率越高,距离越近,当速率超过1000bps时,最大传输距离迅速下降,如9600bps时最大距离下降到只有76m?,速率最大115200bps?(?处请实验)与传输线的电气特性有关:当传输线使用每0.3m(约1英尺)有50PF电容的非平衡屏蔽双绞线时,传统TTL电平的传输距离1m5?以内;如果采用电平转换,使用RS232电平进行传输,范围15m以内什么是TTLtransistortransistorlogic晶体管-晶体管逻辑集成电路TTL信号系统:+5V等价于逻辑“1”,0V等价于逻辑“0”,对应于二进制数据TTL电平信号被利用的最多,对于设备内部的传输很理想:不需要线路驱动器以及接收器,高速率,双机通讯通讯的收发单片机有独立的程序,独立的时钟双机通讯实物下方机按钮控制上方机的灯上方机传回数据在下方机的灯上显示串口通信软件设计串口的工作方式1、2、3都是异步通讯通信速率设置发送接收数据的编程控制同步通信同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间无间隙,即保持位同步关系,也保持字符同步关系。异步通信的数据格式:停止位数据位校验位起始位LSBMSB空闲下一字符起始位空闲一个字符帧每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。异步通信的基本概念通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟保持一致。111001100101001001发送设备接收设备10100100011110011001间隙任意异步通信是以字符(构成的帧)为单位进行传输字符与字符之间的间隙(时间间隔)是任意的,即字符之间是异步的同一字符内的各位是同步的异步的概念80C51的串行口≥1SBUF发送控制器接收控制器移位寄存器控制门TIRIATXDRXD去串口中断SMOD01TH1TL1÷2÷16SBUFT1溢出率数据缓冲器、速率发生器T1,发送接收完毕标记位TI、RI引脚RXD接收数据,TXD发送数据时钟,各自使用时钟51串口工作方式的设置SCON(98H)SM0SM1SM2RENTB8RB8TIRISM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式110位UART可变10方式211位UARTfosc/64或fosc/3211方式311位UART可变51串口工作方式1帧格式:10位,其中1位起始位,8位数据位,1位停止位。TXD为数据发送引脚,RXD为数据接收引脚REN:接收允许控制位,REN为1允许接收方式1输出时序如下:D0D1D2D3D4D5D6D7写入SBUF停止位TXDTI(中断标志)起始REN,允许串行接收位。由软件设置REN=1,启动串行口接收数据;REN=0,则禁止接收D0D1D2D3D4D5D6D7停止位RXDRI(中断标志)起始位采样脉冲方式1输入时序•接收器采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,开始接收这一帧信息的其余位。•当RI=0,且接收到的停止位为1时,将接收到的前8位数据装入接收SBUF,并置RI=1,向CPU请求中断。编程收发数据-----推荐中断方式51单片机的串口是个全双工的串口,发送数据的同时,还可以接收数据。当串行发送完毕后,将在标志位TI置1,同样,当收到了数据后,也会在RI置1。无论RI或TI出现了1,只要串口中断处于开放状态,单片机都会进入串口中断处理程序。在中断程序中,要区分出来究竟是发送引起的中断,还是接收引起的中断,然后分别进行处理。串行口方式1初始化确定串行口工作方式(编程SCON寄存器)开串口中断设置T1的工作方式(编程TMOD寄存器);计算T1的初值,装载TH1、TL1;启动T1voidinit_uart(){SCON=0x50;//01010000,方式1,REN=1ES=1;EA=1;PCON=0x80;TMO...