双机通讯实验报告.docx
- 文档编号:5538687
- 上传时间:2022-12-19
- 格式:DOCX
- 页数:11
- 大小:212.63KB
双机通讯实验报告.docx
《双机通讯实验报告.docx》由会员分享,可在线阅读,更多相关《双机通讯实验报告.docx(11页珍藏版)》请在冰豆网上搜索。
双机通讯实验报告
倍Xrft
单片机实验报告
(自动化15级)
实验名称:
串行通讯实验
一、实验目的
1.掌握单片机串行口工作方式;
2.掌握双机通讯的接口电路设计及程序设计。
二、实验设备
1.PC机;
2.单片机最小系统教学实验模块;
3.数码管显示模块
三、实验内容
1.双机通信
由两套单片机试验装置(两个实验小组)共同完成该实验。
我们U1为甲机,U2为乙机。
甲机发送本机(学生本人)学号后8位给乙机,乙机接收该8位数据,并显示在8位数码管上。
电路如图1所示。
要求串行通信方式为方式1,波特率为2400bit/s,不加倍,单片机外部晶振频率为
11.0592M。
图1双机通信原理示意图
8位发送回甲机,甲机显示在数
附加要求:
乙机接收完毕后,将本机(乙机)的学号后
码管上。
2.单片机与PC机通信
单片机向PC机发送数据。
单片机向PC机重复发送本机(学生本人)学号,发送波特率为1200,采用方式1,单片机外部晶振频率为11.0592M。
四、实验原理
4.1串行通讯的方式
在串行通讯中,有两种基本的通讯方式:
异步通讯,同步通讯。
异步串行通讯规定了字符数据的传送格式,既每个数据以相同的帧格式发送。
每个帧信
息由起始位、数据位、奇偶校验位和停止位组成。
本实验主要学习异步通讯的实现方法。
在异步通讯中,每一个字符要用起始位和停止位作为字符开始和结束的标志,以至占用
了时间。
所以在数据块传送时,为了提高通讯速度,常去掉这些标志,而采用同步通讯。
同步通讯不像异步通讯那样,靠起始位在每个字符数据开始时发送和接受同步。
而是通过同步
字符在每个数据块传送开始时使收/发双方同步。
按照通讯方式,又可将数据传输线路分成三种:
单工方式、半双工方式、全双工方式。
(1)单工方式
在单工方式下,通讯线的一端联接发送器,另一端联接接收器,它们形成单向联接,只允许数据按照一个固定的方向传送。
(2)半双工方式
在半双工方式下,系统中的每个通讯设备都由一个发送器和一个接收器组成,通过收发
开关接到通讯线路上,如图33-1所示。
在这种方式中,数据能从A站送到B站,也能从B站传送到A站,但是不能同时在二个方向上传送,即每次只能一个站发送,另一个站接收。
A?
i'«[讪||
图2半双工通讯方式
图33-1中的收发开关并不是实际的物理开关,而是由软件控制的电子开关,由通讯线两
端的半双工通讯协议进行功能切换。
(3)全双工(Full—duplex)方式
虽然半双工方式比单工方式灵活,但它的效率依然较低。
从发送方式切换到接收方式所
需的时间一般大约为数毫秒,这么长的时间延迟在对时间较敏感的交互式应用(例如远程检
测监视控制系统)中是无法容忍的。
重复线路切换所引起的延迟积累,正是半双工通信协议效率不高的主要原因。
半双工的这种缺点是可以避免的,而且方法很简单,即采用信道划分技术。
在图33-2
的全双工连接中,不是交替发送和接收,而是可同时发送和接收。
全双工通讯系统的每一端都包含发送器和接收器,数据可同时在两个方向上传送。
4.2单片机串行口工作方式
0;单片机串口还具有有3
在静态数码管显示实验中,我们熟悉了单片机串口工作方式种工作方式。
如下表所示:
方代1(01)
S-bitUART
波特率可变
力式2CIO)
9-bitLART
波特率l-"32fosc或1■■■61fo3c
方式3(1B
9-bitUART
波特率可变
这3种工作方式,均用于串行异步通讯。
在异步串行通讯的一个字节的传送中,必须包括了起始位(0)和停止位
(1)。
除此之外,方式1具有8位(1个字节)的数据位(低位在先),方式2、3则除这8位之外,还具有一个可编程的第9位,这个第9位编程通常被编程为奇偶校
验位。
我们将在下一个实验中用到它。
串口工作方式在特殊寄存器SCON中设置。
其中的SM0和SM1位确定了串口工作方式。
的串口工作模式;REN为允许接收位,本实验中因为双方都要进行接收,为1。
TB8和RB8这里暂不涉及。
利用以下语句来设置SCON:
MOVSCON,#50H
4.3波特率的设置
波特率是指串口通
通讯双方的速度必
在异步串口通讯中,一个很重要的工作就是进行串口波特率的设置。
讯中每秒传送的位数,单位为BPS,它反映了串行口通讯的速度;同时,须一致,才能够顺利进行通讯。
T1来提供发
T1进行相
在串口工作方式1、3中,传送波特率都是可变的。
单片机内部通过定时器送与接收缓存器的内部移位时钟。
也就是说,要确定串行通讯的波特率,必须对关设置。
51单片机系统对此时T1的设置有以下固定的规定:
(1)必须工作在定时器状态;
(2)必须工作在“位自动重载”工作模式;这必须在特殊寄存器TMOD中进行设置。
关于TMOD的详细内容,我们在实验十七已经
讲过。
可以利用以下语句来设置TMOD:
MOVTMOD,#20H
除了对TMOD的设置外,还必须设置定时器T1的定时值,也就是保存在TH1中的8位重载值。
这直接影响到波特率的大小:
它通过以下公式进行计算:
胁冰心它-竹珂聖閒)
其中的SMOD为特殊寄存器PCON的最高位。
当它置1时,可以将波特率增大1倍。
在双机通讯中,只要双方的波特率一致就能够完成通讯了;但是,在标准的异步通讯协
议中,只有几种波特是适用的。
例如1200bps,2400bps,4800bps,9600bps……等等。
而通过这个公式可以看出,并不是所有的晶振频率都能够得到准确的上述波特率。
比如
采用12MHz晶振,代入公式进行运算,就无法得到4800bps的准确波特率(TH1必须为小数
3.6864MHz、11.0592MHz
了)。
在这种情况下,过去人们都使用软件补偿的方法,尽量得到准确的波特率;而现在,市场上有很多通讯专用的晶振,例如3.6864MHz、11.0592MHz••…的晶振,都能够直接得
到准确的波特率。
因此在进行本实验时,必须使用通讯专用晶振(如果使用仿真器,则设置
为使用仿真头的外接晶振,并将11.0592M的晶振插入仿真头。
当波特率已经确定,就可以反向推导出TH1的取自大小,例如,在本次实验中,我们要
求波特率为4800bps,在晶振采用11.0592MHz的情况下,推出TH1=0F4H。
五、实验步骤
1.参考图1并进行电路设计,画出电路图,并用导线正确连接两套装置的单片机最小系统实验模块,并连接最小系统模块与数码管显示模块。
2.照实验要求编写程序流程图,然后编写程序,对编写的程序进行仿真调试,直至通讯成功。
六、实验报告
1.在该实验中,单片机串行口工作在什么工作方式下?
说明该工作方式的特点。
工作在工作方式1。
8位数据通讯,波特率可变。
2.波特率是什么?
怎样设置单片机串口通讯的波特率?
如果实验要求通讯波特率为4800bps,怎样修改程序?
特率是指串口通讯中每秒传送的位数,单位为BPS,它反映了串行口通讯的速度。
单片机内部通过定时器T1来提供发送与接收缓存器的内部移位时钟。
必须工作在定时器状
态;必须工作在“8位自动重载”工作模式。
2™7伽
32^12x(256-27/1)
3.详细说明本次实验采用的通讯协议。
乙机接收该8位数据,并显示在8位
8位发送回甲机,甲机显示在数码管
甲机发送本机(学生本人)学号后8位给乙机,
数码管上。
乙机接收完毕后,将本机(乙机)的学号后上。
4.给针对实验要求编写本机的程序流程图、程序清单并给予适当注释,并说明合作单片机(合作同学)。
这里有两个程序,一个是先接受,一个是先发送。
#inelude
voidsend(void);
voiddelay(unsignedinti);
ucharxuehao[8]={6,6,6,6,6,6,6};
voidmain(void){
init();send();while
(1);
voidinit(void)
{
TM0D=0x20;TH1=0xfd;TL1=0xfd;
SCON=0x50;
PCON=0x00;TR1=1;
}
voidsend(void)
{
uchari;
do
{
delay(200);SBUF=0xaa;while(TI==0);TI=0;while(RI==0);RI=0;
}while(SBUF!
=0xbb);
?
?
?
?
?
//
delay(80);
for(i=0;i<=7;i++)
{
SBUF=xuehao[i];while(TI==0);TI=0;delay(5);
}
SBUF=9;
delay(10);
///////////////////////////////////////////////////////////voiddelay(unsignedinti)
{
unsignedcharj;
for(;i>0;i--)for(j=0;j<125;j++)
{;}
}
#ineludevSTC12C5A60S2.h>#defineucharunsignedcharvoidinit(void);
voidreceive(void);
voiddelay(unsignedinti);
voiddisplay(ucharA,ucharB);voidduanxuan(ucharc);
ucharxuehao[8]={0};
voidmain(void)
{
init();receive();
while
(1)
{
display(1,xuehao[0]);delay(3);
P0=0x00;
display(2,xuehao[1]);delay(3);
P0=0x00;
display(3,xuehao[2]);delay(3);P0=0x00;
display(4,xuehao[3]);delay(3);
P0=0x00;
display(5,xuehao[4]);delay(3);
P0=0x00;display(6,xuehao[5]);delay(3);
P0=0x00;
display(7,xuehao[6]);
delay(3);
P0=0x00;
display(8,xuehao[7]);delay(3);
P0=0x00;
}
//
}
voidinit(void)
{
P0M1=0X00;
P0M0=0Xff;
P2M1=0x00;
P2M0=0xff;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SCON=0x50;
PCON=0x00;TR1=1;
}
voidreceive(void){
ucharenpty;
ucharj=0;
do
{
whi_e(R帀ho)rh9)whi_e(SBUF一Hoxa%SBUFHOXbb-whi_e(T_HHO)Q帀9
enpfyusBUFWwh=e(R一hho)rh0
=22
dpayuor
目〒0〒H7j++)宀
xuehao曰hsburwh=e(R帀ho)rh0
三三三三三三三三三三三一三三疗疗一三三三三三三三三三三三三三三三三_
voiddisp-ay(ucha「AucharB)
宀
ucharcodeinfou2〒>{0xc0』0xf9』0xa4』0xb0』0x99』0x92』0x82』0xf8』0x80』0x9p
=
oxfh
oxbf}、
duanxuan(A)八swifch(B)宀
casep
POH〜info巨一break八case1-
POH〜infoukbreak八case2
p?
〜infoEbreak八case3
POH〜infoNkbreak八casea
p?
〜infoHkbreak八case5
POH〜info⑨break八case5
P0=~info[6];break;
case7:
P0=~info[7];break;
case8:
P0=~info[8];break;
case9:
P0=~info[9];break;
case10:
P0=~info[10];break;
case11:
P0=~info[11];break;
}
voidduanxuan(ucharc)
{
switch(c)
{
case1:
P2=0x01;break;
case2:
P2=0x02;break;
case3:
P2=0x04;break;
case4:
P2=0x08;break;
case5:
P2=0x10;break;
case6:
P2=0x20;break;
case7:
P2=0x40;break;
case8:
P2=0x80;break;
default:
break;
/////////////////////////////////////////////////////////////////////////////////////////////voiddelay(unsignedinti)
{
unsignedcharj;for(;i>0;i--)for(j=0;jv125;j++){;}
}
5.实验心得。
(必须)
000000000000000000000000
6•附能说明实验原理的实验照片。
(必须)
RE3^TnrsruijULM?
m?
il?
M|
t.mi一I赛聘9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 双机 通讯 实验 报告