甲乙两机串口通信双向控制系统软件设计与系统仿真_第1页
甲乙两机串口通信双向控制系统软件设计与系统仿真_第2页
甲乙两机串口通信双向控制系统软件设计与系统仿真_第3页
甲乙两机串口通信双向控制系统软件设计与系统仿真_第4页
甲乙两机串口通信双向控制系统软件设计与系统仿真_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录TOC\o"1-5"\h\z\o"CurrentDocument"题目设计要求: 1\o"CurrentDocument"系统的组成及工作原理 2\o"CurrentDocument"2.1系统组成 2\o"CurrentDocument"2.2工作原理 2\o"CurrentDocument"2.3双机通讯的方案 3\o"CurrentDocument"系统硬件电路 4\o"CurrentDocument"软件设计 5\o"CurrentDocument"4.1甲机程序设计 5\o"CurrentDocument"4.2乙机程序设计 8\o"CurrentDocument"系统仿真调试 12\o"CurrentDocument"设计体会和收获 13\o"CurrentDocument"参考文献 14题目设计要求:甲乙两机串口双向通信设计要求:利用51单片机,RS232芯片,LED灯,数码管进行双机通信设计。甲机可按键控制乙机的LED显示;乙机可按键控制甲机的数码管显示。完成以下设计环节:1) 使用AltiumDesmger开发工具,设IT电路原理图。2) 使用Uvision2开发平台,釆用C语言或汇编语言设计软件程序。3) 使用PROTEUS仿真软件,设计仿真原理图并运行软件程序,完成系统仿真。系统的组成及工作原理2.1系统组成本次设计是用两个单片机(称为屮机和乙机)之间采用方式1双向串行通信。中机的按键可通过串口控制屮机、乙机的2个LED灯,按一次屮机、乙机的LED1点亮,LED2灭,按两次甲机、乙机LED1灭,LED2点亮,按三次甲机、乙机的LED1和LED2全亮。乙机的按键课控制串口向屮机发送按下的次数,按下的次数通过串口显示在屮机P0口的数码管上,IIIJit设计出总体框图。图2.1总体框图2.2工作原理双机通信系统通过屮乙单片机的串行口来实现数据的收发。屮单片机通过开关电路来启动发送程序,甲机当开关按下时向乙机发送一个数据,乙机上蜂咛器发出声音提示有数据发送过来,乙机通过接收中断来接收和开关判断是否接收屮机发送过来的数据,并通过编写好的数据代码在8个发光二极管上显示主机发送过来的数据。乙单片机通过开关电路来启动发送程序,乙机给屮机发送一数据,屮机上蜂咛器发岀声音提示有数据发送过来,甲机通过接收中断来接收和开关判断是否接收乙机发送过来的数据,并通过编写好的数据代码在8个发光二极管上显示乙机发送过来的数据。

2.3双机通讯的方案设计方案:该系统采用主从共两片AT89C51单片机来实现上位机对下位机的控制,由于是近距离的双机通信,我们采用单片机直接交义连接的方式,上位机发送的数据由吊行口TXD端输出,直接山下位机的串行口数据接收端RXD接收。需要注意的是一定要保证主从机相同的数据传输速率,即要求设置相同的波特率。电路分为数码管显示模块,指示模块、以及单片机工作的基本复位、晶振模块。屮机由3个数码管,4个独立键盘开关,1个蜂咛器组成。乙机由8个发光二极管,一个蜂咛器,1个数字温度传感器DS18B20组成。单片机上最基本的两个电路:复位电路(图2.2)和晶振电路(图2.3)图2.2图2.2复位电路图XTALi.11..059MHzXTALi.11..059MHz・XTAL2-円口27pIC3-=I—ip27p图2.3晶振电路图

3・系统硬件电路第一步将两组按键和LED灯分别连接到单片机Ul、U2的P1口,第一.步将单片机U1的

P0口分别连接到数码显示管上进行显示,第三步将单片机U1的P0口连接到排阻上,第四步分

别将单片机Ul、U2的P3口连接到各自的线驱动器/接收器上,第五步将两个线驱动器/接收器

分别连接到各自的DE・9接口上,最后再将单片机Ul、U2通过DE・9连接器进行连接,来实现

