- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
//---主程序---main(){SCON=0x50;//串口工作于方式1,允许接收PCON=0x80;//SMOD=1TMOD=0x20;//T1作为波特率发生器TH1=0xff;TL1=0xff;TR1=1;//启动T1while(1){while(!RI);//等待接收完毕RI=0;//清除接收标志位P2=SBUF;//显示接收信息P0=0xff;//不显示发送信息delay();//延时SBUF=0xf9;//发送1的显示编码while(!TI);//等待发送完毕TI=0;//清除发送标志位P0=0xf9;//显示发送信息P2=0xff;//不显示接收信息delay();//延时}}8.4.3.3双机通信实验运行结果从图9-25和图9-26可看到实验运行结果。图9-25甲机发送、乙机接收示意图图9-26乙机发送、甲机接收示意图8.4.4多机通信实验该实验使用了3片AT89C51,分别为甲机、乙机和丙机。其中,甲机为主机,乙机和丙机为从机,乙机地址为0x01,丙机地址为0x02。串口工作于方式3,通过SM2来实现地址帧和数据帧的区别,主机发送信息中TB8若为1,则表示发送信息为地址帧;TB8=0若TB8为0,则表示发送信息为数据帧。从机的SM2初始值均为1,接收地址帧后与本机地址进行比较,若一致则将SM2清零以接收后续数据帧,若不一致则维持SM2不变,不接收数据帧。实验中为简单起见,数据帧只有一帧,从机在接收到数据帧后将SM2置位为1,回复到初始状态。8.4.4.1硬件电路多机通信实验的硬件电路见图9-27。图9-27多机通信实验的硬件电路8.4.4.2软件在工作目录下分别创建three_cpu_1、three_cpu_2和three_cpu_3工程,将three_cpu_1.c、three_cpu_2.c和three_cpu_3.c源文件添加进去,经编译、连接后得到载入甲机和乙机的十六进制目标文件three_cpu_1.hex、three_cpu_2.hex和three_cpu_3.hex即可。为简单起见,three_cpu_1(主机)工程窗口如图9-28所示。图9-28多机通信实验three_cpu_1(主机)工程窗口以下为three_cpu_1.c源文件。//---多机通信实验---//---包含头文件---#includereg51.h//---宏定义---#defineucharunsignedchar#defineuintunsignedint#defineADDRESS10x01#defineADDRESS20x02---延时子程序---delay(){uintj;uchark;for(j=0;j50000;j++)for(k=0;k10;k++);}//---主程序---main(){SCON=0xd8;//串口工作于方式3,允许接收,TB8=1PCON=0x80;//SMOD=1TMOD=0x20;//T1作为波特率发生器TH1=0xff;TL1=0xff;TR1=1;//启动T1while(1){TB8=1;SBUF=ADDRESS1;//发送地址帧,寻址乙机while(!TI);//等待发送完毕TI=0;//清除发送标志位P1=0xf9;//显示发送地址信息delay();//延时while(!RI);//等待从机应答RI=0;//清除接收标志位If(SBUF==ADDRESS1){ TB8=0;//数据帧SBUF=0xf8;//发送7的显示码 while(!TI);//等待发送完毕TI=0;//清除发送标志位P0=0xf8;//显示发送数据信息delay();//延时 }模块八单片机串行口及其应用8.4MCS-51单片机的串行接口实验8.4.1串行转并行实验MCS-51单片机的串口工作于方式0时,通常是用作串行信号/并行信号的转换器。MCS-51单片机的TXD(P3.1)提供频率为fosc/
文档评论(0)