单片机应用项目化教程 教案 6.1 双机通信实验指导书及例程.docx
任务6-1双机通信实验一、实验概述使用两台单片机来进行数据通信,并用数码管显示出来.二、实验目的1、理解8051串口工作原理;2、穗两个8051全双工通信的概念与应用.三、实验预习要求1、了解定时器的控制方法;2、学习双机通信的原理.四、实验原理两台单片机进行双机通信,接口电路如下图所示。两台单片机的发送端FXD与接收端RXII交错相连,地线相连.硬件线路正确连线后,还需要编写双方的通信程序,遵守双方的约定,以及双方的数据帧格式、波特率等必须一致.电片机MsV)电片机2(5V)TXD4RXDRXDTXDGNDGND图:双机异步通信接口电路单片机串行口在方式1、方式2、方式3下,均能实现双机通信,本实验是使用方式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.SM1.SM2RCMTB8RSaT1.jRiBHMHmbMMn*n<mcOmcr1.ptton7FtFrmMgEraM(SM000<11C1.MrRrwtJ<11by«»FMS<SrMBtfanmMstopMn<McM$W08vubWttonattaccorMSMOS11B1.portModeM0AfwtoSMitaiMfUIportmodeMdtr<5U0D01u1.XUmdgnM*mcM*2IMSM3BSMpodModM1SttOSM1.MMeDMCc1.BaCm*udRMoooSMaWbhwGSMt0118-MUART¼uttI0才职EUARTcrMM8b,”I139(MUARTYVtM5SM2S<taMMode2M,kM*woM<rCCfmX*uftorEnaMWCMf1.(>SAtM11X1.CpCCMK*Hw*moMcnfMafS<tomttoCUtcrocMMMcc<mx4i<xIMfUGEd2andS.andIfEoea1TMb4hoUdBc<ared>nmMeO4RCHayefhooa«M»W1.C1.Mf2.Mbw<*<wM>aS<to*WtMtUi11K*0f13TBaYrWMma»>Bit8.>>r<MIoItamrMnEOdMNand*OnrWrn4to¢COmMxSttotmwmk09c1htt>2RMRev<rB«6M1.Ehbi1.rcivdinmo*2aM>CMfSfmModag<o$«<e*hMr*rt»ttx*C9409K,*v*od1,<SM2-O1.R88f*rerdtc»M.力mode0R882uMdIT1.TranwvMIMerFVaECnOc*r<m>*eM*3'h*0Bara!t11dit1.M1.mGtoOofaZbQmrgo1.9>¢KatimVWd<node*0R1.Rcwktam<IUgC1.MTIOK*tf%VWft1MMS0,MmeajdteUhtnwGITo0.小Fare2-26BFse2,Gec<*wdResetVa1.ue0000OOOODBitaddresMb4图:串行口控制奇存器IE:中断允许寄存器.如下图所示Tab1.e5.InterruptEnab1.e(IE)RegisterIMSB1.<1.S>EA-mCSETiX1ETOexoEnaWe1c11atts!hn1ecvptEnatteIM0(JtWb1.the>rtmi(Symbo1.PositionFunctionEAE.7DtMbIcsa1.Mrrupts.IfEA0.noitorrup<sacknow1.edged.HEA.1.eaeStenVP1.sourcesmdM(Xiai»yenaMdordtsabMbysottingorCigmgitsenaUoh1.-E.ReservedET2E.5Timer2interrupteoaWMESE4Sena1.POniEeEenaWeMET1IE3Timer1in(errp(enaWeM.exE2Externa1.11teup!Gnawebiteo.1Timer0interruptenab1.eM.exoIEOExterna1.eerrupi0enaWeMUsersoftwareShouWneverwrites>UKmP1.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真实验,由矩阵键盘、共阳数码管,独立按键输入和串口组成双机通讯的基本单元,实验双机的数据交互.七、硬件连接图1.硬件电路RP4oJP25CONNS1.1.r-2myYrUan-ER图:4*4矩阵健盘D17D18图:8位共阳数码管JP34nnnnHiMMi,1FW羿窜阳!呻*耳亡7优专"J"0>f""g""IW"J"C49叶图:8位独立技梃2.硬件连接表MCU1.-AT89S524-4矩阵键盘8位共阳数码管8位独立按键MCU2-AT89S52P10P13R1R4P14-P17C1C4P32INTP00P07SASHP20P27C0C7P33K1.P30(RXD)P31(TXD)P31(TXD)P30(RXD)3.Proteus仿真图图:PrOteUS仿真图八、实验程序#inc1.ude"reg51.h"#defineucharunsignedchar#defineuintunsignedint#defineotkP1.#define(XJt1.PO#defineout2P2ucharcodeseg=0xc0,0xf9,0×a4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,Oxff;ucharkey,send,rec;ucharscan(void);voidde1.ayms(uint);voidmain(void)(TMOD=OX20;设帽8寸器1工作在取2TH1=O×F2;T1.1=OXF2;TR1.=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;m<3;m+)outk=(0x01<<(m+3);for(n=0;n<3;n+)in=outk;in=in>>n;if(in&0x01)=0)if(in&0x01)=0)k=n+m*3;break;)if(k!=10)break;)return(k);voidde1.ayms(uintj)uchari;for(;j>0;j-)<i=250;whi1.e(-i);i=249;whi1.e(-i);)voide×t()intermpt0EXO=O;key=scan();if(key!=10)send=key+1.;EXO=1;)voide×t1.()interrupt2ES=O;SBUF=send;Whi1.e(!TI);TI=OjES=I;voidcom()interrupt4RI=O;rec=SBUF;九、实验步骤1、打开ProteUS8环境,在快捷工具栏中点击源代码按组,然后在菜单栏选择系统-编浮器配置.找到Kei1.for8051,点击下载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),0ERROR<S)编译成功.表示工程编译成功。6、编译成功后,切换到原理图状态下点击运行按纽,可通过人机接口观察程序的仿真结果.7、连接ISP下载器一端到USB接口,另一端连到目标板。打开实验台电源,参考产品说明书中的ISP下载软件使用方法对程序进行下载.8、接下来大家就可以按照硬件连接表连线了,然后则试程序,观察实验