网站大量收购独家精品文档,联系QQ:2885784924

《单片机控制技术项目式教程(第2版)》习题答案 - 王璇 项目8--11.docx

《单片机控制技术项目式教程(第2版)》习题答案 - 王璇 项目8--11.docx

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

《单片机控制技术项目式教程(第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;

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档