51单片机主从之间的简单串口通信.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机主从之间的简单串口通信

/******************51单片机主从通信******************************** FileName:tongxin.c Author:沧海麒麟 Date:2011.05. Version :1.0 Description:适用于 */ /*主机发送函数*/ #includereg52.h #define uchar unsigned char #define uint unsigned int uchar i=0; uchar const Dat[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00, 0x0f}; //待发送数据 /********************************* 延时函数 **********************************/ void delay(){ uint j; for(j=0;j31000;j++); } /********************************* 主函数 **********************************/ void main(){ TMOD=0x20; //将T1设为工作方式2 TH1=0xFD; TL1=0xFD; PCON=0x00; TR1=1; //启动T1 SCON=0xd0; //串行口设为工作方式3, 允许接收 EA=1; ES=1; //开中断 ACC=Dat[i]; CY=P; TB8=CY; P0=ACC; SBUF=ACC; //发送数据 delay(); while(1); } /**************************** 发送中断服务函数 *****************************/ void trs() interrupt 4 using 1 { uchar Dat1; if(TI==0) { //接收中断 RI=0; Dat1=SBUF; //清除中断标志,接收数据 if(Dat1==0) { //收到回送正确标志 i++; ACC=Dat[i]; CY=P; TB8=CY; P0=ACC; SBUF=ACC; //启动发送下一个数据 delay(); if(i==9) { EA=0; ES=0;//数据发送完毕 while(1) { P0=0xaa; delay(); P0=0x55; delay(); P0=0x00; delay(); } } } else { ACC=Dat[i]; //收到回送错误标志 CY=P; TB8=CY; P0=ACC; SBUF=ACC; //重发上一个数据 delay(); } } else TI=0; } /*从机接收函数*/ #includereg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar i=0; uchar Dat[16] _at_ 0x40; /********************************* 主函数 **********************************/ void main(){ TMOD=0x20; //将T1设为工作方式2 TH1=0xFD; TL1=0xFD; PCON=0x00; TR1=1; //启动T1 SCON=0xd0; //串行口设为工作方式3, 允许接收 ES=1;EA=1; //开中断 while(1); } /*************

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档