双机通信单片机课程设计

上传人:汽*** 文档编号:564385564 上传时间:2023-06-09 格式:DOCX 页数:14 大小:238.40KB
返回 下载 相关 举报
双机通信单片机课程设计_第1页
第1页 / 共14页
双机通信单片机课程设计_第2页
第2页 / 共14页
双机通信单片机课程设计_第3页
第3页 / 共14页
双机通信单片机课程设计_第4页
第4页 / 共14页
双机通信单片机课程设计_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《双机通信单片机课程设计》由会员分享,可在线阅读,更多相关《双机通信单片机课程设计(14页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计双机通信一、设计目的1、掌握单片机89C52的程序设计,掌握单片机通信程序编制方法。2、了解单片机实现通信的硬件环境。3、掌握双机通信的原理和方法。二、设计要求1、用两片单片机,实现双机通信;2、用与A机连接的按键控制A机对B机的信息传输,每按一次键, 首先发送端显示要发送数据,两台机器的发光二极管的显示相同。3、用与B机连接的按键控制B机对A机的信息传输,每次按键,数 码管的显示自动加一。三、设计器材1、设计思路计划采用主从共两片STC8952RC单片机来实现双机通信的,我们 采用单片机直接交叉连接的方式,上位机发送的数据由串行口 TXD端 输出,直接由下位机的串行口数据接收端

2、RXD接收。需要注意的是一 定要保证主从机相同的数据传输速率,即要求设置相同的波特率。电 路分为数码管显示模块,单片机工作的基本复位、晶振模块。2、设计原理(1)原理概述双机通信系统通过主从单片机的串行口来实现数据的收发。主单 片机通过开关电路来启动发送程序,当开关按下时向从机发送一个数 据,从机通过接收中断来接收主机发送过来的数据,并通过编写好的 数据代码在LED数码管上显示主机发送过来的数据。同时从机给主机 发送一个应答信号来表示已经接收到了主机发送过来的数据,在主机 接收应答并校验正确,以二极管显示,这样就完成了一个数据的通信 过程,等待按键按下,然后继续下一次数据的发送直到结束。(2)

3、串行通信串行数据通信要解决两个关键问题,一个是数据传送,另一个是 数据转换。所谓数据传送就是指数据以什么形式进行传送。所谓数据 转换就是指单片机在接收数据时,如何把接收到的串行数据转化为并 行数据,单片机在发送数据时,如何把并行数据转换为串行数据进行 发送。单片机的串行通信使用的是异步串行通信,所谓异步就是指发 送端和接收端使用的不是同一个时钟。异步串行通信通常以字符(或 者字节)为单位组成字符帧传送。字符帧由发送端一帧一帧地传送, 接收端通过传输线一帧一帧地接收。而对于两个单片机之间的串行通 信,由于具有相同的数据格式及电平且是短距离通信则不必要使用一 些电平转化芯片便可直接实现串行通讯,需

4、要注意的是两单片机硬件 要共地,软件中需要设置相同波特率。五、软件系统实现1、软件仿真图ftZCiUTCR7ST4.PSENC:丄心些 11 nS3.INi ED:S1|:S1JC2 . 却F 叼 E:Jipci mmPD.1UD1 POZADZ poa.ua PO.AD+ POSAM PO.&AM PD.TMPZJjHB F乙泊習 pzaf PZH.11 P2.4A1Z P2SHQ P2.Gft1+ PZ.TftBP3JJHXD P3.1fTM)叮 HKTf P.nTD 阳NT!P3.&7iJKP3.7/WTbXTALIEL2BSTPODAfflPD.1UD1FO2iAG FD.ra PD.

5、AD+ POSAK PO.GAMPEP厲国阳口厢P2.VA9pz.oPSENpza:H.nALEP2.4iH.-GKhPZiHt3PZ.&h.HP2.7ih.15P1 1P3 1H7XDLL2LL3FijirrTP1.*pi jgPljaTiTfl-P1.7Pl.lYffFF2+Pz?in11单片机晶振电路2、软件程序代码(1)甲机程序代码C1+C1-T1INT1OUTR1OUTR1IMTZIMTZOUTP2IJUTP2IMMK:ZZEllc;+r:ilZR10UTT10UTmiNTZOUT5弓cC4Jufpr复位电路/*名称:甲机串口程序 说明:甲机向乙机发送控制命令字符,甲机同时接收乙机发

6、送的数字, 并显示在数码管上。*/#include#define uchar unsigned char#define uint unsigned intsbit LED1二P0;sbit LED2二P3;sbit KI二P7;uchar Operation_No=0; /操作代码/数码管代码uchar codeDSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/延时void DelayMS(uint ms)uchar i;while(ms-) for(i=0;i=0&SBUF=9) P0=DSY_CODESBUF;else

