PC机与单片机串行通信(RS232协议)
一、实验目录:
(1)单片机用口通信的应用
(2) PC控制单片机IO 口输出
(3)单片机控制实训指导及综合应用实例
(4)单片机给计算机发送数据:
二、实验任务:
单片机串口通信的
87H
SCON:用行口控制寄存器
SCO
N
SMO
SMI
5毗
REV
TBB
RHtt
TI
RI
9HH
SM
0
SMI
方式
说 明
波特率(bps)
0
0
0
同步移位寄存器
fosc/ 12
0
1
]
IQ位异步收发
皿通飞伽X (TI解曲率/3Z)
I
0
2
11位异步收发
Buud 2^SMODXiose/f54
1
1
3
U位界中收发
lliiud 2'SMODX (Tl 溢出率,T2)
波特率(bps):每秒钟传输的位数。
方式1、3必须借助于T1; 10位通信:1位起始位(0)+8位数据位+ 1位停止位(1); T1溢出率=1 /
T1定时时间
SM2:多机通信使能控制位(方式2, 3);
REN ( Receive EnablR串行接收允许位;
TB8 (Transmit Bit 8)在方式2、3中,将被发送数据的第9位(奇偶校验位等);
RB8 (Receive Bit 8—第 9 位)
TI、RI发送/接收结束标志位,软件(手工)清零
方式0:移位寄存器输入/输出方式。数据通过RXD输入/输出,TXD输出移位脉冲CP。 该方式下,收发数据为8位,低位在前。波特率固定(fosc/12)。
方式1: 10位异步方式。10位=1位起始位(0)+8位数据位+1位停止位(1)。其中起始位 和停止位在发送时自动插入。发送: SBUF=a;发送条件:TI=0,发送完TI=1。接收:b
= SBUF;接收条件:SCON中的REN=l; RI=0; SM2 = 0或接收到的停止位为l。本次接 收有效,将接收到的8位数据装入SBUF中,并将停止位(1)装入RB8中;否则放弃接收 结果。发送与接收结束标志必须手工清 0: TI=0; RI = 0;方式1的波特率可变,计算公式: Baud=2ASMOD X (T1 的溢出率)/32。
方式2、3:相同:都是11位异步方式。11位=1位起始位(0)+9位数据位+1位停止位(1)。 其中第9位数据放在TB8、RB8中,发送前可通过软件对 TB8赋值(奇偶校验位等)。
它们的操作过程完全一样。不同:波特率可变否。方式 2Baud=2ASMODXfosc/64;方 式3Baud=2ASMOD X (T1溢出率/32)。发送:SBUF = a;第9位数据(TB8)输出之后,置位 TI = 1。接收:b=SBUF;接收前提:REN=1;接收到第9位数据后,如果同时满足:(1)RI =0; (2)SM2 = 0或接收到的第9位为1,则将已接收的数据装入 SBUF和RB8,并置位RI; 如果条件不满足,则接收无效。
8051第9位可作为数据的奇偶校验位、多机通信中的地址、数据标志位等。
(10)串口操作步骤
.
设置用行口工作方式控制
设曾用门逋信波特率t ri(TWOI). TH], TL1. ETk EA、TRI , FCON):
串口中断使能(ES, EA)*同体我喘如下:
U)设置帚行口工作方式控制
"11位述将事可变的# 方通■方H方
SMU
SM1
SW
REN
TBK
TI
EU
(HDIOOOO)
(2)倡助71的使化通伸波特罕tTHOL)
SMOD
—
—
—
—
—
一
flTH
TMOD
GATE
C/T#
Ml
uo
MTE
C/Ttt
Ml
MO
H9H
C语言源程序
#include "" //包函8051内部资源的定义
unsigned char dat; //用于存储单片机接收发送缓冲寄存器 SBUF里面的内容
sbit gewei=P2A4; //个位选通定义
sbit shiwei=P2A5; //十位选通定义
sbit baiwei=P2A6; 〃百位选通定义
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--;
PC机与单片机串行通信RS232协议 来自淘豆网m.daumloan.com转载请标明出处.