学 院
单片机原理及应用 实验报告
专业班级
实验日期
姓 名
学 号
实验名称
UART 串口收发双向通信
指导教师
(报告内容包括实验目的、实验设备及器材、实验内容和要求、实验步骤、实验小结等)
一、 实验目的
1、 熟悉 89C52 全双工异步串行通信方式;
2、 熟悉 SCON、PCON 设置方法及其对串口的控制作用;
3、 熟悉串口初始化程序、及收发程序的写法。
4、 掌握串口调试助手的使用方法。
二、 实验内容及原理
1、 USB 转串口模块
成
绩
图 1 USB 转串口电路
USB 接口数据通过 CH340G 转换为 TTL 连接至单片机异步串行口 P3.0(RXD)
和 P3.1(TXD)
2、 与串口通信有关的 SFR
SCON(98H)
PCON(87H)
3、T1 方式 2 常用于串口波特率发生器,与 T1 有关的 SFR
TMOD(89H)
TCON(88H)
4、主频 fosc、波特率、计数器初值 N 之间的关系:
波特率=2
SMOD
×T1 溢出率/32
T1 溢出率=f
osc
/[12*(2
n
-N)]
所以,T1 工作在方式 2 时:
2
8
-N=2
SMOD
*f
osc
/(32*12)
5、串口通信可以工作在查询方式,也可以工作在中断方式。与串口中断有
关的中断允许控制寄存器 IE:
三、 实验要求
1、编写程序实现以下功能:
1) 单片机与计算机之间串行异步通信,波特率 9600bps。串口工作方式 3,
偶校验。定时器 1 工作方式 2,作为串口波特率发生器。
2) 甲机发送字符串:甲机每按下一次独立按键 S2 键,松开后均会向串口
发送字符串“HELLO”;
3) 当乙机接收到甲机发过来的字符串“HELLO”时,若校验正确则回送字
符串“HI”,同时将收到的字符串 HELLO 用数码管显示;若校验错误,
回送“NO”。
4) 甲机收到乙机的回送字符串 HI 或 NO 后,用数码管显示。
2、用 USB 转串口方式连接计算机与单片机开发板;
3、调试、编译并下载程序,用串口助手调试并验证程序执行结果。
四、 实验步骤
1、 实验所用硬件原理图如下:
2、
根据波特率、单片机时钟频率,及工作方式,计算 SMOD 及 T1 初值 N:
SMOD= 0xd0
N=0xFD
3、 设置串口波特率步骤:
(1) 写 TMOD,设置定时器 T1 的工作方式;
(2) TH1、TL1 赋值,设置 T1 初值;
(3) TR=1,启动 T1,即启动波特率发生器。
4、 串口收/发过程:
(1) 串口初始化:设置串口工作方式(帧格式)、设置 T1 工作方式、
设置波特率(传输速率)、启动波特率发生器。
若以中断方式传输,则开 ES 和 EA,若以查询方式传输无需开中断。
初始化程序如下:
TMOD=0x20; //T1 工作在方式 2
TH1=0xFD; //T1 初值
TL1=0xFD;
TR1=1; //启动 T1
PCON=0x00; //SMOD=0,波特率不翻倍
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
DULA
D0
D1
D2
D3
D4
D5
D6
D7
WELA
DULA
WELA
P3.4
P3.5
P3.6
P3.7
P3.0 P3.0
P3.1
P3.2
P3.3
P3.4 P3.1
P3.5
P3.6
P3.7
P3.2
P3.4
P3.5
P3.6
P3.7
beep
beep
XTAL2
18
XTAL1
19
ALE
30
EA
31
PSEN
29
RST
9
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6
33
P0.7/AD7
32
P2.7/A15
28
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT1
13
P3.4/T0
14
P3.7/RD
17
P3.6/WR
16
P3.5/T1
15
U1
80C51
D0
2
D1
3
D2
4
D3
5
D4
6
D5
7
D6
8
D7
9
Q0
19
Q1
18
Q2
17
Q3
16
Q4
15
Q5
14
Q6
13
Q7
12
LE
11
OE
1
U2
74HC573
D0
2
D1
3
D2
4
D3
5
D4
6
D5
7
D6
8
D7
9
Q0
19
Q1
18
Q2
17
Q3
16
Q4
15
Q5
14
Q6
13
Q7
12
LE
11
OE
1
U3
74HC573
2
3
4
5
6
7
8
9
1
RP1
300
S2
S3
S4
S5
Q1
PNP
R1
2k
beep
BUZ1
BUZZER
Q1(C)
SCON=0xd0; //串口工作在方式 3,允许接收
(2) 发送数据/接收数据,即读写 SBUF;
(3) 判断一帧是否发送完毕,即判断 TI 是否为 1。接收时检测 RI 标志;
(4) TI/RI 清零;
(5) 跳转到(2),收/发下一帧数据。
5、 编写流程图及实验程序。
(流程图附下图,实验程序以电子文档提交);
3、串行方式连接单片机与计算机;
4、下载程序
5、在串口助手设置:打开串口、设置相应的串口号( )、波特率(9600)、
校验方式(偶校验)、停止位(1)。
6、按下松开开发板 S2,在串口助手接收区以字符方式接收并验证收到的数
据。
7、在串口助手发送区以 16 进制数形式发送 1 字节,如 55H、80H、01H 等,
然后按下并松开 S3,观察开发板 8 位 LED 是否为对应的数据。