资源描述
8串行通信
一、判断题
( )1、串行口数据缓冲器SBUF是可以直接寻址的专用寄存器
( )2、特殊功能寄存器SCON与定时器/计数器的控制无关
( )3、串行口的发送中断与接收中断各自有自己的中断入口地址
( )4、TI是串行口发送中断标志, RI是串行口接收中断标志
( )5、要进行多机通信,MCS-51串行接口的工作方式应为方式1
( )6.串行口的中断,CPU响应中断后,必须在中断服务程序中,用软件清除相应的中断标志位,以撤 消中断请求。
( )7.串行口数据缓冲器SBUF是物理上独立的两个专用寄存器。
( )8、串行口的方式2的波特率为FOSC/12
( )9、80C51单片机中的TXD为接收串行口
( )10、半双工是指数据可以同时进行双向传输
二、填空题
1、计算机的数据传送有两种方式,即: 方式和 方式,其中具有成本低特点的是
数据传送。
2、异步串行数据通信的桢格式由 位, 位, 位和 位组成。
3、异步串行数据通信有 , 和 共三种数据通路形式。
4、单片机串行通信时,其波特率分为 和 两种方式,在波特率可变的方式中,可采用 的 来设定和计算波特率 。固定 可变 溢出率
5、串行口方式2接收到的第9位数据送 寄存器的 位中保存
6、RS-232定义了 、 之间的物理接口。(数据终端设备(DTE)、 数据通信设备(DCE))
7、串行通信的的错误校验的方法有 、 、
8、方式0时,串行接口为 寄存器的输入输出方式,主要用于扩展 输入或输出接口
9、在串行通信中 和 的波特率是固定的,而 和 的波特率是可变的。
10、使用定时器 / 记数器 1设置串行通信的波特率时,应把定时器 /计数器 1设定为工作方式 ,即 方式。
三、单项选择题
1.MSC-51单片机的串行口是
A.单工 B.半双工 C.全双工
2.下列关于MCS-51串行口说法不正确的是
A.能同时进行串行发送和接受
B.它可以作为异步串行通信使用,也可以作同步移位寄存器用
C.利用串行口可以实现8051单片机点对点的单机、多机通信
D.串行口的波特率是固定的
3.MCS—51单片机串行口发送/接收中断源的工作过程是:当串行口接收或发送完一帧数据时,将SCON中的 ,向CPU申请中断。
A.RI或TI置1 B.RI或TI置0 C.RI置1或TI置0 D.RI置0或TI置1
4.MCS—51的串行口工作方式中适合多机通信的是 。
A.方式0 B.方式3 C.方式1 D.方式2
5.MCS—51单片机串行口接收数据的次序是下述的顺序 。
(1)接收完一帧数据后,硬件自动将SCON的R1置1 (2)用软件将RI清零
(3)接收到的数据由SBUF读出 (4)置SCON的REN为1,外部数据由RXD(P3.0)输入
A.(1)(2)(3)(4) B.(4)(1)(2)(3)
C.(4)(3)(1)(2) D.(3)(4)(1)(2)
6.MCS—51单片机串行口发送数据的次序是下述的顺序
(1)待发送数据送SBUF (2)硬件自动将SCON的TI置1
(3)经TXD(P3.1)串行发送一帧数据完毕 (4)用软件将TI清0
A.(1)(3)(2)(4) B.(1)(2)(3)(4)
C.(4)(3)(1)(2) D.(3)(4)(1)(2)
7.8051单片机串行口用工作方式0时,
A.数据从RDX串行输入,从TXD串行输出 B.数据从RDX串行输出,从TXD串行输入
C.数据从RDX串行输入或输出,同步信号从TXD输出
D.数据从TXD串行输入或输出,同步信号从RXD输出
8、串行通信的传送速率单位是波特,而波特的单位是
A.字符/秒 B.位/秒 C.桢/秒 D.桢/分
9.执行MOV SCON,#00H后,串行口工作方式设置为
A.方式0 B.方式1 C.方式2 D.方式3
10、串行口的控制寄存器SCON中,REN的作用是
A.接收中断请求标志位 B.发送中断请求标志位
C.串行口允许接收位 D.地址/数据位
11.帧格式为1个起始位、8个数据位和1个停止位的异步串行通信方式是
(A)方式0 (B)方式1 (C)方式2 (D)方式3
12.以下所列特点中,不属于串行工作方式2的是
(A)11位帧格式 (B)有第9数据位
(C)使用一种固定的波特率 (D)使用两种固定的波特率
四、问答题
1、简述80C51单片机串行通信时在方式1下发送数据的过程。
2.RS-232C 和RS-485 的信号逻辑电平各是什么?在与80C51 单片机通信时,中间是否都要加装逻辑电平转换芯片?
3、80C51单片机串行口有几种工作方式?由什么寄存器决定?
五、编写程序
1.甲机将片内RAM30H开始的10个字节,以波特率为9600b/s发送给乙机,存于乙机片内RAM40H开始的单元,设晶振频率为11。0592MHz
一、判断题
1-5 √√X√X 6-10√√XXX
二、填空题
1、串行 并行 串行
2、起始, 数据, 奇偶校验 停止
3、单工 半双工 全双工
4、固定 可变 溢出率
5、SCON RB8
6、数据终端设备(DTE)、 数据通信设备(DCE)
7、奇偶校验 、 代码和校验、 循环冗余码校验
8、同步移位 并行
9、方式0 方式2 方式1 方式3
10、 2 自动从新加载
三、单项选择题
1-5 CDA(BD)B 6-10 ACBAC 11-12 BC
四、问答题
1、简述80C51单片机串行通信时在方式1下发送数据的过程。
数据发送是由一条写发送寄存器(SBUF)指令开始的。随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TXD端串行输出。一个字符帧发送完后,使TXD输出线维持在1(SPACE)状态下,并将SCON寄存器的TI置1,通知CPU可以发送下一个字符。
2.RS-232C 和RS-485 的信号逻辑电平各是什么?在与80C51 单片机通信时,中间是否都要加装逻辑电平转换芯片?
RS-232C采用负逻辑电平,规定:DC(-3—-15V)逻辑1,DC(+3—+15)为逻辑0,-3—+3过渡区
与TTL和 MOS电平不兼容,为了兼容需要外加电平转换电路
RS-485采用两线间的电压来表示逻辑1和逻辑0
与单片机通信时候可以通过MAX485来完成TTL/RS-485的电平转换
3、80C51单片机串行口有几种工作方式?由什么寄存器决定?
答: 有4种工作方式 由串行口控制寄存器SCON中的 SM0、SM1设置
SM0 、SM1 工作方式
00 0
01 1
10 2
11 3
五、编写程序
1、甲机将片内RAM30H开始的10个字节,以波特率为9600b/s发送给乙机,存于乙机片内RAM40H开始的单元,设晶振频率为11。0592MHz如图所示,
答:甲、乙机的波特率都设置成 9600b/s
选择定时器T1 定时功能,方式2
初值计算:
9600=1/T1定时时间*1/32
T1定时时间=1/9600*32S
初值=253 =0FDH
程序:甲机程序
#include “stc12c5a.h”
unsigned char ADDRT[10]_at_0x30; //在RAM区定义10个单元
unsigned char num=0; //声明计数变量
unsigned char *psend; //指向发送数据区的指针
void main (void) //主程序
{
SCON=0x40; //置串行口工作方式1
TMOD=0x20; //定时器1为工作方式2
TH1=0xFD; //产生9600bps的时间常数
TL1=0xFD;
TR1=1; //启动定时器1
ES=1; //串行口开中断
EA=1; //开中断
psend=ADDRT; //设置发送数据缓冲区指针
SBUF=*psend; //发送第一个数据
while(1); //等待中断
}
void UART_ISR(void) interrupt 4 //中断号4是串行中断
{
TI = 0; //清发送中断标志
num++; //修改计数变量值
if(num==0x0a) ES=0; //判断是否发送完,若已完,则关中断
else //否则,修改指针,发送下一个数据
{
psend++;
SBUF=*psend;
}
}
乙机接收程序
#include “stc12c5a.h” //包含STC12C5A60S2单片机寄存器定义文件
unsigned char ADDRr[10]_at_0x40; //在RAM区定义10个单元
unsigned char num=0; //声明计数变量
unsigned char *prec; //指向发送数据区的指针
void main (void) //主程序
{
SCON=0x60; //置串行口工作方式1
TMOD=0x20; //定时器1为工作方式2
TH1=0xFD; //产生9600bps的时间常数
TL1=0xFD;
TR1=1; //启动定时器1
ES=1; //串行口开中断
EA=1; //开中断
prec=ADDRT; //设置接收数据缓冲区指针
while(1); //等待中断
}
void UART_ISR(void) interrupt 4 //中断号4是串行中断
{
RI = 0; //清发送中断标志
num++; //修改计数变量值
if(num==0x0a) ES=0; //判断是否发送完,若已完,则关中断
else //否则,修改指针,发送下一个数据
{
prec++;
*prec= SBUF;
}
}
展开阅读全文