电子08-10班——董雪(30号).docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 6 - 30 新疆师范大学 30 实验报告 课 目 单片机及应用技术 实 验 课 题 4.双机通信实验 电子 系 电子08-10班 姓名 董雪 201 同 组 实 验 者 无 指导教师 刘楚湘 实验内容 利用两个单片机AT89C51,甲机向乙机传送数据,乙机接收数据并通过数码管显示出来。实现双机通信。 2.实验目的 ⑴学会两个单片机之间数据的通信,学会数据的发送和接受处理。 ⑵熟悉锁存器74LS373的使用, 对数码管进行控制。 ⑶进一歩熟悉C51的编程环境。 3. 实验电路原理图 4. 系统板上硬件连线 (1)把“单片机系统”区域甲机的P0.0-P0.7分别与控制发送端数码管显示的锁存器74LS373的输入口D0-D7相连,并将锁存器的输出端与发送端数码管的a-h相连。 (2)把“单片机系统”区域中乙机的P0.0-P0.7分别与控制接收端数码管显示的锁存器74LS373的输入口D0-D7相连,并将锁存器的输出端与接收端数码管的a-h相连。 (3)把控制数码管显示的段,位锁存器74LS373的输出口分别于数码管的段abcdefg和位WE1-WE8相连。 (4)把“单片机系统”区域中甲机的的P2.6与控制发送端数码管显示的锁存器74LS373的LE相连。 (5)把“单片机系统”区域中乙机的的P2.6与控制接收端数码管显示的锁存器74LS373的LE相连。 (6)把甲机的P3.1(TXD)与乙机的P3.0(RXD)相连。 5. 程序主要设计内容 ??①.要在主程序中对两机的串行口进行设置。 ???②.注意双机通信要分别对各自单片机进行编程。 6. C语言源程序 甲机程序: #includereg51.h #define uchar unsigned char #define uint unsigned int sbit p=PSW^0; sbit dula=P2^6; uchar table[]={ //数码管显示0-F字型码 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void Send(unsigned char dat) { ACC=dat; TB8=p; SBUF=dat; while(TI==0); TI=0; } void delay(uint z) //延时程序 { uint x,y; for(x=z;x0;x--) for(y=110;y0;y--); } void main(void) { unsigned char i; TMOD=0x20; //TMOD=0010 0000B定时器T1工作于方式2 SCON=0xc0; //SCON=1100 0000B串口工作在方式3 //SM2置0,不能使用多机通信 PCON=0x00; //PCON=0000 0000B波特率600 TH1=0xfd; //根据规定给定时器T1赋值 TL1=0xfd; TR1=1; //启动定时器1 while(1) { for(i=0;i14;i++) //模拟检测数据 { Send(table[i]); //发送机数据i dula=1; //发送机数码管选通 P0=table[i]; //送字型码 delay(1000); dula=0; Send(table[i+2]); //发送下个数据,发送机数据i+2 dula=1; //发送机数码管选通 P0=table[i+2]; //送字型码 delay(1000); dula=0; } } } 乙机程序: #includereg51.h #define uint unsigned int #define uchar unsigned char sbit p=PSW^0; sbit dula=P2^6; void delay(uint z) //延时程序 { uint x,y; for(x=z;x0;x--) for(y=110;y0;y--); } uchar Receive(void) { uchar dat; while(RI==0)

文档评论(0)

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

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

1亿VIP精品文档

相关文档