当前位置:文档之家› 双单片机串口通信原理程序

双单片机串口通信原理程序

一、实验目的
掌握单片机串口通信的设计方法,了解双单片机通信的原理。

二、实验内容(含程序)
编写发送方和接受方单片机程序,让发送方单片机向接受方单片
机循环发送几个两位十六进制数,并将发送的数显示在发送方和接受方的数码管上,要求串行口采用方式1进行通信,选用定时器T1作为波特率发生器,T1工作方式2,通信的波特率位9600。

硬件连接:
发送发程序:
#include<reg51.h>
#define uint unsigned int
uchar
//要发送的数据table[]={0xaa,0xB5,0xdd,0xa8,0xba,0xcc,0xf4,0xb0};
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uchar i=0;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SM0=0;
SM1=1;
TR1=1;
EA=1;
ES=1;
while(1)
{
SBUF=table[i];
P1=table[i]; while(!TI);
TI=0;
i++;
if(i==8) i=0; delay(800);
}
接收方程序:
#include <reg51.h>
#define uchar unsigned char uchar a;
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
REN=1;
TR1=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
while(1);
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
P1=a;
}
三、实验结果及分析
本实验需要完成两个程序,发送方和接受方的,但是并没有要求
加入奇偶校验,因此难度不大,从实验结果可以明显看出,当发送方 数码管显示要发送的数值时,接受方数码管也几乎同时显示出此数 鸠送方单片矶
'・・・
■ B !■

■ ■ ■ !■ B ■
■ r n B ■
■ ■ !• B ■■
■ ■!■■!!■
■ ■ B B ■■
■ ■ ■ E !■
■ ■ ■ I! K B ■
■ ■
!■ ・・
駆方单删- ...............................
值,证明接受无误, 实验结果正确
F5FT
LE
FT
H .WTJ
nsm •孑
环俺 P 1 n'fTT
■ in' "Hi
-12
n
RT
pm-vwi
py 刚丘 Pn J .H .I ^
PDL-t'AD# POK H .!: pn H 'H I *=
PS ,沁令
Ff JT/ill P2LMi2 卩时E PZ^I H
FlDRXIb
PlVTMXi P3
JlffTT
rz IMT ■
i*5L4TFE
PM5T1
FJisiWl pjjrTF
J*.TWOf i
............... .. '中耳- ............ ..................
:
拖战方申片林
>i > i > i a i ”・・ h a > ■ a .i a ■ a >i > i
iXTALl
-:XTAL1
WAL2
RET
P3EN ALH
P1D
P1IJ 訂_2 F13 PL*
F1>
P1£ P1J
* I 毁 L I
XTMLZ
REFT
PSI=N
ALE
p 口
FQ.WIil PCI 2iT^Z
*U_k M .JJ
P 口. W
•口 M 崎
FO.TW.^ PZUA3 任q

PZ3*Aig [PUA11 ".
站H
F25TA13
PZ J HAU
F37W15
IN3+S 6TW
PtlD P1.1 FK2 F1^ Pl-4 Flf PU J S Fl J
FQXTABia
[PCI JZADZ
fOJADa
PCI
.MD*
ruwufr
F[] .ract PZJCVAS


P2JTA1O P2XA11 F2.^A12
P2iA13
F2.^A1<
P2.^A15
psnflxfr
[Pl.TTXB *3-2IITO
Fl^ilHTl
pz*rrai
Fasrri
P3J&CTO Firfflf
F2.1M
■口皿" PdSXLS
KT A U
口 33 r JliT^D
陀片陀
HE
"3-
两个单片机都使用串口方式1 进行通信,并且必须保证两单片机
通信波特率完全一致,否则接受不到正确的数。

在发送数据时,向
SBUF中写入一个数据后,使用“while (! TI);等待是否发送完毕,因为当发送完毕后,TI 被硬件置1,然后才退出“ while(!TI );”接下来在将TI 手动清零,同理,在接受数据时,在中断服务程序中也需要将接受中断标志位RI 置零。

相关主题