《单片机应用项目化教程 教案 6.1 双机通信实验指导书及例程.docx》由会员分享,可在线阅读,更多相关《单片机应用项目化教程 教案 6.1 双机通信实验指导书及例程.docx(12页珍藏版)》请在优知文库上搜索。
1、任务6-1双机通信实验一、实验概述使用两台单片机来进行数据通信,并用数码管显示出来.二、实验目的1、理解8051串口工作原理;2、穗两个8051全双工通信的概念与应用.三、实验预习要求1、了解定时器的控制方法;2、学习双机通信的原理.四、实验原理两台单片机进行双机通信,接口电路如下图所示。两台单片机的发送端FXD与接收端RXII交错相连,地线相连.硬件线路正确连线后,还需要编写双方的通信程序,遵守双方的约定,以及双方的数据帧格式、波特率等必须一致.电片机MsV)电片机2(5V)TXD4RXDRXDTXDGNDGND图:双机异步通信接口电路单片机串行口在方式1、方式2、方式3下,均能实现双机通信
2、,本实验是使用方式1.方式2、方式3既可以用于双机通信,也可以用于多机通信.数据发送:当数据写入发送缓冲器SUBF1发送缓冲器自动启动,数据由TXD输出。发送完一帧数据后,T1.在1通过直询或者中断方式,了解T1.的状态,T1.只能由软件宜位.穗接收:当REN=I时,单片机串口允许接收.串行口采样引脚RXD从1跳变到O,并得到确认起始位后,就开始接收一帧数据.当接收完一帧数据,RI置1,可通过查询或中断方式了解RI的状态,RI也只能由软件巨位。单片机双机通信是通过设笆SCoN、IE、TMoD.PCOM等SFR实现的,SCON:SM0、SM1.可设笆为01、10、11中的任一种,SM2设笆为0.
3、SM1.SM2RCMTB8RSaT1.jRiBHMHmbMMn*nmcOmcr1.ptton7FtFrmMgEraM(SM00011C1.MrRrwtJ11byFMSSrMBtfanmMstopMnMcM$W08vubWttonattaccorMSMOS11B1.portModeM0AfwtoSMitaiMfUIportmodeMdtr5U0D01u1.XUmdgnM*mcM*2IMSM3BSMpodModM1SttOSM1.MMeDMCc1.BaCm*udRMoooSMaWbhwGSMt0118-MUARTuttI0才职EUARTcrMM8b,”I139(MUARTYVtM5SM2StaMM
4、ode2M,kM*woMSAtM11X1.CpCCMK*Hw*moMcnfMafStomttoCUtcrocMMMccmx4ixIMfUGEd2andS.andIfEoea1TMb4hoUdBcnmMeO4RCHayefhooaMW1.C1.Mf2.Mbw*aSBit8.r2RMRevCMfSfmModago$e*hMr*rtttx*C9409K,*v*od1,SM2-O1.R88f*rerdtcM.力mode0R882uMdIT1.TranwvMIMerFVaECnOc*r*eM*3h*0Bara!t11dit1.M1.mGtoOofaZbQmrgo1.9KatimVWdnode*0R1.R
5、cwktamIUgC1.MTIOK*tf%VWft1MMS0,MmeajdteUhtnwGITo0.小Fare2-26BFse2,Gec*wdResetVa1.ue0000OOOODBitaddresMb4图:串行口控制奇存器IE:中断允许寄存器.如下图所示Tab1.e5.InterruptEnab1.e(IE)RegisterIMSB1.EA-mCSETiX1ETOexoEnaWe1c11atts!hn1ecvptEnatteIM0(JtWb1.thertmi(Symbo1.PositionFunctionEAE.7DtMbIcsa1.Mrrupts.IfEA0.noitorrupUKmP1
6、.emerrtedWts.becausetheymaybeusedinfutureAT89products.图:中断使能寄存器(IE)详细的控制方法可以查阅数据手册.五、PrOteIJS使用的元器件1. AT89C5251单片机.2. BUTTON按腿,用于最小系统复位.3. CAP电容,用于搭建豆位电路.4. CAP-E1.EC电解电容,用于搭建豆位电路.5. CRYSTA1.晶振,给单片机提供时钟信号.6. RES电阻.7. 741.S21双4输入与门.8. 7SEG-C0M-AN-GEN共阳数码管.KEYPAD-PHONE矩阵健盘。六、实验要求使用ProteUS进彳加5真实验,由矩阵键盘
7、、共阳数码管,独立按键输入和串口组成双机通讯的基本单元,实验双机的数据交互.七、硬件连接图1.硬件电路RP4oJP25CONNS1.1.r-2myYrUan-ER图:4*4矩阵健盘D17D18图:8位共阳数码管JP34nnnnHiMMi,1FW羿窜阳!呻*耳亡7优专J0fgIWJC49叶图:8位独立技梃2.硬件连接表MCU1.-AT89S524-4矩阵键盘8位共阳数码管8位独立按键MCU2-AT89S52P10P13R1R4P14-P17C1C4P32INTP00P07SASHP20P27C0C7P33K1.P30(RXD)P31(TXD)P31(TXD)P30(RXD)3.Proteus仿真
8、图图:PrOteUS仿真图八、实验程序#inc1.udereg51.h#defineucharunsignedchar#defineuintunsignedint#defineotkP1.#define(XJt1.PO#defineout2P2ucharcodeseg=0xc0,0xf9,0a4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,Oxff;ucharkey,send,rec;ucharscan(void);voidde1.ayms(uint);voidmain(void)(TMOD=OX20;设帽8寸器1工作在取2TH1=OF2;T1.1=OXF2;TR1.
9、=I;SCON=OX50;串口工作在方式1,REN=I允许接收数据PCON=OXo0;波特率不力峭EA=I;ES=I;EX1.=I;EXO=I;whi1.e(1.)outk=0x07;out1.=segsend;out2=segrec;)ucharscan(void)uchark=10,m,n,in;de1.ayms(10);outk=0x07;if(outk&0x07)!=0x07)(for(m=0;m3;m+)outk=(0x01(m+3);for(n=0;nn;if(in&0x01)=0)if(in&0x01)=0)k=n+m*3;break;)if(k!=10)break;)retur
10、n(k);voidde1.ayms(uintj)uchari;for(;j0;j-)i=250;whi1.e(-i);i=249;whi1.e(-i);)voidet()intermpt0EXO=O;key=scan();if(key!=10)send=key+1.;EXO=1;)voidet1.()interrupt2ES=O;SBUF=send;Whi1.e(!TI);TI=OjES=I;voidcom()interrupt4RI=O;rec=SBUF;九、实验步骤1、打开ProteUS8环境,在快捷工具栏中点击源代码按组,然后在菜单栏选择系统-编浮器配置.找到Kei1.for8051,点
11、击下载f下载完成后点击OK退出.2、点击源码选择新建工程,出现新固件项目对话框,在系列一栏中选择8051,在控制器一栏选择AT89C52,编译器一栏中选择Kei1.for8051,然后点击确定,新工程创建3、然后在工程对话松下,右键单击AT89C52,在出现的下拉列表中选中工程设皆,将工程选项下EmbedFiIeS后的勾选去掉,然后点击确定完成工程设置.4、在快捷工具栏中的下拉列菜单Debug/Re1.ease/配置选项中,选择Re1.ease.5、将需要编译的程序代码输入到main.c文件中,输入好程序代码后,然后在工程中,右犍单击AT89C52,在出现的下拉列表中选中构建工程,编译完成返回1.INK/1.OCATERUNCOMP1.ETE.0WARNINGS),0ERRORS)编译成功.表示工程编译成功。6、编译成功后,切换到原理图状态下点击运行按纽,可通过人机接口观察程序的仿真结果.7、连接ISP下载器一端到USB接口,另一端连到目标板。打开实验台电源,参考产品说明书中的ISP下载软件使用方法对程序进行下载.8、接下来大家就可以按照硬件连接表连线了,然后则试程序,观察实验