- 807
- 0
- 约1.76千字
- 约 6页
- 2017-02-08 发布于重庆
- 举报
双机通信实验报告
项目五 单片机间的双机通信
班级: 学号: 姓名:
一、任务目的
通过单片机之间的双机通信设计,进一步学习定时器的功能和编程应用,理解串行通信与并行通信两种通信方式的异同,掌握串行通信的重要指标:字符帧和波特率,初步了解MCS-51系列单片机串口的使用方法。
二、设计要求
本任务是简历一个简单的单片机串行口双机通信测试系统。系统中,发射与接收各用一套AT89C51单片机电路,称为甲机和乙机。编制程序,使甲,乙双方能够进行串行通信。要求将甲机内的多个数据(例发送给乙机,并在乙机的8个数码管上显示出来。
三、系统硬件电路设计
可分为最小系统、甲机发送、乙机接收显示三个单元电路,要求画出各部分电路图,写出工作原理。
最小系统:
甲机发送:
乙机接收显示:
显示部分的:
现实中的接线和显示:
四、软件设计
甲机的程序:
#include reg51.h
void main() //主函数
{unsigned char i;
unsigned char send[]={0x01,0x09,0x09,0x02,0x1,0x00,0x00,0x09}; //定义要发送的数据,数据为生日的八位数
TMOD=0x20; //定时器1工作于方式2
TL1=0xf4; //波特率为2400b/s
TH1=0xf4;
TR1=1;
SCON=0x40; //定义串行口工作方式1
for (i=0;i8;i++)
{SBUF=send[i]; //发送第i个数据
while(TI==0); //查询等待发送是否完成
TI=0; //发送完成,TI由软件清零
}
while(1);}
乙机的程序:
#include reg51.h
code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6D,0x7D,0x07,0x7f,0x6f}; //定义0~9显示字码型
unsigned char buffer[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //定义接收数据缓冲区
void disp(void); //显示函数声明
void main() //主函数
{unsigned char i;
TMOD=0x20; //定时器1工作于方式2
TL1=0xf4; //波特率定义
TH1=0xf4;
TR1=1;
SCON=0x40; //定义串行口工作方式1
for(i=0;i8;i++)
{
REN=1; //允许接收
while(RI==0); //查询等待接收标志位为1,表示接收到数据
buffer[i]=SBUF; //接收数据
RI=0; //RI由软件清零
}
for(;;) disp(); //显示接收数据
}
void disp()
{unsigned char i,j;
for(i=0;i8;i++)
{ P2=i;
P0=(tab[buffer[i]]); //送显示字码型,buffer[i]作为数组分量的下标
for(j=100;j5;j--); //显示延时
}}
五、系统调试
画proteus图,了解单片机最小系统,选用的元件有AT89C51,
编写程序。
编译程序并导入画好的proteus中,查看情况,调试。
在调试过程中,乙机上不能显后来请教了同学知道是程序出了问题,改好程序示出来了。
六、心得体会
经过这次练习,我对单片机的应用有了更深的认识了,知道了串行通信和并行通信之间的差别,也知道了串行通信分为单工、半双工和全双工三种制式。而我们这个实验中用的就是全双工的制式。我还学会了怎么设置波特率,也初步了解了串行口的工作方式。这次实验,对我了解单片机的功能有很大的帮助。
5
您可能关注的文档
最近下载
- 日鼎DHE-SF系列伺服简易说明书(201803).pdf
- 第05课 在和睦家庭中成长(复习讲义)(解析版)(全国通用)-2026年高考政治一轮复习讲练.docx VIP
- 陈仲刘事迹-江苏启东中学.pdf VIP
- 2026小学英语(人教PEP版)语法专题12 一般将来时 课件.pptx
- 妇保两癌筛查课件.pptx VIP
- 2026年高考思想政治一轮总复习考点规范练46在和睦家庭中成长.docx VIP
- GB50157-2013 地铁设计规范.docx
- 西南油气田分公司作业许可管理规定.docx VIP
- 发电厂电气部分课程设计参考资料 黄纯华 1987年.docx
- 2015年荐2015高考语文必背文言文120个实词集锦.doc VIP
原创力文档

文档评论(0)