双机通讯。• ••••••• • • • • • • ••••••• ••••••• • • • • •rXt/lee• ••• • • • • • • ••••• • • • • • • ••••••• • • • • • •I 只也巴“鈕 • ••••••• •• •• •• ••••••• ••••••• •• • • •• ••••• •• •••• ••••••• •• •• ••I d・ ・U1>XTAL1KTALZFODTXDOP口PD^AD2P口那旧P0.4?AD<P05TAD5ftsn-PO.7WD7PHU*姫P2.VXSP22TK1DPN311ALEP2.WR12立PZ^TAiaP2A^AUPZ.7rA.1Spinp^rvnxnP1.1P3.inxi>P12F32mTTT]P13P3^WT7P1.4P3.4/TDP1SP3^rripugP2顾氏P1.7pa.rrw~5~CU0CK-11DSB2MHI••••••••甲川饭谡彷诞乙皿L圧z&LjOCk-11JQSB2MHx'ZTCsir©#),)R2・U1>XTAL1KTALZFODTXDOP口PD^AD2P口那旧P0.4?AD<P05TAD5ftsn-PO.7WD7PHU*姫P2.VXSP22TK1DPN311ALEP2.WR12立PZ^TAiaP2A^AUPZ.7rA.1Spinp^rvnxnP1.1P3.inxi>P12F32mTTT]P13P3^WT7P1.4P3.4/TDP1SP3^rripugP2顾氏P1.7pa.rrw~5~CU0CK-11DSB2MHI••••••••甲川饭谡彷诞乙皿L圧z&LjOCk-11JQSB2MHx'ZTCsir©#),)R2zznR3D1'R1••D2•・・NZO・•・・…弹・:・・・・G・J・・>KFAL1KTALZRan-pomDDPH.WjMHm2iM2p口那旧PD5TAPSP口砂DGPD.TfAPTPznj*EP2.UASPZ2/A1OF5E1TP2^A11ALEP2.WK12瓯P2A^A13P2^fKHPZ.7rA.1SPMpaxyflxoP1.1P3.1/TXDP12P3z/nrraP13PUP3.4H11PISP3J5TT1P1J6P3AWPI.?P3.T/W9'2-T~* ****** * * * * * * * *25*□D-必协[遨曲甲朋嫂田誉县方—1ZslMzlzrWFPN诃-11"TFC5;;;;;;CH01-T1IMTHITTR.1OUTaiiMTZIM•nz^UTR30IJTR2IM冋VB-CZ*CZ-土.ryriji1117w"C3C4. C7 --CUInfC1-•••11T1IMK10UTT2IMR20UTT^UTR1IMTOUTKZINMWXZ32VS-cz*cz-C6C2uf.图3.1线路原理图软件设计本系统的软件设计流程图。系统设计代码分为以下儿个部分:初始化串行、发送数据、接收数据、键盘输入、数值转换、LED显示,数码管显示,用keil编译。4.1甲机程序设计屮机程序设计框图如下(图4.1),开始将两个单片机进行初始化。然后按动按键K1,屮机发送信号,乙机查询接收后回送应答,屮机中断接收应答,两机的LED闪烁。再次按动按键K1,重复上述过程。开始初始化屮机发送乙机查询接收乙机回送应答屮机中断接收应答LED闪烁结束图4・1甲程序设计框图甲机程序:// 甲机程序代码 #iiiclude<reg5l.h>#defineuintunsignedint#defineucharunsignedcharsbitledl=PlAO;sbitled2=PlA3;sbitkev=PlA7;J 7//-共阳极数码管段码 ucharcodetable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92?0x82,0xF8,0x80,0x90,0xff};ucharnum;// 延时 voiddelay(uiiitz){uintx.y;foi(x=z;x>0;x—)for(y=110;y>0;y-);}//-串行口发送函数・voidtransfer(ucharc){SBUF=c;wlule(TI==0);TI=0;}voidmainQ 〃主函数num=0;PO=OxOO;SCON=0x50;〃串行口工作在方式1,既可以发送数据,也可以接收数据TMOD=0x20;//定时器T1工作在方式2PCON=OxOO;THl=(256・253)/32;TL1=(256・253)%32;RI=O;TI=O;TR1=1;IE=0x90;〃串行口中断打开wlule(l){if(kev==O){while(kev==O);num=(num+1)%4;}switch(num){case0:transfer(,D,);ledl=l;led2=l;break;case1:transfe^^1);led1=0;led2=l;break;case2:transfe^B1);ledl=l;led2=0;break;case3:tmnsfh(C);led1=0;led2=0;break;delav(lOO);}}}voidrecieveQinterrupt4{if(RI==l){RI=0;PO=~table[SBUF];}}4.2乙机程序设计乙机程序设计框图如下(图4.2),开始将两个单片机进行初始化。然后按动按键K2,乙机发送信号,屮机查询接收后回送应答,乙机中断接收应答,屮机的数码管开始计数。再次按动按键K2,重复上述过程。

