双机通信.docx
- 文档编号:10511928
- 上传时间:2023-02-17
- 格式:DOCX
- 页数:11
- 大小:192.17KB
双机通信.docx
《双机通信.docx》由会员分享,可在线阅读,更多相关《双机通信.docx(11页珍藏版)》请在冰豆网上搜索。
双机通信
西安邮电学院
单片机课程设计报告书
双机通信
院系名称
:
自动化学院
学生姓名
:
专业名称
:
班级
:
时间
:
2011年5月23日至6月2日
双机通信
一、设计目的
设计一个双机通信系统,实现按键数据的互发及显示功能。
二、设计要求
1.用两片单片机实现双机通信。
2.用与A机连接的按键控制与B机连接的LED,每按一次键,LED以1s的频率闪烁5次。
3.同理,用与B机连接的按键控制与A机连接的LED。
三、设计器材
两片单片机,两个晶振,按键三个,两个LED,电容,电阻,若干导线。
四、设计方案及分析(包含设计电路图)
1.STC89C51单片机介绍
(1)STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
(2)内部时钟电路和外部时钟电路
(a)内部方式时钟电路(b)外部方式时钟电路
(3)复位电路
复位是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
(4)STC89C52单片机引脚图
2.硬件部分:
两片单片机通过双机通信相连,通过甲单片机的按键控制乙单片机的发光二极管工作,通过乙单片机的按键控制甲单片机接收数据,并反馈给乙机,使乙机的发光二极管工作。
首先将晶振和电容与单片机相连接构成单片机的最小系统,7段数码管接在单片机的P1口,为了保护数码管,每个数码管接入9*1K欧姆的排阻。
将两个按键分别接入单片机中,控制单片机工作。
流程图:
发送数据流程
接收数据流程
3.设计程序如下:
#include
#defineuncharunsignedchar
#defineunintunsignedint
sbitKey=P1^1;
sbitLed=P1^0;
voiddelay()
{
inti,j;
for(i=1000;i>0;i--)
for(j=0;j<110;j++);
}
voidUartsend(unchark)//串口发送子函数
{
SBUF=k;//发送数据
while(!
TI);
TI=0;//待待发送结束
}
voidmain()
{
TMOD=0x20;//定时器1工作方式2
TH1=0xfd;
TL1=0xfd;//装入定时器初值11.0592M晶振,波特率9600
PCON=0;//波特率不倍增
ET1=0;//定时器1中断允许
EA=1;//总中断允许
ES=1;//串口中断允许
TR1=1;//定时器1开始计时
SCON=0x50;//串口工作方工1,准备接收
while
(1)//死循环
{
if(!
Key)//判断是否有键按下
{Uartsend(0xaa);//用串口发送0xaa
while(!
Key);//等待键释放
}
}
}
voiduart()interrupt4
{unchartemp;
if(RI)//判断是否为接收中断
{intk;
temp=SBUF;//读数据
for(k=0;k<10;k++)
{Led=~Led;
delay();}
switch(temp)//判断数据
{case0x55:
Led=0;break;
case0xaa:
Led=1;break;
default:
break;}
RI=0;//清除中断标志
}
TI=0;//清除中断标志
}
4.设计电路图如下:
五、问题分析与解决方法
问题一:
仿真问题
仿真图画好之后,开始运行,发光二极管没有反应。
仔细检查了下,是因为仿真图部分电路没有连接完整,不能接收数据,所以发光二极管都不工作。
当我们把仿真图完善好了,发光二极管也不按顺序发光,经检查是软件程序问题(在下面程序问题中解决)。
再次用proteus进行仿真,一切顺利。
问题二:
软件问题
在编写软件时候遇到最大的障碍还是对单片机的内部结构不熟悉,第一次写出来的程序加载到51上以后,数码管没有按规定显示,检查很多遍语法上都没有问题,经过查资料、组员一起探讨,多次修改,最后终于写出了非常理想的程序。
问题三:
硬件问题。
我们按照仿真图焊接电路,通过查阅资料,接上5V电压之后,发光二极管发光暗淡。
我们用万用表检查了发光二极管,发光二极管正常。
我们以为电压过低,所以增大了电压,但是从机被烧坏了。
我们换了从机之后,又一步步检测电路,发现有根导线是坏的,换了导线之后,接上电源,电压5V,功能终于实现了。
六、设计结果
用与A机连接的按键控制与B机连接的LED,每按一次键,LED以1s的频率闪烁5次。
同理,用与B机连接的按键控制与A机连接的LED。
七、设计体会与收获(小组成员每人一份)
:
这学期的课程设计实验是第13、14周,相对来说还是比较好的,我们做的课题是双机通信,实现两片单片机之间的通信。
题目很简单,用到的器件也很少,时间很充裕,刚开始老师没告诉我们具体用什么器件,只是说有单片机和晶振。
编程序的时候遇到了一些问题,主要还是对单片机的内部结构不熟悉。
经过查阅资料,组员一起探讨,最后还是编出来了比较好的程序。
仿真的时候基本没出什么大的问题,主要还是因为粗心。
仿真完了以后,接着的工作是在PCB板上连接,看硬件是否能实现。
我觉得在连接的过程中是比较开心的,我们四个人一起,一个剪线一个连接一个看电路核对,当监工。
真的体会到了合作的快乐。
把电路都连起来以后还是比较紧张的,一直不敢通电源,每个人都检查了一遍,确定没有连接错误以后才把电源连上。
满怀期待的看着发光二极管,结果没反应。
一项项的检查,电路都没错。
经过多项排查,后来觉得应该是程序没有下载到片子里。
我觉得软件和硬件结合要查出错误还是比较困难的,因为硬件和软件都有可能出现问题,还有可能就是软硬没有结合好,经过我们四个人的努力,最后还是弄出来了。
我觉得这次课程设计我们做的还是很成功的,最后焊出来的板子也很漂亮。
这和我们四个人的配合是分不开的,每个人都很努力,所以我们得到了四个人加起来的结果。
在这个过程中,我们四个人一起研究和讨论,每个人都全程参与,分工合作,最后设计出了比较好的电路,编写出了很漂亮的程序。
这次的实验虽然遇到了一些困难,但结果还是很满意的,通过这次的课程设计学到了很多,很认真的学了单片机的内部结构,学会了用C语言编写单片机程序。
如果没有自己去亲自体会就不会发现其中错误,也就不会得到改善,因此,实践对我们来说是很必要的,掌握理论很重要,但更重要的是把理论运用于实际,这样才会更有意义!
:
在本次课程设计中,我们四个人一个小组,我们四个人配合相当可以。
设计步骤如下:
(1)根据设计要求制定设计方案,经过我们对题目的理解,我们各自上网查阅资料,经过商讨实验方案很快就设计了出来。
(2)用protues进行仿真,结果发现原先的设计有很多不足,程序不完善,单片机内部结构不是很了解,所以首次仿真出来的不是很成功,我们又进一步探讨才正确仿真出来。
(3)在焊接的时候算是比较成功的,第一次焊好就能正常工作了。
我觉这次课程设计我们做的还是很成功的,最后焊出来的板子也很漂亮。
在本次课程设计中,我学到了很多,最重要的是团结。
身为一个小组,组内成员团结,能否合理分配任务,完成任务很是关键。
大家一定要紧密配合,集思广益,取长补短,谦虚谨慎。
这不仅对我们当前的课程设计很重要,对我们今后走上工作岗位也很重要。
我们也许都有自己的思路,设计方案,但同时我们也要尊重别人的劳动成果。
不能只想到自己,大家共同进步远远比自己一个人进步要好的多。
在短短两周的课程设计中,我的却学到了好多东西。
在设计时我们一遍遍修改程序,尽最大努力,编写出最好的程序。
虽然很麻烦,但给我们最后的调试带来了极大的方便。
所以以后无论做什么,都不能急躁,要考虑得很周密,千万不能急功近利。
正如很多老师说的,我们学得知识大多是理论知识,真正实践的机会很少,所以我们一定要特别珍惜每学期一次的课程设计,这对我们今后的工作有十分重要的作用。
这次课程设计我参与了软件部分的编写,在编写程序时可以有两种选择:
汇编语言和C语言。
两种语言各有各的特点。
C语言的可移植性好,开发效率高。
汇编语言节省计算机的内存空间,但是必须对单片机的所有指令非常熟悉。
在平时学习单片机的时候,我习惯使用C语言。
所以这次的程序使用C语言编写。
在编写过程中,程序分为主函数和串口接受中断函数。
51单片机的特点是只要子函数编写完成,主函数非常简单。
程序在编写过程中注意大括号的配对、位声明、函数的声明(若子函数在主函数的前面,则不需要这一步)。
编写完程序后,使用keil软件生成HEX文件。
在生成过程中如果程序没有语法错误,则一次性便生成HEX文件。
使用程序下载器和STC软件将程序下载到单片机的ROM中。
即完成了本次课程设计的软件部分。
这次课程设计主要是用单片机,由于所学的知识有限再加上查找资料并不完整,所以刚开始焊好之后,急于检验结果,忘了焊接单片机的晶振、电源和复位。
这只能说我们平时学的知识没有融入进去,需要我们更要深入的了解单片机的功能。
通过和队友的配合,使我体会到团队合作的重要性。
同时一份耕耘、一份收获,正是由于利用课余时间学习单片机,才使得这次的设计得心应手。
继续努力,为下学期找工作做好准备。
在本次课程设计中,我主要负责硬件电路的设计。
通过亲身对硬件电路的设计我了解到在硬件电路的设计需要细心,并且熟悉掌握好模电知识及平时的积累也是十分的重要的。
还有就是焊接电路板的时候要有全局布图的构成和焊接时的布线。
从本次试验开始至结束,耗时两周,虽然时间不算太长,但中间的经历让我受益匪浅,首先,以前所学的只是书本上的东西,并没有和实践结合起来,感觉总很虚幻,这次的课程设计让我感觉到了自己学的东西有用武之地,心中也踏实了许多,同时,也了解到了平时所学不足的地方。
最重要的一点,这次试验中充分的体验到了团队合作的力量,每个人分工明确,各司其职,其效率和质量,都有很大提高。
在以后的工作学习当中,这种团队意识和精神,必将使我们获益匪浅。
从整体看这次毕业实习是很成功的,让我们都有很大的收获,同时也非常感谢在实习过程中给予我们很大帮助的各位老师,在他们的帮助下,我们才能很好的完成实习认务。
最后答辩的过程中因为很多问题受到了老师的批评,这也是自己学习和改进的重要途径,在以后的学习中会更加努力的掌握专业知识,使自己真正达到学以致用!
附录:
参考书目:
1.《单片机原理及接口技术》,李全利,迟荣强---北京:
高等教育出版社,2004.1
2.《单片机技能与实训》,宋国富---北京:
电子工业出版社,2010.2
3.《新概念51单片机C语言教程—入门、提高、开发、拓展全攻略》,郭天祥
4.《51单片机及其C语言程序开发实例》,戴仙金---北京:
清华大学出版社,2008.2
5.《C程序设计》,谭浩强,第三版---北京:
清华大学出版社,2005.7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 双机 通信