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

下载本文档

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

文档简介

1、测控仪器课程设计报告书 题目:双机通信 院部名称: 学生姓名: 专业名称:测控技术与仪器 班 级: 时间:2011 年 5 月 23 日至 6 月 3 日 目 录 引言引言.2 第一章第一章 系统整体设计系统整体设计.3 1.1 系统设计思路.3 1.2 系统设计原理.3 1.2.1 串行通信.3 1.2.2 基本设计原理概述.5 1.3 系统设计结构图.5 第二章第二章 设计要求及任务设计要求及任务.6 第三章第三章 硬件电路设计及实现硬件电路设计及实现.6 3.1 硬件电路设计方案.6 3.2 硬件电路的实现.6 3.2.1 以 89c51 为核心的单片机最小系统.6 3.2.2 数码管显

2、示模块.7 3.2.3 主机校验指示模块.7 3.3 设计实物图.7 第四章第四章 软件系统实现软件系统实现.8 4.1 proteus仿真图 .8 4.2 软件实现方案分析.9 4.3 主程序.9 第五章第五章 总结总结.13 5.1 电路改进.13 5.2 心得体会.13 第六章第六章 附录附录.16 6.1 波特率的计算公式表.16 6.2 两位一体十脚数码管.16 引言引言 【摘要】串行通信是单片机的一个重要应用。本设计就是利用单片机来完成一个 系统,实现双片单片机串行通信。随着计算机技术的快速发展和广泛应用,从智能家 用电器到工业上的控制系统都采用了上位机与下位机基于串行通信的主从工

3、作方式, 这样就充分利用了微机分析处理能力强、速度快的特点及下位机(单片机)面向控制、 使用灵活方便的优势。由于 mcs51 系列单片机具有性能稳定、工作可靠、价格低廉等 可特点,因此其应用相当广泛。mcs51 单片机中有异步通信串行接口,能方便的构成 双机,多机通信接口。随着测量向自动化,智能化,网络化方向的发展。利用多机通 信构成的分布式系统逐渐普及。本实验就点对点的双机通信进行训练。学习串口的工 作方式,初始化编程,和单片机与单片机点对点通信的编程方法以及硬件电路的设计 方法。在此基础上可以进一步提高,实现多机通信以及单片机与 pc 机的通信。 【关键字】 双机通信 从机应答 单片机 第

4、一章第一章 系统整体设计系统整体设计 1.11.1 系统设计思路系统设计思路 该系统采用主从共两片 mcs51 单片机来实现上位机对下位机的控制,由于是近距 离的双机通信,我们采用单片机直接交叉连接的方式,上位机发送的数据由串行口 txd 端输出,直接由下位机的串行口数据接收端 rxd 接收。需要注意的是一定要保证 主从机相同的数据传输速率,即要求设置相同的波特率。电路分为数码管显示模块, 主机校验指示模块、以及单片机工作的基本复位、晶振模块。 1.21.2 系统设计原理系统设计原理 1.2.11.2.1 串行通信串行通信 串行数据通信要解决两个关键问题,一个是数据传送,另一个是数据转换。所谓

5、 数据传送就是指数据以什么形式进行传送。所谓数据转换就是指单片机在接收数据时, 如何把接收到的串行数据转化为并行数据,单片机在发送数据时,如何把并行数据转 换为串行数据进行发送。单片机的串行通信使用的是异步串行通信,所谓异步就是指 发送端和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单 位组成字符帧传送。字符帧由发送端一帧一帧地传送,接收端通过传输线一帧一帧地 接收。而对于两个单片机之间的串行通信,由于具有相同的数据格式及电平且是短距 离通信则不必要使用一些电平转化芯片(如 max232 等)便可直接实现串行通讯,需要 注意的是两单片机硬件要共地,软件中需要设置相同波特率。

6、 51 单片机有一个全双工的异步串行通信口(uart) ,串行结构如下: (1)数据缓冲器(sbuf) 接受或发送的数据都要先送到 sbuf 缓存。有两个,一个缓存,另一个接受,用同 一直接地址 99h,发送时用指令将数据送到 sbuf 即可启动发送;接收时用指令将 sbuf 中接收到的数据取出。 (2)串行控制寄存器(pcon) scon 用于串行通信方式的选择,收发控制及状态指示,各位含义如下: sm0sm1sm2rentb8rb8tiri sm0,sm1:串行接口工作方式选择位,这两位组合成 00,01,10,11 对应于工作方 式 0、1、2、3。串行接口工作方式特点见下表 1.2.1

