双机通信课程设计报告_第1页
双机通信课程设计报告_第2页
双机通信课程设计报告_第3页
双机通信课程设计报告_第4页
双机通信课程设计报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、测控仪器课程设计报告书题目:双机通信院部名称学生姓名测控技术与仪器专业名称班级2011年5月23日至6月3日双机通信系统设计目录引言2第一章系统整体设计3.1.1 系统设计思路3.1.2 系统设计原理 串行通信 基本设计原理概述5.1.3 系统设计结构图5.第二章设计要求及任务6.第三章硬件电路设计及实现6.3.1 硬件电路设计方案6.3.2 硬件电路的实现. 以89C51为核心的单为机最小系统63.2.2 数码管显示模块 主机校验指示模块7.3.3 设计实物图7.第四章软件系统实现8.4.1 ProteuSJ真图8.4.2 软件实现方案

2、分析9.4.3 主程序9.第五章总结135.1 电路改进1.35.2 心得体会1.3第六章附录1.66.1 波特率的计算公式表1.66.2 两位一体十脚数码管1.7引言【摘要】串行通信是单片机的一个重要应用。本设计就是利用单片机来完成一个系统,实现双片单片机串行通信。随着计算机技术的快速发展和广泛应用,从智能家用电器到工业上的控制系统都采用了上位机与下位机基于申行通信的主从工作方式,这样就充分利用了微机分析处理能力强、速度快的特点及下位机(单片机)面向控制、使用灵活方便的优势。由于MCS5保列单片机具有性能稳定、工作可靠、价格低廉等可特点,因此其应用相当广泛。MCS5件片机中有异步通信串行接口

3、,能方便的构成双机,多机通信接口。随着测量向自动化,智能化,网络化方向的发展。利用多机通信构成的分布式系统逐渐普及。本实验就点对点的双机通信进行训练。学习串口的工作方式,初始化编程,和单片机与单片机点对点通信的编程方法以及硬件电路的设计方法。在此基础上可以进一步提高,实现多机通信以及单片机与PC机的通信。【关键字】双机通信从机应答单片机17 / 18第一章系统整体设计1.1 系统设计思路该系统采用主从共两片MCS5惮片机来实现上位机对下位机的控制,由于是近距离的双机通信,我们采用单片机直接交叉连接的方式,上位机发送的数据由用行口TXD端输出,直接由下位机的用行口数据接收端RXD8收。需要注意的

4、是一定要保证主从机相同的数据传输速率,即要求设置相同的波特率。电路分为数码管显示模块,主机校验指示模块、以及单片机工作的基本复位、晶振模块。1.2 系统设计原理1.2.1 串行通信用行数据通信要解决两个关键问题, 据传送就是指数据以什么形式进行传送。 何把接收到的用行数据转化为并行数据,一个是数据传送,另一个是数据转换。所谓数所谓数据转换就是指单片机在接收数据时,如单片机在发送数据时,如何把并行数据转换为申行数据进行发送。单片机的串行通信使用的是异步串行通信,所谓异步就是指发送端和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单位组成字符帧传送。字符帧由发送端一帧一帧地传送,

