基于单片机的双机通信程序设计(共20页).doc
《基于单片机的双机通信程序设计(共20页).doc》由会员分享,可在线阅读,更多相关《基于单片机的双机通信程序设计(共20页).doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上前言单片机的通信接口是各台仪表之间或仪表与计算机之间进行信息交换和传输的联络装置。主要有五种类型,串行通信接口、并行通信接口、USB接口、现场总线接口以及以太网接口。 串行通讯是单片机的一个重要应用。本设计就是利用两块单片机来完成一个系统,实现单片机之间的串行通讯。 随着计算机的不断普及,在我们的周围可能会同时出现多台微型计算机,而且这些计算机的牌号,后型号不同,而且有的格式不兼容。于是利用单片机串行口实现不同计算机之间的相互通信,以达到信息或程序的共享是非常有用的。从智能家用电器到工业上的控制系统都采用了上位机与下位机基于串行通信的主从工作方式,这样就充分利用了微机
2、分析处理能力强、速度快的特点及下位机(单片机)面向控制、使用灵活方便的优势。利用多机通讯构成的分布式系统逐渐普及。本实验就点对点的双机通信进行训练。学习串口的工作方式,初始化编程,和单片机与单片机点对点通信的编程方法以及硬件电路的设计方法。专心-专注-专业1.总体设计方案1.1 串口通信的设计原理 复位电路 复位电路单片机 单片机 电源电路 电源电路 时钟电路 时钟电路 按键输入 1位LED数码管 显示电路图1 串口通信的设计原理框图 本次设计用于两片89S51,PC机的串行口采用的是标准的RS232接口,单片机的串行口电平是FTL电平,而TTL电平特性与RS232的电气特性不匹配,因此为了使
3、单片机的串行口能与RS232接口通信,必须将串行口的输入/输出电平进行转换。通常用MAX232芯片来完成电平转换。单片机的发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接收方接收后,在数码管上显示接收的信息,实现串口通讯数据的发送和接收,该系统可采用max232进行串口通讯数据传送。可用LED显示发送的相应据。1.2 数据传输方案比较与选折在串行通信中,数据是在两个站之间传送的。按照数据传送方向,串行通信可采用三种方案。方案一:单工制式单
4、工制式是指甲乙双方通信只能单向传送数据。发送器A 接收器B 图2 单工制式方案二:半双工制式半双工制式是指通信双方都具有发送器和接收器,双方既可发送也可接收,但接收和发送不能同时进行,即发送时就不能接收,接收时就不能发送。 B 端发送接收A端发送接收图3 半双工制式方案三:全双工制式全双工制式是指通信双方均设有发送器和接收器,并且将信道划分为发送信道和接收信道,两端数据允许同时收发,因此通信效率比前两种高。 B 端A端发送接收发送接收图4 全双工制式因此,本文选择方案三,全双工制式来实现数据传送。1.3 控制部分的电路由于单片机集成了运算器电路、控制电路、存储器、中断系统、定时器/计数器以及输
5、入/输出口电路等,所以用单片机设计控制电路省去了很多分立元器件。由于单片机是可编程芯片,并且它可以运用C语言编写,对于一些复杂的计算功能,可以调用C语言库函数,使编写程序变得非常简单。且经过上学期对单片机课程的学习,我们对单片机的应用比较熟悉,运用灵活,所以用单片机来实现本次课程设计。2.硬件系统设计本设计选用以89S51单片机为主控单元,显示部分采用8段LED数码管动态显示。2.1 时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。在89S51芯片内部有一个高增益反相放大器,
6、其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。此电路采用12MHz的石英晶体。时钟电路如下图:图5 时钟电路2.2 复位电路复位是单片机的初始化操作,进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,若使用频率为12MHz的晶振,则复位信号持续时间应超过4 s才能完成复位操作。复位操作有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部
7、复位电路的电容充电来实现的。按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。在本设计中采用了按键电平方式如下图:图6 按键电平的连接方式2.3 单片机串行通信功能51单片机的串行接口是一个全双工的接口,它可以作为通用异步接受和发送器用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下图所示:图7 单片机串行接口的结构(1) 数据缓冲器(SBUFF)接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。(2) 串行控制寄存器(SCON)SM0、SM1:串行
8、接口工作方式选择位,串行接口工作方式可有以下四种工作方式:表1 工作方式SM0SM1工作方式 功能波特率0008位同步移位寄存器(用于I/O扩展)fORC/1201110位异步串行通信(UART)可变(T1溢出率*2SMOD/32)10211位异步串行通信(UART)fORC/64或fORC/3211311位异步串行通信(UART)可变(T1溢出率*2SMOD/32)定时器TI溢出率=(fosc/12)*(1/(2k-初值)) 式中T1计数率= fORC/12,(2k-初值)为生溢产出所需机器周期数,K为定时器位数,与定时器设定工作方式有关:方式0时 K=13;方式1时 K=16;方式2时 K
9、=8。SM2:多机通信控制位。主要用于方式2,3.当SM2=1时可以利用收到的RB8来控制是否激活RI,当SM2=0时均可以将数据送入缓存器,并激活RI。REN:接收允许控制位。软件置1允许接收;软件置0禁止接收。TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。RB8:在方式2或3时,RB8位接收到的第9位数据,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。(3) 输
10、入移位寄存器接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。(4) 波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。(5) 电源寄存控制器(PCON)其最高位为SMOD即波特率倍增位,当SMOD=1时波特率提高一倍,复位时,SMOD=0。2.4 MAX232芯片电平转换芯片MAX232专用于进行将TTL电平转换为RS232电平的芯片,MAX232内部有泵电源,能将+5V电源电压在芯片内提高到RS232电平所需的+10V或者-10V电平。引脚介绍:第一部分是电荷泵电路。由1、2、3、4、5、
11、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。第三部分是供电。15脚GND、16脚VCC(+5v)。图8 MAX232芯片2.5整体连接原理图P1.7P1.0口分别接DP,G,F,E,D,C,B,A,其整体连接图如下:图9 整体连接原理图3.软件设计3.1 串行通信软件设计
12、软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB16中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。3.2 程序流程图(1) 发送端主动发送数据,检验和输出完成清除标志位主程序开始程序初始化主机发送AAH从机是否回答BBHN NY Y图10 发送端程序流程图 串行口工作于方式1,用定时器1产生9600bit/s的波特率,工作于方式2,即TMOD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 双机 通信 程序设计 20
限制150内