7、. 表 1.2.1 串行口工作方式表 sm0sm1 工 作方式 功能波特率 000 8 位同步移位寄存器(用于 i/o 扩展) forc/12 011 10 位异步串行通信(uart)可变 (t1 溢出率 *2smod/32) 102 11 位异步串行通信(uart) forc/64 或 forc/32 113 11 位异步串行通信(uart)可变 (t1 溢出率 *2smod/32) sm2:多机通信控制位。 ren:接收允许控制位。软件置 1 允许接收;软件置 0 禁止接收。 tb8:方式 2 或 3 时,tb8 为要发送的第 9 位数据,根据需要由软件置 1 或清 0。 rb9:在方式

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

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

10、代码在 led 数码管上显示主机发送过来的数 据。同时从机给主机发送一个应答信号来表示已经接收到了主机发送过来的数据,在 主机接收应答并校验正确,以二极管显示,这样就完成了一个数据的通信过程,等待 按键按下,然后继续下一次数据的发送直到结束。 1.31.3 系统设计结构图系统设计结构图 等待按键 初始化 从机查询接收 输出完成? n 从机回送应答 y 主机发送 主机中断接收应答 y 结束 led 闪烁 图 1.3.1 双机通信系统结构图 开始 第二章第二章 设计要求及任务设计要求及任务 按键触发主机向从机发送数据。 从机以中断方式实时接收数据。 从机将接受到的数据显示并回送应答信息给主机。 主

11、机查询回送信息并校验以判断是否继续发送。 制作硬件电路,并调试,最后实现双机通信系统功能。 第三章第三章 硬件电路设计及实现硬件电路设计及实现 3.13.1 硬件电路设计方案硬件电路设计方案 从硬件电路设计的目标出发,我们尽量考虑到可靠、高效、简洁的原则,在整个 系统设计过程中严格按照规范进行,做好各部分模块设计最优。简洁是指在满足了可 靠、高效的要求后,为了尽量在器件允许的范围内使电路设计导线无交叉,应使电路 设计尽量简洁,尽量减少元器件使用数量,缩小电路板面积,使电路部分重量轻。在 焊接电路板时由于从机的数码管管脚排布无规律,使得导线不能直接的焊接,我们尽 量合理设计元件排列和电路走线,使

12、本系统达到设计要求。 3.23.2 硬件电路的实现硬件电路的实现 整个双机通信系统以 80c51 单片机为主控制器,由数码管为核心的数据显示模 块、主机校验指示模块、以及单片机最小系统构成。 3.2.13.2.1 以以 89c5189c51 为核心的单片机最小系统为核心的单片机最小系统 89c51 单片机的最小系统采用内部时钟方式:以 xtal1 和 xtal2 引脚外接晶振,构 成了自激振荡器并在单片机内部产生时钟脉冲信号,然后给晶振的每个脚分别外接一 个 30pf 的电容,以此使晶振快速起振并且达到约 12mhz 的稳定频率。而在单片机的 rst 脚接上按键开关以及适当的电阻、电容便构成按

13、键与断电两用的复位电路。具体 电路如图 3.2.1-1 所示: 图 3.2.1-1 单片机最小系统 3.2.23.2.2 数码管显示模块数码管显示模块 设计中,我们使用的是共阴的两位一体数码管并使用 p0 口控制数码管段选信号, p2 口选取两位为位选信号控制端。拿到数码观后,我们借助万用表进行测试,最终确 定为共阴型数码管,进一步测试便得出了该数码管对应的管脚分布图。 3.2.33.2.3 主机校验指示模块主机校验指示模块 主机接收从机应答信号进行校验,成功后点亮 p1 口的指示灯并保持一段时间, 然后进入等待状态,当按键按下便开始下一次数据传送。这种握手模式是单片机在串 行编程中使用的提高

14、数据传输准确性的有效方法。 3.33.3 设计实物图设计实物图 最终实物如下图 3.3-1 所示。 图 3.3-1 双机通信系统设计实物图 第四章第四章 软件系统实现软件系统实现 4.14.1 proteusproteus 仿真图仿真图 图 4.1.1 双机通信系统的 proteus 仿真图 4.24.2 软件实现方案分析软件实现方案分析 串行通信分为查询方式和中断方式。 编程中,对于从机我们拟定采用中断接收和查询发送方式,原因在于程序开销无 异。中断方式使得从机时刻处于准备接收状态,接收后判断范围,显示,再回送。而 对于主机,工作流程分析如下:得到按键允许,开始查询发送,查询中等待应答即中

