没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
12页
目录: 1、单片机串口通信的应用 2、PC控制单片机IO口输出 3、单片机控制实训指导及综合应用实例 4、单片机给计算机发送数据: [实验任务] 单片机串口通信的应用,通过串口,我们的个人电脑和单片机系统进行通信。 个人电脑作为上位机,向下位机单片机系统发送十六进制或者ASCLL码,单片机 系统接收后,用LED显示接收到的数据和向上位机发回原样数据。 [硬件电路图]
资源推荐
资源详情
资源评论
PC 机与单片机通信(RS232 协议)
目录:
1、单片机串口通信的应用
2、PC 控制单片机 IO 口输出
3、单片机控制实训指导及综合应用实例
4、单片机给计算机发送数据:
[实验任务]
单片机串口通信的应用,通过串口,我们的个人电脑和单片机系统进行通信。
个人电脑作为上位机,向下位机单片机系统发送十六进制或者 ASCLL 码,单片机
系统接收后,用 LED 显示接收到的数据和向上位机发回原样数据。
[硬件电路图]
[实验原理]
RS-232 是美国电子工业协会正式公布的串行总线标准,也是目前最常用的串
行接口标准,用来实现计算机与计算机之间、计算机与外设之间的数据通讯。
RS-232 串行接口总线适用于:设备之间的通讯距离不大于 15m,传输速率最大为
20kBps。RS-232 协议以-5V-15V 表示逻辑 1;以+5V-15V 表示逻辑 0。 我们是
用 MAX232 芯片将 RS232 电平转换为 TTL 电平的。 一个完整的 RS-232 接口有 22
根线,采用标准的 25 芯插头座。我们在 这里使用的是简化的 9 芯插头座。
注意我们在这里使用的晶振是 11.0592M 的,而不是 12M。因为波特率的设置
需要 11.0592M 的。
“串口调试助手 V2.1.exe” 软件的使用很简单,只要将串口选择‘CMO1’波
特率设置为‘9600’ 数据位为 8 位。打开串口(如果关闭)。然后在发送区里
输入要发送的数据,单击手动发送就将数据发送出去了。注意,如果选中‘十六
进制发送’那么发送的数据是十六进制的,必须输入两位数据。如果没有选中,
则发送的是 ASCLL 码,那么单片机控制的数码管将显示 ASCLL 码值。
数字
二进制
Px0~Px7
Abcdefg p
十六进制
0
00111111
00000011
11111100
0xco
1
00000110
10011111
01100000
0xf9
2
01011011
00100101
11011010
0xa4
3
01001111
00001101
11110010
0xb0
4
00110110
10010011
01101100
0x99
5
01101101
01001001
10110110
0x92
6
01111101
01000001
10111110
0x82
7
00000111
00011111
11100000
0xf8
8
01111111
00000001
11111110
0x80
9
01101111
00001001
11110110
0x90
A
01110111
00010001
11101110
0x88
B
01111100
11000001
00111110
0x83
C
00111001
01100011
10011100
0xc6
D
01011110
10000101
01111010
0xa1
E
01111001
01100001
10011110
0x86
F
01110001
01110001
10001110
0x8e
ASCII 常用代码表
字符
代码
字符
代码
字符
代码
字符
代码
字符
32
52
4
72
H
92
\
112
p
33
!
53
5
73
I
93
]
113
q
34
”
54
6
74
J
94
^
114
r
35
#
55
7
75
K
95
_
115
s
36
$
56
8
76
L
96
`
116
t
37
%
57
9
77
M
97
a
117
u
38
&
58
:
78
N
98
b
118
v
39
’
59
;
79
O
99
c
119
w
40
(
60
<
80
P
100
d
120
x
41
)
61
=
81
Q
101
e
121
y
42
*
62
>
82
R
102
f
122
z
43
+
63
?
83
S
103
g
123
{
44
,
64
@
84
T
104
h
124
|
45
-
65
A
85
U
105
i
125
}
46
.
66
B
86
V
106
j
126
~
47
/
67
C
87
W
107
k
48
0
68
D
88
X
108
l
49
1
69
E
89
Y
109
m
50
2
70
F
90
Z
110
n
51
3
71
G
91
[
111
o
[C 语言源程序]
#include "reg52.h" //包函 8051 内部资源的定义
unsigned char dat; //用于存储单片机接收发送缓冲寄存器 SBUF 里面的内容
sbit gewei=P2^4; //个位选通定义
sbit shiwei=P2^5; //十位选通定义
sbit baiwei=P2^6; //百位选通定义
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; //1~10
void Delay(unsigned int tc) //延时程序
{
while( tc != 0 )
{unsigned int i;
for(i=0; i<100; i++);
tc--;}
}
void LED() //LED 显示接收到的数据(十进制)
{
gewei=0; P0=table[dat%10]; Delay(10); gewei=1;
shiwei=0; P0=table[dat/10]; Delay(10); shiwei=1;
baiwei=0; P0=table[dat/100]; Delay(10); baiwei=1;
}
///////功能:串口初始化,波特率 9600,方式 1/////////
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
/////主程序功能:实现接收数据并把接收到的数据原样发送回去///////
void main()
{
Init_Com();//串口初始化
while(1)
{
if ( RI ) //扫描判断是否接收到数据,
{
dat = SBUF; //接收数据 SBUF 赋与 dat
RI=0; //RI 清零。
SBUF = dat; //在原样把数据发送回去(接收数据为发送数据的 ASCII 码,如发送 q 显示为 113)
剩余11页未读,继续阅读
资源评论
悠闲饭团
- 粉丝: 150
- 资源: 3301
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功