- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于串口的多机通信(聊天软件)
单片机课程设计报告
基于串口的多机通信(聊天软件)
学 院 信息工程学院
专 业 信息工程
年级班别 07电子信息1班
学 号
指导教师
2010年 6 月
设计要求:
由于实验箱没有全键盘,不能输入任意字符,因此用PC机的键盘代替。通信框图如下:
单片机1往其他单片机发送数据时,必须指定发送地址。单片机2接收数据,必须先检查地址是和自己的地址相符,地址相符才能接收数据,并把收到数据在PC机2上显示
设计思路
本设计的思路来自计算机网络的TCP协义的三次握手(这里用到其中的两次握手):当PC机1通过单片机1发出连接请求时(比如发送单片机2的地址),多个单片机会通过中断的方式检查接收到的地址是否与自己的地址相同,如果相同,则通信建立并接收后续发送来的数据;但单片机2不能向单片机1发送,只有当单片机2向单片机1发送请求,才能单片机1才能接收到单片机2的数据;断开连接的方式与请求连接的操作一样,在单片机间的通信协议中规定一个数据结束标志,遇到结束标志断开连接;所有数据都在PC机的串口调试软件显示(用VC编程实现)。
设计步骤
分析本设计的要求,查找可以实现预设功能的主要硬件知识,包括异步串行通信编程与中断处理等知识,并且列出程序设计的主要框架以及实现地址识别等通信功能的协议依据。
根据TCP协议以及程序框架,编写相关程序,通过不断的修改与调试,搭建相应的硬件平台,实现主要通信功能。
运用VC++6.0编程实现串口调试软件的开发,利用vc串口通讯控件MSCommCodeWarrior IDE环境下编写基于MC9S12XEP100硬件程序
用VC++6.0制作相应的聊天界面及串口调试软件
把单片机的程序烧进硬件之后,运行程序,然后打开串口调试聊天软件,这里必须输入串口的参数和对方的地址(好友妮称),点击开始连接,连接成功后本机就可以向目标单片机发送数据信息了,若要收到对方发来的信息,对方须向本机建立连接。
设计过程遇到的问题
如何通过地址识别实现多机通信?如何解决区分命令信息与数据信息,通信建立及连续接收后续数据与通信结束等相关标志问题?
如何利用VC编程制作串口调试软件,主要是vc串口通讯控件MSComm串口通讯控件MSComm__interrupt 21 void SCI1ReInt(void)
{
INT8U i;
INT8U SerialBuff[1];
extern MT; //存放接收数据的数组
DisableInterrupts; //关总中断
i = SCI1ReN(1,SerialBuff);
//等待接收1个数据
if(SerialBuff[0]==#){
MT=1; EnableInterrupts; return;
}
if(SerialBuff[0]==@) MT=0;
if((i==0)MT) SCI0SendN(1,SerialBuff); //发送接到的数据
EnableInterrupts; //开总中断
}
通过中断的方式,中断主程序,进入中断向量,在中断向量里面进行地址识别。程序设置了本机地址为“#”(可以为其他),如果接收到“#”,地址识别成功,把MT(通信是否建立标志)置1;根据MT标志决定是否接收后续数据信息,为数据包设置一个结束标志符“@”(可以为其它)以此决定断开通信连接与否,问题解决的关键在于通信协议的建立。
在这其还遇到一个编程的小小问题,就是MT是一个全局变量,我在主函数外面定义,但是想在中断向量里面用到这个变量,可是报出了错误,经过查资料,原来是要用extern关键字来引进这个参数!
2,问题3与4的解决思路与方法:在中进行串口通讯最简单的方法在对话框中使用MSCOMM控件,MSComm通信控件提供了一系列标准通信命令的接口 心得体会:
做单片机课程设计很多的体会和感想。我不仅加深了对单片机理论的理解,
II
1
答辩记录
开始时间:
结束时间
考题:
答辩结果:
主要特点或功能
1,主要实现多PC机基于串口的数据通信
功能类似于QQ聊天软件,具有多机地址识别功能以及双向通信
2,用VC++6.0制作了串口调试软件,基于vc串口通讯控件MSComm编程(特点是可以回显本地发送的数据)
串口
串口
串口
单片机2
PC机2
单片机1
PC机1
文档评论(0)