电子工程毕业设计双机之间的串行通信设计Word文档格式.docx

上传人:b****6 文档编号:21499146 上传时间:2023-01-30 格式:DOCX 页数:9 大小:243.29KB
下载 相关 举报
电子工程毕业设计双机之间的串行通信设计Word文档格式.docx_第1页
第1页 / 共9页
电子工程毕业设计双机之间的串行通信设计Word文档格式.docx_第2页
第2页 / 共9页
电子工程毕业设计双机之间的串行通信设计Word文档格式.docx_第3页
第3页 / 共9页
电子工程毕业设计双机之间的串行通信设计Word文档格式.docx_第4页
第4页 / 共9页
电子工程毕业设计双机之间的串行通信设计Word文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

电子工程毕业设计双机之间的串行通信设计Word文档格式.docx

《电子工程毕业设计双机之间的串行通信设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《电子工程毕业设计双机之间的串行通信设计Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

电子工程毕业设计双机之间的串行通信设计Word文档格式.docx

数据传送的流程是:

单片机A将数据送到端口后,通过STB信号中断单片机B。

单片机B进入中断并从端口读取数据,读完后,在LED灯上显示。

原理图如图1-1。

图1-1

2、方案二

本次设计,对于两片89C51,采用RS232进行双机通信。

发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。

接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。

接受方接收后,在数码管上显示接收的信息。

软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。

主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。

从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;

否则发送FFH给主机,重新接受。

从机收到16个正确数据后送到一个数码管显示。

如图1-2

图1-2

3方案论证

方案一中的传输的稳定性明显不如的方案二中采用串行方式。

由于有多根传输线并行传输数据,因此传送速度快、通信速率高。

一般而言,串行通信的传送速度明显将低于并行通信。

但当多位数据远程传输时,传输线路的开销就成为突出问题。

由于串行通信只需一对传输线,并且可以利用电话线等有通信信道作为传输介质,因而可以大大降低传输线路的成本。

所以此报告结合实际,采用串行通信方式,即方案二。

很容易看出,采用方案二,电路比较的简单稳定,将接受到的数据显示出来。

三、总体设计

最终设计电路如下图3所示,发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。

接受方接收后,通过P1口在数码管上显示接收的信息。

四、单元电路(或软件模块)设计

1.单片机串行通信功能

图1-4AT89C51

51单片机的串行接口是一个全双工的接口,它可以作为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。

六、电路整体测试

在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;

RI);

RI=0;

}

while((SBUF^0xbb)!

=0);

do

{sum=0;

for(i=0;

i<

=15;

i++)

{SBUF=TAB[i];

sum+=TAB[i];

while(!

TI=0;

}

SBUF=sum;

RI=0;

while(SBUF!

2、从机接收程序

#include<

#defineucharunsignedchar

#defineuintunsignedint

voiddelay(int);

voidreceive(void);

voidinit(void);

voidmain()

{init();

receive();

voiddelay(intx)

{inti,j;

x;

for(j=1;

j<

=150;

j++);

voidreceive(void)

{ucharTABS[16];

{while(!

RI=0;

while((SBUF^0xaa)!

SBUF=0xbb;

TI=0;

while

(1)

TABS[i]=SBUF;

sum+=TABS[i];

if((SBUF^sum)==0)

{SBUF=0x00;

break;

else

{SBUF=0xff;

TI=0;

}

while

(1)

{for(i=0;

{P1=TABS[i];

delay(500);

}

3、系统电路图

九、参考文献

[1]赵茂泰.智能仪器原理及应用.北京:

电子工业出版社,2004.7

[2]张毅刚,刘杰.MCS—51单片机原理及应用.哈尔滨:

哈尔滨工业大学出版社,2004.6

[3]何立民.单片机应用技术选编.北京:

北京航天航空大学出版,2002.5

[4]张军,梅丽凤.单片机原理接口技术.北京交通大学出版社,2006.5

[5]张婧武,周灵彬.单片机系统的PROTEUS设计与仿真.北京:

电工出版社,2007.4

[6]周佩玲,彭虎.微机原理与接口技术.北京:

电子工业出版社,2005.4

[7]李群芳,张士军.单片微型计算机与接口技术.北京:

电子工业出版社,2008.5

..

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1