电子工程毕业设计双机之间的串行通信设计Word文档格式.docx
《电子工程毕业设计双机之间的串行通信设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《电子工程毕业设计双机之间的串行通信设计Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
数据传送的流程是:
单片机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
..