《单片机之间多机通信演示电路设计.ppt》由会员分享,可在线阅读,更多相关《单片机之间多机通信演示电路设计.ppt(27页珍藏版)》请在三一办公上搜索。
1、单片机之间多机通信演示电路设计与研究,摘要:“单片机之间多机通信演示电路设计与研究”是基于单片机的串行通信演示电路系统设计。本设计研究的是三个AT89C51单片机通过串行通信技术实现相互之间的通信。在设计中,我们利用AT89C51单片机具有多机通信功能,构成主从分布式控制系统,由一台主机来控制两台从机,主机可以向从机发送命令来控制从机,同时也可以接收从机反馈回来的信息,主从机之间实现双工通信。系统设计中主要由自制键盘和指拨开关作为输入设备,选择较为简单的发光二极管和一位数码管作为输出设备,通过串行接口技术实现主从机之间数据的传输并用显示设备观察其通信结果。本次系统设计中主要用到单片机之间多机通
2、信技术以及单片机串行通信接口和中断系统,在下面设计中将进行具体的研究和讨论。关键词:多机通信 串行通信 中断控制 演示电路,整体方案,功能介绍,(1)当主机A,按键盘选择键1,主机与从机B通信,接下来按键数据会发送给从机B,由数码管DS1显示结果。同理,当主机A,按键盘选择键2,主机与从机C通信,接下来按键数据会发送给从机C,由数码管DS2显示结果。(2)当从机B,P1的指拨开关切换时,此数据会发送给主机A,并控制其低4位的4个LED的亮灭。同理,当从机C,P2的指拨开关切换时,此数据会发送给主机A,并控制其高4位的4个LED的亮。,单片机多机通信技术,1.多机通信接口设计 在实际应用系统中,
3、经常需要多个微处理机协调工作。由于AT89系列的单片机具有多机通信功能,因而可利用它构成各种分布式系统,其系统结构如图所示。,在图中,系统采用一台主机和多台从机,主机的RXD端与所有从机的TXD端连接,TXD端与所有从机的RXD端相连,主机发送的信息可被各从机接收,而各从机发送的信息只能由主机接收,各从机之间交换信息需通过主机。2.多机通信原理 多机通信中,要保证主机与从机间进行可靠的通信,通信接口必须具有从机身份的识别功能。串行口控制寄存器SCON中的SM2位就是为满足这一要求而设置的多机通信控制位。串行口以方式2 或方式3实现多机通信,发送和接收的每一帧信息都是11位,其中第9数据位是可编
4、程位,通过对SCON的TB8赋值 1或0,以区别发送的是地址帧还是数据帧,(规定地址帧的第9位为1,数据帧的第9位为0)。若从机的控制位SM2=1,则接收的是地址帧时,数据装入SBUF,并置RI=1,向CPU发出中断请求;若接收的是数据帧,则不产生中断标志,信息将抛弃。若SM2=0,则无论是地址帧还是数据帧都产生RI=1中断标志,数据装入SBUF。,单片机的串口工作原理,1 串口寄存器结构 AT89C51单片机串行口寄存器结构如图所示。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。AT89C5
5、1的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。,2 单片机串口工作寄存器 1.串行通信控制寄存器 SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:,下面我们对各控制位功能介绍如下:(1).SM0、SM1:串行口工作方式控制位。,(2).SM2:多机通信控制位。多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受
6、到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。工作于方式0时,SM2必须为0。(3).REN:允许接收位。REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。,(4).TB8:发送接收数据位8。在方式2和方式3中,TB8是要发送的即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。(5).RB8:接收数据位8。在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。(6).TI:发送中断标志位。可寻址标志位。方式0时,发送完第8位
7、数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。(7).RI:接收中断标志位。可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。,2.电源管理寄存器PCON PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。,3单片机串口工作方式 AT89C51单片机的串行口有4种工作方式,
8、通过SCON中的SM0、SM1位来设置。本系统研究的是单片机之间多机通信,所以主要介绍能实现多机通信的方式2和方式3。1.方式0同步移位寄存器方式 2.方式18位异步串行通信方式 3.方式29位异步通信接口 若SM0SM1=10B,则串行口工作于方式2.方式2为波特率固定的11位异步串行通信方式,传送波特率与SMOD有关。发送或接受一帧信息位11位,其中包括1位起始位0,8位数据位,1位可编程位(用于奇偶校验或多机通信)和1位停止位1。,1)方式2发送 发送时,根据通信协议由软件设置TB8,然后用指令将要发送的数据写入SBUF,启动发送器。写SBUF的指令,除了将8位数据送入SBUF外,同时还
9、将TB8装入发送移位寄存器的第9位,并启动发送控制器进行一次发送。一帧信息即从TXD发送出去,在送完一帧信息后,TI被自动置1,在发送下一帧信息之前,TI必须由中断服务程序或查询程序清0.2)方式2接收 当REN=1时,允许串行口接收数据。数据由RXD端输入,当接收器采样到RXD端的负跳变,并判断起始位有效后,开始接收一帧信息,每帧接收11位信息。方式2接收时,若同时满足以下两个条件:,(1)RI=0;(2)SM2=0或接收到的第9位数据位1。则接收数据有效,8位数据送入SBUF,第9位送入RB8,并置RI=1;若不满足上述两个条件,则信息丢弃。4.方式3波特率可变的9位异步通信接口 若SM0
10、SM1=11B,串行口工作于方式3,为波特率可变的11位异步串行通信方式。除了波特率以外,方式3和方式2完全相同。,多机通信电路设计,1硬件电路设计1时钟电路 如图4.2所示,AT89C51的时钟电路接脚为XTAL1(pin19)和XTAL2(pin18),XTAL1和XTAL2分别为反向放大器的输入和输出.于pin18、19之间接一个石英振荡器(常用频率在3.58MHZ、6MHZ、11.0592MHZ、12MHZ),并在两端各接一电容接地,电容以30p-40p较为适当。,2键盘电路 在本系统中,主机的数据和控制信号通过串口或键盘输入,为节省单片机I/O口,简化硬件线路,采用4*3矩阵式键盘1
11、。键盘共设有12个键,其中包括数字键和功能键。如图所示,由AT89C51的四条行线和三条列线构成。按键设置在行、列交点上,行。列线分别连接到按键开关两端,列线通过上拉电阻接到+5V上。平时无按键动作时,列线处于高电平状态,而当有键按下时,必须将行、列线信号配合起来作适当处理,才能确定闭合键的位置。键盘中有无键按下是由行线送入全扫描,用列线读列线状态来判断的。键盘中哪个键按下是逐行扫描低电平后,检查列输入状态来确定的。,3显示电路1.发光二极管显示电路 如图所示,为主AT89C51单片机基本显示电路,PORT2连接LED后,再接上470欧姆电阻作为限流装置,防治LED烧坏,最后接上VCC供应电源
12、,当,PORT2输出脚为0时,LED亮,例如控制PORT2.0=0时,第一只LED亮.AT89C51单晶片可控制这些脚位的电压,产生数位信号,经过放大电路,进而控制周边设备.注意当PORT0作为输出口时,必须接上拉电阻.,2.数码管显示电路 如图所示,为两个从机的显示电路,本系统采用的是一位共阳极数码管作为显示器,当ag为低电平时,发光二极管点亮。其a、b、c、d、e、f、g、dp八个引脚分别接单片机的,中间加一个330欧姆的限流电阻。19共9个数字,共阳极型LED的编码分别为:F9H、A4H、B0H、99H、92H、82H、F8H、80H和90H。,2软件程序设计1.键盘程序设计,2.主机程序设计流程 本系统选用12MHZ晶振,采用2400HZ波特率。程序流程如图4.9所示,其定时器串行口通信的初始化步骤如下:(1)确定串口工作于方式3,并允许接收对SCON寄存器送控制字C0H(SM0=1,SM1=1,REN=1);(2)确定定时器T1工作于方式2对TMOD寄存器送控制字20H(M1=1,M0=0)(3)装入定时器T1的初值TH1=F3H,TL1=F3H;(4)启动定时器1TCON中的TR1位置1;(5)串行口用中断方式收发数据,开CPU和源中断对IE寄存器送控制字90H(EA=1,ES=1)。,3.从机程序设计流程,PCB板布局布线图,