开始图4.2乙机设计框图乙机程序:ZLL-fj:J0#mclude<reg5l.h>#defineuiiitunsignedint#defineucharunsignedcharsbitledl=PlAO;sbitled2=PlA3;sbitkev=PlA7;Jucharnum=10;// 延时 voiddelay(uiiitz){uintx.y;for(x=z;x>0;x—)for(y=110;y>0;y-);}voidmainQ/〃主函数iSCON=0x50;〃串行口工作在方式1,既可以发送数据,也可以接收数据TMOD=0x20;PCON=OxOO;〃定时器T2工作在方式2THl=(256-253)/32;TL1=(256・253)%32;RI=0;TI=0;TR1=1;IE=0x90;〃串行口中断打开ledl=led2=l;wlule(l){if(key==0){while(kev==O);num=(num+1)%11;SBUF=num;while(TI==O);TI=O;}}}voidrecieveQintemipt4{if(RI==l){RI=0;switch(SBUF){casefAr:ledl=0;led2=l;break;case'B*:led1=1;led2=0;break;case'C*:led1=0;led2=0;break;caseD1:ledl=l;led2=l;// delav(lOO);}}elseledl=led2=l;}1J

系统仿真调试编译好代码后,用ProteusISIS画好原理图,把编译好的屮乙两机程丿了;的HEX文件,下载到原理图的单片机UI、U2中,点击运行系统仿真,查看显示效果,当按动K1时屮乙两机的LED发生变化,当按动K2时屮机的数码显示管开始计•数。经过测试显示结果与预期结果一致,系统运行正常。19D1hR2比刑乙■■丄ZZD0213TTF乙凤按趙視的I甲凤繳阿玄总〒匹U12B«XT7甲Hl核如杭斜乙HILED何严>XTAL1POIYADXTAIZPD.VAD1PD^AD2PD^AD3PO.4/AD*PDSTAD5PD^ADGPSTPD.V/AD?P2£y/*2P2.VA9P22ZA1DP23*A11ALEP2.WA12駅P2STA13P2«AUP2.7ZA15P1DP1.1P3IVRXDP3.1/TXI>P12P13PSZHETP33H1TP1.f19D1hR2比刑乙■■丄ZZD0213TTF乙凤按趙視的I甲凤繳阿玄总〒匹U12B«XT7甲Hl核如杭斜乙HILED何严>XTAL1POIYADXTAIZPD.VAD1PD^AD2PD^AD3PO.4/AD*PDSTAD5PD^ADGPSTPD.V/AD?P2£y/*2P2.VA9P22ZA1DP23*A11ALEP2.WA12駅P2STA13P2«AUP2.7ZA15P1DP1.1P3IVRXDP3.1/TXI>P12P13PSZHETP33H1TP1.fP3.4HDP1SP3ST1P,£PI.?P3AC75JKP3.7/IF*RP11C5dH11b1uFCl*C1-T1IMT10UTR10UTR1IMTZIMTOUTR2JUTR2IM1WXZ3ZYS*VB-02*C2-L:•^XTAL1PDiyADDXTA12PCI.VAD1PD^AD2PD3*AD3RETTPCI.WAD<PDSTAD5PDJ&AD6PO.7ZAD7P2£V/*2P2.VA9P2^A1DP2^A11ALEP2.4/A12◎P2S^A13P1BP2fi*AUP2.7ZA15P31YRXDP1.1P12P3.irr>iP3WIUP13P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论