电子工程毕业设计双机之间的串行通信设计_第1页
电子工程毕业设计双机之间的串行通信设计_第2页
电子工程毕业设计双机之间的串行通信设计_第3页
电子工程毕业设计双机之间的串行通信设计_第4页
电子工程毕业设计双机之间的串行通信设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

电子工程毕业设计双机之间的串行通信设计目录一、引言 2二、方案设计 21.方案一 22.方案二 3三、总体设计 41.单片机串行口通信 52.MAX232芯片 5五、软件设计 5六、整体电路设计 6七、结论 6八、附录 71、发送程序 72、接收程序 83、整体电路图 9九、参考文献 10双机之间的串行通信设计引言由于MCS51系列单片机具有性能稳定、工作可靠、价格低廉等特点,因此其应用相当广泛。一个MCS51系列的单片机(如Atmel89c**)内部包含有RAM、FLASHROM、两个或者三个16位的定时器/计数器、一个通用异步串行通信控制器(UART)等多种资源。在这种情况下,一个系统中就使用了两个或两个以上的单片机,而单片机之间就要通过互连来进行数据通信。MCS51系列的单片机(以下简称单片机)都带有串口,利用串口进行互连通信极为方便,其各种连接方式在许多书籍和资料上都有介绍,在此不再重述。但如果系统要求扩充的资源是对外连接的串口,或对相互之间的数据传送有一定的速度要求,则单片机的串口就不能用作系统内两单片机的通信接口了。所幸的是,单片机的并行端口也能相互连接来进行数据通信。根据单片机端口内部结构的特点,这些端口的端口线可以直接相连,从而使两单片机之间并行通信接口的实现不用另外的硬件电路设备。方案设计1方案一本方案采用单片机AT89C51作为软件程序的载体,并采用并行通信方式。并行通信是指数据各位同时并行传送的通信方式。如果只需要一个单片机向另一个单片机传送数据,则可以采用单向并行通信接口方式,这种方式较为简单。单片机A为数据发送方,单片机B为数据接收方,8位端口可以是P0−3的任何一个。数据传送的流程是:单片机A将数据送到端口后,通过STB信号中断单片机B。单片机B进入中断并从端口读取数据,读完后,在LED灯上显示。原理图如图1-1。图1-12、方案二本次设计,对于两片89C51,采用RS232进行双机通信。发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,在数码管上显示接收的信息。软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。如图1-2图1-23方案论证方案一中的传输的稳定性明显不如的方案二中采用串行方式。由于有多根传输线并行传输数据,因此传送速度快、通信速率高。一般而言,串行通信的传送速度明显将低于并行通信。但当多位数据远程传输时,传输线路的开销就成为突出问题。由于串行通信只需一对传输线,并且可以利用电话线等有通信信道作为传输介质,因而可以大大降低传输线路的成本。所以此报告结合实际,采用串行通信方式,即方案二。很容易看出,采用方案二,电路比较的简单稳定,将接受到的数据显示出来。总体设计最终设计电路如下图3所示,发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,通过P1口在数码管上显示接收的信息。单元电路(或软件模块)设计1.单片机串行通信功能图1-4AT89C5151单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。数据缓冲器(SBUF)接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。2.MAX232芯片用8051串行接口通信,如果两台8051单片机之间的距离很近(不超过1.5m),可以采用直接将两台8051单片机的串行接口直接相连,利用其自身的TTL电平(0-5V)直接传输数据信息。如果传输距离较远(超过1.5m),由于传输线的阻抗与分布电容,会产生电平损耗和波形畸变,以至于检测不出数据或数据出错。此时可利用RS232标准总线接口,将单片机输出的TTL电平转换为RS232标准电平(逻辑1为-15—-5V;逻辑0为+5-—+15V)。用RS232可将传输距离提高到15m,如果想远距离传输,可以采用RS422或者RS485。 电平转换芯片MAX232是美信公司(MAXIM)生产,专用于进行将TTL电平转换为RS232电平的芯片,MAX232内部有泵电源,能将+5V电源电压在芯片内提高到RS232电平所需的+10V或者-10V电平。图1-5电平转换芯片MAX23五、软件设计通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。六、电路整体测试在protues上进行仿真实验。首先使用KeilC将编写完成的程序编译生成HEX文件,将HEX文件烧录到两片单片机中,进行仿真实验,结果如下图所示,可以看到,接收端已将接受到的数据完整的显示了出来。结论经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。虽然在这段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。经过课程设计,在查阅资料的过程中,学习了基于单片机的C语言程序设计,了解了单片机串行通信的基本知识,对于以后的学习和工作都有很大的益处。在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问题的过程中,对于通信协议的实现有了深刻的认识。通过这次课程设计,锻炼了自己独立思考的能力。附录1、主机发送程序#include<reg51.h>#defineucharunsignedchar voidinit();voidsend();ucharTAB[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchari,sum;intj;main(){init();send(); }voidinit(void){EA=1;ES=1;TMOD=0x20;TH1=0xfd;TL1=0xfd;PCON=0x00;SCON=0x50;TR1=1; }voidsend(void){do {SBUF=0xaa; while(!TI); TI=0; while(!RI); RI=0; }while((SBUF^0xbb)!=0); do {sum=0; for(i=0;i<=15;i++) {SBUF=TAB[i]; sum+=TAB[i]; while(!TI); TI=0; } SBUF=sum; while(!TI); TI=0; while(!RI); RI=0; } while(SBUF!=0); }2、从机接收程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintvoiddelay(int);voidreceive(void);voidinit(void);uchari,sum;intj;ucharTAB[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voidmain(){init();receive();}voidinit(void){EA=1;ES=1;TMOD=0x20;TH1=0xfd;TL1=0xfd;PCON=0x00;SCON=0x50;TR1=1; }voiddelay(intx){ inti,j; for(i=0;i<x;i++) for(j=1;j<=150;j++); }voidreceive(void){ucharTABS[16];do{while(!RI);RI=0;}while((SBUF^0xaa)!=0); SBUF=0xbb; while(!TI);TI=0; while(1) {sum=0; for(i=0;i<=15;i++) {while(!RI);RI=0; TABS[i]=SBUF; sum+=TABS[i]; } while(!RI);RI=0; if((SBUF^sum)==0) {SBUF=0x00; while(!TI); TI=0; break; } else {SBUF=0xff; while(!TI); TI=0; } } while(1) {for(i=0;i<=15;i++) {P1=TABS[i]; delay(500); } } }系统电路图九、参考文献[1]赵茂泰.智能仪器原理及应用.北京:电子工业出版社,200

温馨提示

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

评论

0/150

提交评论