《单片机控制技术项目式教程(第2版)》习题答案 - 王璇 项目8--11.docx
《单片机控制技术项目式教程(第2版)》习题答案
项目8知识思考与项目训练答案
选择题:
1.B2.A3.D4.A5.A6.C7.B8.A
(二)填空题:
1.并行通信,串行通信
2.起始位,数据位,奇偶效验位,停止位
3.TXD,RXD
4.SBUF
5.RXD
6.电平转换
(三)简答题:
什么是串行通信?它有哪些特点?有哪几种帧格式?
答:串行通信是组成数据的所有位通过一条数据线一位一位地传送的通信方式。其突出优点是只需一对传送线,大大降低了传送成本;其缺点是传送速度相对较慢。串行通信适用于远距离通信。字符帧也称数据帧,由起始位、数据位、奇偶校验位和停止位等4部分组成,分为无空闲字符帧和有空闲字符帧。
51单片机的串行口由哪些功能部件组成?各有什么作用?
答:51单片机的串行口由特殊功能寄行器SBUF、SCON、PCON组成。SBUF是51单片机内部的接收、发送缓冲器;SCON用来控制串行口的工作方式和状态;PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器。
51单片机串行口有几种工作方式?各工作方式的波特率如何确定?
答:51单片机的串行口有4种工作方式,分别是方式0、方式1、方式2和方式3,这些工作方式由SCON中的SM0、SM1两位编码决定。
工作方式
帧格式
波特率
方式0
8位全是数据位,没有起始位、停止位
固定,每个机器周期传送一位数据
方式1
10位,其中1位起始位,8位数据位,1位停止位
不固定,取决于T1溢出率和SMOD
方式2
11位,其中1位起始位,9位数据位,1位停止位
固定,即2SMOD×fosc/64
方式3
同方式2
同方式1
若晶振频率为fosc=11.0592MHz,采用串行口工作方式1,波特率为4800b/s,计算出用T1作为波特率发生器的方式字和计数初值。
答:T1采用方式2,TMOD=0x20
SMOD=0
初值Ⅹ=256-2SMOD/32×fosc/(12×波特率)
=256-20/32×11.0592×106/(12×4800)
=250
=0xFA
所以初值为0xFA
(四)项目训练:
1.设fosc=11.0592MHz,试编写一段程序,对串口初始化,使之工作于方式l,波特率为1200b/s,用查询串行口状态的方法读出接收缓冲器的数据并回送到发送缓冲器。
解:T1采用方式2,TMOD=0x20
SMOD=0
初值Ⅹ=256-2SMOD/32×fosc/(12×波特率)
=256-20/32×11.0592×106/(12×1200)
=232=0xE8
程序设计:
#includereg51.h
voidmain()
{unsignedcharc;
SCON=0x50;
TMOD=0x20;
PCON=0x00;
TH1=0xE8;
TL1=0xE8;
RI=0;
TR1=1;
while(1)
{if(RI)
{RI=0;
c=SBUF;
SBUF=c;
if(TI)
TI=0;
}
}
}
2.用Protues设计一个两个单片机通信的电路,甲机连接一只按键和一只发光二极管,乙机连接一只按键和一只一位的数码管,编写两个单片机通信的程序,甲机的按键通过串行口通信控制乙机的数码管显示”A”,”B”,”C”,”D”;乙机的按键通过串行口通信控制甲机的发光二极管闪烁。
电路设计:
甲机程序设计:
#includereg51.h
#defineucharunsignedchar
#defineuintunsignedint
sbitK1=P1^7;
sbitD1=P1^0;
//***************************************************************************
//延时1ms
voidDelay(uintx)
{uchari;
while(x--)
for(i=0;i120;i++);
}
//***************************************************************************
//向串口发送字符
voidputc_to_SerialPort(ucharc)
{SBUF=c;