15、断接收,中断后得到应答,使得 led 指示灯闪烁,如此往复。 在主机编程中,我们增加了置位取数标志的编程思路,即通过查询取数标志实现 在主函数回送应答并执行相应服务程序,如此一来,很好的避免了中断程序的冗长, 提高了程序实现的效率。 串行通信程序设计包括:1)初始化程序:对特殊功能寄存器 scon 和 peon 的设置, 来选择串行口的工作方式,设置通信波特率。由于设计采用了中断方式,则还要对中 断系统进行设置;2)发送数据的程序:51 单片机串口发送数据的条件是串行口已准 备好,此时标志位 ti 状态为“1”,则需将待发数据传送到发送数据缓冲期 sbuf,即 启动一次发送;3)接收数据的程序

16、:51 单片机串行口接收数据的条件是 scon 中的 ri 置“1”,表明串行口已收到一个字节数据,此时即可置位取数标志;4)通信控制程 序:用来控制发送和接收的进行。 4.34.3 主程序主程序 /从机 #include #define uint unsigned int #define uchar unsigned char uchar read_flag=0,x=0; sbit p20=p20; sbit p21=p21; uchar code code= 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90 ; /* 函

17、数功能:延时 ms */ void mdelay(uint delaytime) uchar i; for(;delaytime0;delaytime-) for(i=0;i=0 else p0 = 0 x00; /共阴 /主机 #include #define uint unsigned int #define uchar unsigned char sbit key = p17; sbit led = p16; uchar code code= 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f ; uchar code

18、table=0,1,2,3,4,5,6,7,8,9 ; /* 函数功能:延时 ms */ void mdelay(uint delaytime) uchar i; for(;delaytime0;delaytime-) for(i=0;i120;i+); /* 函数功能:发送一个字节数据 */ void senddata(uchar data) sbuf = data; while(ti = 0);ti = 0; /* 函数 */ void main() uchar data = 0,i=0; led = 0; p0 = 0 x00; scon = 0 x50;/ren=1,允许串行接收 tm

19、od = 0 x20; pcon = 0 x00; th1 = 0 xfd; tl1 = 0 xfd; ie = 0 x90; ti = 0; ri = 0; tr1 = 1; while(1) if(key=0) mdelay(500); while(key=1); if(i=16) data=tablei; i+; senddata(data); /* 函数功能:中断接收数据,指示灯闪烁 */ void s_int() interrupt 4 if(ri) ri = 0; led=1; mdelay(150); led=0; 第五章第五章 总结总结 5.15.1 电路改进电路改进 为了保证

20、数码管显示亮度,我们可以考虑增加必要的数码管驱动电路。假如不驱 动的话,单片机的单低电平仍然可以控制数码管的亮灭,但这时的数码的亮度会比较暗,并 且扫描频率很高,仍然有微小的闪动现象.因为单片机的输出的电流并身就很弱。 在实际情况允许时,增加必要的电平转化芯片来连接两个单片机,则能够适应更 远距离的数据通讯。 5.25.2 心得体会心得体会 本次实训增强了我查阅资料的方法技巧,更是大大的提高了我们自学的能力,同 时也增强了我们的动手能力。 白雪: 我很清楚这个实验的目的,表面上我们最终仅仅只是实现了设计要求的基本功能, 但我觉得,这次课程设计更加深刻的意义是从这样一个最基本,简单的实验中,从

21、这样一个完整的过程中我了解一种系统设计的流程,甚至说是一种思路,思维。 从最初拿到题目,分析设计要求以及实现的初步思路,然后去查阅资料进行更加 具体的设计这次实验无疑要求我们团队协作,互相配合并且整体上比较全面的统筹设 计。于是,初步规划后,我们开始将系统要实现功能的各个模块单独开来用 proteus 仿真,并最终将各个模块组合后整体调试。整个过程中我们在仿真上花费了较长时间, 因为知道仿真成功是实现真正硬件电路的基础,仿真是从根本上检验设计者的设计逻 辑以及思路的,很好的仿真才能使得设计系统在实现要求功能的基础上更加稳定、简 单,仿真中,我们仔细斟酌了电路布线的合理性。在焊接过程中,由于之前

22、的统筹布 局使得我们的电路布线简洁、明了,需要注意的是,由于焊接的粗心,有些焊点需要 一再解焊导致焊盘脱落,而且对于数码管管脚焊接方式也是值得进一步改进的,这便 是我今后所要更加注意的,争取全心全意的焊接电路,不要因为某些粗心的原因是电 路焊接发生错误,在那个下午坚持不懈的努力下我们终于完成了任务,可以说是大部 分的任务都是在那个下午一气呵成的。 总的来说,在实验中,我们尽量统筹并使得团队协作发挥更大作用,第一周的周 四分发元器件后,在第二天我们组便基本上完成了设计要求的基本功能,于是,我们 利用剩下的时间去调试硬件以及更加深入的总结题目的意义。最后,作为本次实验小 组的组长,我对大家辛勤劳作

23、默契配合的合作精神深感欣慰,希望以后得到好的继承 与发扬! 焦亚荣: 本次课程设计我们做的是双机通信,刚开始时感觉上挺难的,因为别的课题都像 是很直接的看到要做的东西,而我们的就不行。后来经过一番了解后我才发现其实很 简单的。 这次实验我们是四人一组,因为既要用到软件,又要用到硬件,所以我们就分工 合作。我和另一个同学负责硬件电路的仿真与焊接。在仿真过程中我们刚开始想用单 片机直接通信,后来老师说要使用串口去通信,我们就改成了使用 rs232 以及 max232 与单片机连接进行通信。当我们把一切都准备好后,开始焊电路时才发现就没有串口, 这样我们就无法使用串口通信了。后来老师告诉我们说用单片

24、机通信也行,因为距离 比较近,如果距离远的话就要使用串口进行通信。在焊接电路过程中,因为我们一直 很细心,所以就没有什么问题。当我们把电路焊好后就到了调试阶段,在调试时我们 把共阴极的编码用反了,所以出来了很搞乐的显示。 通过这次课程设计让我又一次觉得团结的力量是那么的强大,合作精神是我们必 不可少的。首先我们要一起讨论怎么去设计这个双机通信,讨论怎么去实现,大概都 要用什么实现;其次,我们在仿真硬件时,要告诉编程的同学我们是怎么做的,他们 好根据这个来实现软件编程;最后,在调试时,我们做硬件的同学要检查电路是否哪 里有问题,而软件的同学则要考虑是否是程序有问题,当我们确定是程序有问题时就 一

25、起想办法解决。这次课程设计对我的影响不仅是现在的,还会影响我的以后,在以 后的生活中我要发扬团结,互助,合作的精神。这样才能发挥大家所有人的潜力。大 家都听过筷子的故事吧,它告诉我们团结就是力量。好多项研究都是大家努力的结果, 你听过哪项研究是一个人做的,也许有,但那毕竟是少数,我们都不是天才,合作精 神对我们来说是必须的。再说,人步、不可能脱离人群而独活,所以呢团结,互助, 合作对我们都是必不可少的。 杨磊: 本次课程设计我们组主要研究的是双机通信实验,通过与组成员之间的合作,在 开始的前两天中,主要是通过查找资料,或是在图书馆里查看书籍来学习有关双机通 信实验的基本要求和实验所需要的器件,

26、以及各实验器件所实现怎样的功能。 经过了我们四个人的协商,由两个人开始编写代码,再由两个人开始设计实验电 路。在编写程序代码的时候,使我学习到了最大的是 mcs51 单片机的中断程序的编写。 在编写程序的时候由于之前只是在课堂上和书本上学习的有单片机中的中断源以及中 断向量,所以在实践的编写代码过程中会遇到很多不懂的问题,需要自己或者与同组 成员相互沟通。并且也学会了单片机的有关中断设计的思想,由于我们是制作双机通 信的课程设计,所以在实验中需要用到两片单片机作为主从机来控制信号的接受与发 送。还学习到了单片机在使用中断的时候,如果有中断申请的话,硬件电路会自动把 单片机里接受发送中断的 ti 和 ri 置 1.这样就表示单片机此时有外部中断的申请,必 须开中断来接受发送过来的信号。另外在两个单片机之间的通信的时候,我们还设计 了运用 max232 和 rs232 器件来连接两个单片机,之前不懂的有关 max232 和 rs232 具 体是怎样设计实现的,通过在网上查找资料,我学习到了 max232 和 rs232 是连用在一 起用作单片机和 pc 机之间的通信的,它主要是用于电平转换来连接不同驱动电平的单 片机和 pc 机。大概两天的时间,我们就把初步的软件程序和硬件电路设计好了。并且 在 proteus 的仿真器件中实现了硬件电路的连接,然后我们

温馨提示

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

评论

0/150

提交评论