《单片机原理及接口技术》实验指导书
- 格式:doc
- 大小:103.50 KB
- 文档页数:4
《单片机原理及接口技术》实验指导书
班级:08050541 学号:46 姓名:陈贵华
实验四 双机通讯
一、实验目的
熟悉单片机串行口工作原理;掌握通信程序设计的一般方法
二、实验内容
编写一个双机通信程序,一个作为主机,一个作为从机,串口都工作于方式2,主机发送一个数据,并用LED显示出发送数据的BCD码;从机接收到该数据后,同样用LED显示出接收数据的BCD码。
三、实验设备及仪器
PC兼容机,单片机开发板,两个系统组成一对收发设备
四、实验要求:
按照实验安排准时参加实验,按照实验步骤操作,仔细观察及记录实验过程及结果,回答实验相关问题,最终根据实验结果撰写实验指导书。
五、实验要点
1、注意主机和从机的波特率要设置得一致。
2、在调试时,注意断点的设置,在理解程序的基础上根据需要去设置断点。
六、实验步骤
1、连接两台单片机开发板的串行通信线,注意共地连接
2、设定A机为发送方
3、设定B机为接收方
4、设定双方接收与发送波特率
5、各自编制收发程序
6、发送数据调试
七、思考题:
如何利用实验系统上的资源实现多机通信?
多级通信时,应注意设SM2=1;和对各个从机地址进行设定,当各个从机几首到地址信息时,校检是否符合本机地址,符合则置SM2=0;
八、实验报告及要求
撰写实验报告。其内容应包括:
实验时间、实验名称,实验目的、实验要求、实验内容、实验过程、实验结果、思考题回答等。
《单片机原理及接口技术》实验指导书
如图:当主机按键按下时,x加1,并将x发送出去,同时将x送P1口显示,当x加到255后数据归零,从机接收到数据后送P1口显示。
程序如下:
///////*这个是主机程序,只发送数据,不接收数据*///////////
#include<reg51.h>
#define uchar unsigned char
uchar x=0,r=0;
void init(void)ﻩﻩﻩ
{ ﻩ
EA=1;EX1=1;ES=1; //开中断
SCON=0x80;ﻩ //方式2,11位异步收发,波特率固定Foc/64
}
void main()
{
ﻩinit();
P1=0x00;
ﻩwhile(1);
}
void INT1_zd(void) interrupt 2 ﻩ //外部中断1
{ﻩ
ﻩx++;
ﻩES=0; ﻩﻩﻩ
SBUF=x;
while(!TI);
TI=0;
ﻩES=1;
P1=x;
ﻩif(x==255) x=0;ﻩ
}
//从机,只接受数据 不给主机返回数
#include
#define uchar unsigned char
uchar a;
void main()
{
ﻩEA=1;ES=1;ﻩﻩ ﻩﻩ//开中断
SCON=0x90;
P1=0x00;
while(1);ﻩ 《单片机原理及接口技术》实验指导书
}
void ser() interrupt 4ﻩ//串口中断
{
RI=0;
a=SBUF;ﻩ
P1=a;ﻩ
}
Proteus连接图和部分仿真结果图如下:
《单片机原理及接口技术》实验指导书
注意事项:无论是双机通信还是多级通信,各个单片机之间必须共地,从机与主机串口线必须交叉连接,波特率必须严格一致,否则通信无法实现。