5、接收端通过传输线一帧一帧地接收。而对于两个单片机之间的串行通信,由于具有相同的数据格式及电平且是短距离通信则不必要使用一些电平转化芯片(如max232等)便可直接实现串行通讯,需要注意的是两单片机硬件要共地,软件中需要设置相同波特率。51单片机有一个全双工的异步串行通信口(UART,串行结构如下:(1)数据缓冲器(SBUF接受或发送的数据都要先送到SBU限存。有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。(2)串行控制寄存器(PCONSCONB于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM

6、0SM1SM2RENTB8RB8TIRISM0,SM1再行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。用行接口工作方式特点见下表1.2.1.表1.2.1串行口工作方式表SM0SM1工功能波特率0008位同步移位寄存器(用于I/O扩展)fORC/1201110位异步串行通信(UART可变(T1溢出率*2SMOD/3210211位异步串行通信(UARTfORC/64或fORC/3211311位异步串行通信(UART可变(T1溢出率*2SMOD/32SM2多机通信控制位REN接收允许控制位。软件置1允许接收;软件置0禁止接收。TB8:方式2或3时,TB8为要发

7、送的第9位数据,根据需要由软件置1或清0。RB9在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。(3)输入移位寄存器接收的数据先用行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。(4)波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式

8、。波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。(5)电源控制寄存器PCON其最高位为SMOD(6)波特率计算当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢出所需机器周期)。由于是定时方式,T1计数率=fORC/12。产生溢出所需机器周期数=模M-计数初值X。1.2.2 基本设计原理概述双机通信系统通过主从单片机的串行口来实现数据的收发。主单片机通过开关电路来启动发送程序,当开关按下时向从机发送一个数据,从机通过接收中断来接收主机发送过来的数据,并通过编写好的数据代码在LED数码管上显示主机发送过来的数据。同时从机给主机发送一个应答

9、信号来表示已经接收到了主机发送过来的数据,在主机接收应答并校验正确,以二极管显示,这样就完成了一个数据的通信过程,等待按键按下,然后继续下一次数据的发送直到结束。1.3 系统设计结构图图1.3.1双机通信系统结构图第二章设计衰求及任务按键触发主机向从机发送数据。从机以中断方式实时接收数据。从机将接受到的数据显示并回送应答信息给主机。主机查询回送信息并校验以判断是否继续发送。制作硬件电路,并调试,最后实现双机通信系统功能。第三章硬件电路设计及实现3.1 硬件电路设计方案从硬件电路设计的目标出发,我们尽量考虑到可靠、高效、简洁的原则,在整个系统设计过程中严格按照规范进行,做好各部分模块设计最优。简

10、洁是指在满足了可靠、高效的要求后,为了尽量在器件允许的范围内使电路设计导线无交叉,应使电路设计尽量简洁,尽量减少元器件使用数量,缩小电路板面积,使电路部分重量轻。在焊接电路板时由于从机的数码管管脚排布无规律,使得导线不能直接的焊接,我们尽量合理设计元件排列和电路走线,使本系统达到设计要求。3.2 硬件电路的实现整个双机通信系统以80C51单片机为主控制器,由数码管为核心的数据显示模块、主机校验指示模块、以及单片机最小系统构成。3.2.1 以89C51为核心的单片机最小系统89C51单片机的最小系统采用内部时钟方式:以XTAL1和XTAL2弓唧外接晶振,构成了自激振荡器并在单片机内部产生时钟脉冲

11、信号,然后给晶振的每个脚分别外接一个30PF的电容,以此使晶振快速起振并且达到约12MHz勺稳定频率。而在单片机的RST脚接上按键开关以及适当的电阻、电容便构成按键与断电两用的复位电路。具体电路如图3.2.1-1所示:图3.2.1-1单片机最小系统3.2.2 数码管显示模块设计中,我们使用的是共阴的两位一体数码管并使用P0口控制数码管段选信号,P2口选取两位为位选信号控制端。拿到数码观后,我们借助万用表进行测试,最终确定为共阴型数码管,进一步测试便得出了该数码管对应的管脚分布图。3.2.3 主机校验指示模块主机接收从机应答信号进行校验,成功后点亮P1口的指示灯并保持一段时间,然后进入等待状态,

12、当按键按下便开始下一次数据传送。这种握手模式是单片机在申行编程中使用的提高数据传输准确性的有效方法。3.3 设计实物图最终实物如下图3.3-1所示图3.3-1双机通信系统设计实物图第四章软件系统实现4.1 Proteus 仿真图arju四口 JUgl项工工 ,丁石三三*Vii)a FI*卯fihadifli品。对 用JQ sum EEFmJ 加 U.垃皿ETSunilRLE,KJnJFhD群ps.inxePJPSL3ITTt«J门"ikPJE-I|pirairnr*«.!ra-HTzm-p'izsvrjThj"pf-tfftPA-4TF44U4H

13、T4FTI4HTTT图4.1.1双机通信系统的proteus仿真图4.2软件实现方案分析串行通信分为查询方式和中断方式。编程中,对于从机我们拟定采用中断接收和查询发送方式,原因在于程序开销无异。中断方式使得从机时刻处于准备接收状态,接收后判断范围,显示,再回送。而对于主机,工作流程分析如下:得到按键允许,开始查询发送,查询中等待应答即中断接收,中断后得到应答,使得LED指示灯闪烁,如此往复。在主机编程中,我们增加了置位取数标志的编程思路,即通过查询取数标志实现在主函数回送应答并执行相应服务程序,如此一来,很好的避免了中断程序的冗长,提高了程序实现的效率。串行通信程序设计包括:1)初始化程序:对

14、特殊功能寄存器SCO恃口PEON勺设置,来选择用行口的工作方式,设置通信波特率。由于设计采用了中断方式,则还要对中断系统进行设置;2)发送数据的程序:51单片机串口发送数据的条件是用行口已准备好,此时标志位TI状态为“1”,则需将待发数据传送到发送数据缓冲期SBUF即启动一次发送;3)接收数据的程序:51单片机用行口接收数据的条件是SCO即的RI置“1”,表明用行口已收到一个字节数据,此时即可置位取数标志;4)通信控制程序:用来控制发送和接收的进行。4.3主程序/从机#include<reg52.h>#defineuintunsignedint#defineucharunsigne

15、dcharucharread_flag=0,x=0;sbitP20=P2A0;sbitP21=P2A1;ucharcodeCODE"0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/*函数功能:延时ms*/voidmDelay(uintDelayTime)uchari;for(;DelayTime>0;DelayTime-)for(i=0;i<120;i+);/*函数功能:发送一个字节数据*/voidSendData(ucharData)SBUF=Data;while(TI=0);TI=0;/*函数功能:显示接收到的数据

16、*/voidDisplay(ucharx)P21=0;P20=1;P0=CODEx;mDelay(20);/*主函数*/voidmain()P0=0X00;P2=0XFF;SCON=0x50;/SMOSM1SM2RENTB8RB8TIR方式1,允许串行接收TMOD=0x20;/方式2,自动重装PCON=0x00;TH1=0xfd;/0xfd=253波特率=32*12M/12/(256-253)TL1=0xfd;TI=0;RI=0;TR1=1;IE=0x90;while(1)if(read_flag).read_flag=0;mDelay(200);SendData(x);/*函数功能:中断接收

17、,置位取数标志*/voidS_INT()interrupt4.if(RI)RI=0;read_flag=1;/x=SBUF;if(x>=0&&x<=99)Display(x);else/主机置位取数标志共阴#include <reg52.h>#define uint unsigned int#define uchar unsigned charsbit Key = P1A7;sbit Led = PW6;uchar code CODE" 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;ucha

18、r code table=0,1,2,3,4,5,6,7,8,9;/* 函数功能:延时ms*/void mDelay(uint DelayTime)uchar i;for(;DelayTime>0;DelayTime-) for(i=0;i<120;i+);/* 函数功能:发送一个字节数据*/void SendData(uchar Data) SBUF = Data;while(TI = 0);TI = 0;P0=0x00;/*函数*/*voidmain()ucharData=0,i=0;Led=0;P0=0x00;SCON=0x50;/REN=1,允许串行接收TMOD=0x20;

19、PCON=0x00;TH1=0xfd;TL1=0xfd;IE=0x90;TI=0;RI=0;TR1=1;while(1)if(Key=0)mDelay(500);while(Key=1);if(i<=16)Data=tablei;i+;SendData(Data);/*函数功能:中断接收数据,指示灯闪烁*/voidS_INT()interrupt4.if(RI)RI=0;Led=1;mDelay(150);Led=0;第五章总结5.1 电路改进为了保证数码管显示亮度,我们可以考虑增加必要的数码管驱动电路。假如不驱动的话,单片机的单低电平仍然可以控制数码管的亮灭,但这时的数码的亮度会比较暗

20、,并且扫描频率很高,仍然有微小的闪动现象.因为单片机的输出的电流并身就很弱。在实际情况允许时,增加必要的电平转化芯片来连接两个单片机,则能够适应更远距离的数据通讯。5.2 心得体会本次实训增强了我查阅资料的方法技巧,更是大大的提高了我们自学的能力,同时也增强了我们的动手能力。白雪:我很清楚这个实验的目的,表面上我们最终仅仅只是实现了设计要求的基本功能,但我觉得,这次课程设计更加深刻白意义是一一从这样一个最基本,简单的实验中,从这样一个完整的过程中我了解一种系统设计的流程,甚至说是一种思路,思维。从最初拿到题目,分析设计要求以及实现的初步思路,然后去查阅资料进行更加具体的设计这次实验无疑要求我们

21、团队协作,互相配合并且整体上比较全面的统筹设计。于是,初步规划后,我们开始将系统要实现功能的各个模块单独开来用PROTEUS仿真,并最终将各个模块组合后整体调试。整个过程中我们在仿真上花费了较长时间,因为知道仿真成功是实现真正硬件电路的基础,仿真是从根本上检验设计者的设计逻辑以及思路的,很好的仿真才能使得设计系统在实现要求功能的基础上更加稳定、简单,仿真中,我们仔细斟酌了电路布线的合理性。在焊接过程中,由于之前的统筹布局使得我们的电路布线简洁、明了,需要注意的是,由于焊接的粗心,有些焊点需要一再解焊导致焊盘脱落,而且对于数码管管脚焊接方式也是值得进一步改进的,这便是我今后所要更加注意的,争取全

22、心全意的焊接电路,不要因为某些粗心的原因是电路焊接发生错误,在那个下午坚持不懈的努力下我们终于完成了任务,可以说是大部分的任务都是在那个下午一气呵成的。总的来说,在实验中,我们尽量统筹并使得团队协作发挥更大作用,第一周的周四分发元器件后,在第二天我们组便基本上完成了设计要求的基本功能,于是,我们利用剩下的时间去调试硬件以及更加深入的总结题目的意义。最后,作为本次实验小组的组长,我对大家辛勤劳作默契配合的合作精神深感欣慰,希望以后得到好的继承与发扬!焦亚荣:本次课程设计我们做的是双机通信,刚开始时感觉上挺难的,因为别的课题都像是很直接的看到要做的东西,而我们的就不行。后来经过一番了解后我才发现其

23、实很简单的。这次实验我们是四人一组,因为既要用到软件,又要用到硬件,所以我们就分工合作。我和另一个同学负责硬件电路的仿真与焊接。在仿真过程中我们刚开始想用单片机直接通信,后来老师说要使用串口去通信,我们就改成了使用RS232以及MAX232tt单片机连接进行通信。当我们把一切都准备好后,开始焊电路时才发现就没有用口,这样我们就无法使用串口通信了。后来老师告诉我们说用单片机通信也行,因为距离比较近,如果距离远的话就要使用串口进行通信。在焊接电路过程中,因为我们一直很细心,所以就没有什么问题。当我们把电路焊好后就到了调试阶段,在调试时我们把共阴极的编码用反了,所以出来了很搞乐的显示。通过这次课程设

24、计让我又一次觉得团结的力量是那么的强大,合作精神是我们必不可少的。首先我们要一起讨论怎么去设计这个双机通信,讨论怎么去实现,大概都要用什么实现;其次,我们在仿真硬件时,要告诉编程的同学我们是怎么做的,他们好根据这个来实现软件编程;最后,在调试时,我们做硬件的同学要检查电路是否哪里有问题,而软件的同学则要考虑是否是程序有问题,当我们确定是程序有问题时就一起想办法解决。这次课程设计对我的影响不仅是现在的,还会影响我的以后,在以后的生活中我要发扬团结,互助,合作的精神。这样才能发挥大家所有人的潜力。大家都听过筷子的故事吧,它告诉我们团结就是力量。好多项研究都是大家努力的结果,你听过哪项研究是一个人做

25、的,也许有,但那毕竟是少数,我们都不是天才,合作精神对我们来说是必须的。再说,人步、不可能脱离人群而独活,所以呢团结,互助,合作对我们都是必不可少的。杨磊:本次课程设计我们组主要研究的是双机通信实验,通过与组成员之间的合作,在开始的前两天中,主要是通过查找资料,或是在图书馆里查看书籍来学习有关双机通信实验的基本要求和实验所需要的器件,以及各实验器件所实现怎样的功能。经过了我们四个人的协商,由两个人开始编写代码,再由两个人开始设计实验电路。在编写程序代码的时候,使我学习到了最大的是MCS5印片机的中断程序的编写。在编写程序的时候由于之前只是在课堂上和书本上学习的有单片机中的中断源以及中断向量,所

26、以在实践的编写代码过程中会遇到很多不懂的问题,需要自己或者与同组成员相互沟通。并且也学会了单片机的有关中断设计的思想,由于我们是制作双机通信的课程设计,所以在实验中需要用到两片单片机作为主从机来控制信号的接受与发送。还学习到了单片机在使用中断的时候,如果有中断申请的话,硬件电路会自动把单片机里接受发送中断的TI和RI置1.这样就表示单片机此时有外部中断的申请,必须开中断来接受发送过来的信号。另外在两个单片机之间的通信的时候,我们还设计了运用MAX232和RS232器件来连接两个单片机,之前不懂的有关MAX23牙口RS232具体是怎样设计实现的,通过在网上查找资料,我学习到了MAX232F口RS

27、232是连用在一起用作单片机和PC机之间的通信的,它主要是用于电平转换来连接不同驱动电平的单片机和PC机。大概两天的时间,我们就把初步的软件程序和硬件电路设计好了。并且在PROTEU的仿真器件中实现了硬件电路的连接,然后我们把PROTEU的仿真硬件和51的程序下载到单片机中通过调节实验硬件和共同修改软件程序最终实现了器件的仿真。接下来就是焊接电路的工作了,由另外的组员来实现大部分的硬件电路的焊接,从中我也学习帮忙,尽快完成我们的全部的设计内容。在完成了所有的焊接的时候,把程序下载到单片机中后,发现了数码管显示的和预期设置的有些不同,在经过简单的修改之后,我们成功的完成了我们的实验作品。在此次课程设计中我学习到了好多新的知识以及通过了团队小组的合作受益匪浅。任晓亮:经过两周的课程设计,我们小组终于完成了设计任务。本次实验的课程题目是双机通信,刚开始接触这个课程题目的时候,感觉有点迷茫和困惑。通过对实验要求的分析以及网上搜索资料,才对双击通信的原理有了初步认识。在查阅资料及相互讨论之间,了解了单片机串行通信的基本知识,当然在这个过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论