实验六_单片机间的串行通信.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验六_单片机间的串行通信

实验六 单片机间的串行通信 设有甲、乙两台单片机,全双工串行通讯,每桢为11位,可程控的第9位数据为奇偶位,本次编写出能实现如下功能的单片机应用程序: b.乙机接受甲机发送过来的学号; (2)(选作)在(1)的基础上实现甲机在发送信息中第9位加入偶校验信息,若偶正确,则乙机向甲机发出“数据发送正确”的信息(现取00H)作为回答信号),甲机接收到乙机的此信息后。若偶效验错,则乙机发出“数据发送不正确”的信息(现取FFH作为回答信号)给甲机,要求甲机再次发送原数据,直至数据发送正确。 实验报告 实验六 1. 实验目的和要求 设有甲、乙两台单片机,全双工串行通讯,每桢为11位,可程控的第9位数据为奇偶校验位,本次实验要求编写出能实现如下功能的单片机应用程序: (1)a.甲机向乙机发送实验者的学号; b.乙机接受甲机发送过来的学号; (2)(选作)在(1)的基础上实现甲机在发送信息中第9位加入偶校验信息,若乙机偶校验正确,则乙机向甲机发出“数据发送正确”的信息(现取00H)作为回答信号),甲机接收到乙机的此信息后进行接下来的信息发送。若乙机偶效验错,则乙机发出“数据发送不正确”的信息(现取FFH作为回答信号)给甲机,要求甲机再次发送原数据,直至数据发送正确。然后进行接下来的信息发送。 2. 主要仪器设备 ①笔记本电脑 ②51单片机 3. 实验内容 要求: a.甲机向乙机发送实验者的学号; b.乙机接受甲机发送过来的学号; 源程序: #includereg52.h unsigned char num,temp; unsigned char duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-f sbit S2=P3^4; sbit dula=P2^6; sbit wela=P2^7; void delay_ms(unsigned int t) { unsigned int i,j; for(i=t;i0;i--) for(j=110;j0;j--); } void keyscan(); void main() { TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; REN=1; SM0=1; SM1=1; EA=1; ES=1; while(1) { keyscan(); P1=~num; ES=0; SBUF=num; while(TI==0); TI=0; ES=1; } } void Receive_data() interrupt 4 { if(RI) { RI=0; P0=duan[SBUF]; dula=1; dula=0; P0=0xfe; wela=1; wela=0; } } void keyscan() { P3=0xfe; temp=P3; temp=temp0xf0; while(temp!=0xf0) { delay_ms(10); temp=P3; temp=temp0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case 0xee:num=1; break; case 0xde:num=2; break; case 0xbe:num=3; break; case 0x7e:num=4; break; default:break; } while(temp!=0xf0) { temp=P3; temp=temp0xf0; } } } P3=0xfd; temp=P3; temp=temp0xf0; while(temp!=0xf0) { delay_ms(10); temp=P3; temp=temp0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case 0xed:num=5; break; case 0xdd:num=6; break; case 0xbd:num=7; break; case 0x7d:num=8; break; default:break; } while(temp!=0xf0) { temp=P3; temp=temp0xf0; }

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档