7、P0=0x00;(2)乙机程序代码/*名称:乙机程序接收甲机发送字符并完成相应动作说明:乙机接收到甲机发送的信号后,根据相应信号控制LED完成不同闪烁动作。*/#include#define uchar unsigned char#define uint unsigned intsbit LED1二P0;sbit LED2二P3;sbit K2二P7;uchar NumX=-1;/延时void DelayMS(uint ms)uchar i;while(ms-) for(i=0;i120;i+);/主程序void main()LED1=LED2=1;SCON=0x50; /串口模式 1,允许接

8、收TMOD=0x20; /T1 工作模式 2TH1=0xfd; /波特率 9600TL1=0xfd;PCON=0x00; /波特率不倍增RI=TI=0;TR1=1;IE=0x90;while(1)DelayMS(100);if(K2=0)while(K2=0);NumX=+NumX%11; /产生 010 范围内的数字,其中 10 表示关闭SBUF=NumX;while(TI=0);TI=0;void Serial_INT() interrupt 4if(RI) /如收到则 LED 则动作RI=0;switch(SBUF) /根据所收到的不同命令字符完成不同动作case X:LED1=LED2

9、=1;break;/全灭case A:LED1=0;LED2=1;break; /LED1 亮case B:LED2=0;LED1=1;break; /LED2 亮case C:LED1=LED2=0;六、硬件电路设计1、硬件电路设计方案从硬件电路设计的目标出发,我们尽量考虑到可靠、高效、简洁 的原则,在整个系统设计过程中严格按照规范进行,做好各部分模块 设计最优。简洁是指在满足了可靠、高效的要求后,为了尽量在器件 允许的范围内使电路设计导线无交叉,应使电路设计尽量简洁,尽量 减少元器件使用数量,缩小电路板面积,使电路部分重量轻。在焊接 电路板时由于从机的数码管管脚排布无规律,使得导线不能直接

10、的焊 接,我们尽量合理设计元件排列和电路走线,使本系统达到设计要求。2、单片机最小系统89C52单片机的最小系统采用内部时钟方式:以XTAL1和XTAL2引 脚外接晶振,构成了自激振荡器并在单片机内部产生时钟脉冲信号, 然后给晶振的每个脚分别外接一个30PF的电容,以此使晶振快速起 振并且达到约11.0592MHZ的稳定频率。而在单片机的RST脚接上按 键开关以及适当的电阻、电容便构成按键与断电两用的复位电路。3、数码管显示模块设计中,我们使用P0 口控制数码管段选信号,P1 口选取两位为 位选信号控制端。拿到数码管后,我们借助万用表进行测试,最终确 定为共阴极数码管,进而测试便得出了该数码管

11、对应的管脚分布图。七、问题分析与解决方法课程设计初期主要对通过课程设计要求完成的功能进行问题分 析,再通过查询书本与网络资源,初步确定一个思路。等所有器件都 拿到以后,通过对不同器件功能的分析,确定最终要实现的目标。然 后运用ISIS 7 Professional软件连接好所有的器件,然后编写程序, 在仿真系统下验证功能是否正确。在得到准确的仿真结果后开始焊 接。在实验过程中,我们遇到了以下几个问题:1. 在仿真没有错误的电路在实际做完之后不工作,首先我们检查 了电路焊接,并没有发现有虚焊和短路的现象。因此我们怀疑是否烧 程序的时候出现问题我们没有发现,然后我们一共重新烧过三次程 序,最后可以正常工作了。2. 虽然我们得到了实验结果,但是数码管显示不是很显眼,于是 我们对电路进行了改进,在数码管连接处加上三极管放大电路作为驱 动,发现实验结果比之前要好了很多。3. 电路中我们少焊接了一个排阻,以至数码管无法显示,之后添 加排阻之后,数码可以显示了。八、课程设计心得体会经过两个星期的课程设计,总的来说,我们小组每个人都努力做 好了自己要做的,但对结果还是不太满意,虽然板子焊接好了,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号