单片机应用技术——基于STC15系列单片机 习题及答案 项目5习题答案.doc
项目5习题答案
单选题
设串行异步通信的数据格式是:1个起始位,7个数据位,1个校验位,1个停止位,若传输率为1200,则每秒钟传输的最大字符数为(C)。
(A)10个(B)110个(C)120个(D)240个
2.在数据传输率相同的情况下,同步字符传输的速度要高于异步字符传输,其原
因是(D)。
字符间无间隔(B)双方通信同步
发生错误的概率少(D)附加的辅助信息总量少
3.异步串行通信中,收发双方必须保持(C)。
(A)收发时钟相同(B)停止位相同
(C)数据格式和波特率相同(D)以上都正确
4.在数据传输率相同的情况下,同步传输率高于异步传输速率的原因是(A)
(A)附加的冗余信息量少(B)发生错误的概率小
(C)字符或组成传送,间隔少(D)由于采用CRC循环码校验
5.在异步通信方式中,通常采用(B)来校验错误。
(A)循环冗余校验码(B)奇、偶校验码
(C)海明校验码(D)多种校验方式的组合
二、简答题
1.STC15单片机的串行口有几种工作方式?各有什么特点?
答:STC15单片机的串行口共有?4种工作方式?,特点如下:
?方式0?(同步移位寄存器模式)
?同步通信?,用于扩展I/O(如连接74HC164等移位寄存器)?
?数据格式?:8位数据,无起始/停止位?
?波特率固定?:一般为系统时钟的1/12(如fosc/12)?
?方式1?(8位UART模式)
?异步通信?,最常用模式?
?数据格式?:10位(1起始位+8数据位+1停止位)?
?波特率可变?:由定时器T1或T2控制?
?方式2?(9位UART模式)
?异步通信?,支持多机通信?
?数据格式?:11位(1起始位+8数据位+1可编程位+1停止位)?
?波特率固定?:系统时钟的1/32或1/64(如fosc/32或fosc/64)?
?方式3?(9位UART可变波特率模式)
?异步通信?,功能与方式2类似,但波特率可变?
?数据格式?:同方式2(11位)?
?波特率由定时器控制?:与方式1相同(通过T1/T2设定)?
设单片机串行口工作于方式3,每分钟传送3600个字符,计算其波特率。
答:波特率为660bps
设A、B两台单片机的串口工作于方式1,波特率为4800,A机发送数据0X00、0X01、0X02……0X1F,B机接收后存放到片内RAM地址为0X40开始的单元中,试用查询方式编写A、B两机的程序。
答:
?A机发送程序(查询方式):
#includeREG51.H
voidUART_Init(){
SCON=0x50;//串口方式1,允许接收(对发送方非必须)
TMOD|=0x20;//定时器1工作方式2(8位自动重装)
TH1=0xFA;//波特率4800(假设fosc=11.0592MHz,SMOD=0)
TL1=0xFA;
TR1=1;//启动定时器1
}
voidmain(){
unsignedchari;
UART_Init();
for(i=0;i=0x1F;i++){//发送0x00~0x1F共32个字节
SBUF=i;//写入发送缓冲区
while(!TI);//等待发送完成
TI=0;//清除发送中断标志
}
while(1);//发送完成后停止
}
?B机接收程序(查询方式):
#includeREG51.H
voidUART_Init(){
SCON=0x50;//串口方式1,允许接收
TMOD|=0x20;//定时器1工作方式2
TH1=0xFA;//波特率4800(与A机一致)
TL1=0xFA;
TR1=1;//启动定时器1
}
voidmain(){
unsignedchar*ptr=0x40;//数据存储起始地址
unsi