单片机课后习题答案.docx
- 文档编号:10387454
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:20
- 大小:47.73KB
单片机课后习题答案.docx
《单片机课后习题答案.docx》由会员分享,可在线阅读,更多相关《单片机课后习题答案.docx(20页珍藏版)》请在冰豆网上搜索。
单片机课后习题答案
第1章单片机的概述
1、除了单片机这一名称外,单片机还可称为(微控制器)和(嵌入式控制器)。
2、单片机与普通微型计算机的不同之处在于其将(CPU)、(存储器)和(I/O口)三部分,通过内部(总线)连接在一起,集成于一块芯片上。
3、在家用电器中使用单片机应属于微型计算机的(B)。
A、辅助设计应用B、测量、控制应用C、数值计算应用D、数据处理应用
4、微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别?
答:
微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。
目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。
嵌入式微处理器相当于通用计算机中的CPU。
与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。
而嵌入式微处理器仅仅相当于单片机中的中央处理器。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
5、MCS-51系列单片机的基本型芯片分别为哪几种?
它们的差别是什么?
答:
MCS-51系列单片机的基本型芯片分别为:
8031、8051和8751。
它们的差别是在片内程序存储器上。
8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。
6、为什么不应当把8051单片机称为MCS-51系列单片机?
答:
因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。
7、AT89S51单片机相当于MCS-51系列单片机中哪一种型号的产品?
“s”的含义是什么?
答:
相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash存储器取代了87C51片内的4K字节的EPROM。
“s”表示含有串行下载的Flash存储器。
8、什么是嵌入式系统?
答:
广义上讲,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”。
但多数人把“嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。
目前“嵌入式系统”还没有一个严格和权威的定义。
目前人们所说的“嵌入式系统”,多指后者。
9、嵌入式处理器家族中的单片机、DSP、嵌入式微处理器各有何特点?
它们的应用领域有何不同?
答:
单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。
单片机在嵌入式处理器市场占有率最高,最大特点是价格低,体积小。
DSP是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、FFT、频谱分析等)的嵌入式处理器。
由于对其硬件结构和指令进行了特殊设计,使其能够高速完成各种复杂的数字信号处理算法。
广泛地用于通讯、网络通信、数字图像处理,电机控制系统,生物信息识别终端,实时语音压解系统等。
这类智能化算法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP的长处所在。
与单片机相比,DSP具有的实现高速运算的硬件结构及指令和多总线,DSP处理的算法的复杂度和大的数据处理流量以及片内集成的多种功能部件更是单片机不可企及的。
嵌入式微处理器的基础是通用计算机中的CPU,它的地址总线数目较多能扩展较大的存储器空间,所以可配置实时多任务操作系统(RTOS)。
RTOS是嵌入式应用软件的基础和开发平台。
正由于嵌入式微处理器能运行实时多任务操作系统,所以能够处理复杂的系统管理任务和处理工作。
因此,广泛地应用在移动计算平台、媒体手机、工业控制和商业领域(例如,智能工控设备、ATM机等)、电子商务平台、信息家电(机顶盒、数字电视)以及军事上的应用。
第2章AT89S51
1、在AT89S51单片机中,如果采用6MHz晶振,一个机器周期为(2μs)。
2、AT89S51的机器周期等于(1个机器周期等于12)个时钟振荡周期。
3、内部RAM中,位地址为40H、88H的位,该位所在字节的字节地址分别为(28H)和(88H)。
4、片内字节地址为2AH单元最低位的位地址是(50H;片内字节地址为88H单元的最低位的位地址为88H。
5、若A中的内容为63H,那么,P标志位的值为(0)。
6、AT89S51单片机复位后,R4所对应的存储单元的地址为(04H),因上电时PSW=(00H。
这时当前的工作寄存器区是(0)组工作寄存器区。
7、内部RAM中,可作为工作寄存器区的单元地址为(00H-1FH)。
8、通过堆栈操作实现子程序调用时,首先把(PC)的内容入栈,以进行断点保护。
调用子程序返回时,再进行出栈保护,把保护的断点送回到(PC),先弹出来的是原来()中的内容。
9、AT89S51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为AT89S51的PC是16位的,因此其寻址的范围为(64)KB。
10、下列说法(C、D)是正确的。
A、使用AT89S51且引脚
时,仍可外扩64KB的程序存储器。
(×)
B、区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。
(×)
C、在AT89S51中,为使准双向的I∕O口工作在输入方式,必须事先预置为1。
(√)
D、PC可以看成是程序存储器的地址指针。
(√)
11、下列说法(A)是正确的。
A、AT89S51中特殊功能寄存器(SFR)占用片内RAM的部分地址。
(√)
B、片内RAM的位寻址区,只能供位寻址使用,而不能进行字节寻址。
(×)
C、AT89S51共有26个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以进行位寻址的。
(×)
D、SP称之为堆栈指针,堆栈是单片机内部的一个特殊区域,与RAM无关。
(×)。
12、在程序运行中,PC的值是:
(C)
A、当前正在执行指令的前一条指令的地址。
B、当前正在执行指令的地址。
C、当前正在执行指令的下一条指令的首地址。
D、控制器中指令寄存器的地址。
13、下列说法(A、B)是正确的。
A、PC是一个不可寻址的特殊功能寄存器。
(√)
B、单片机的主频越高,其运算速度越快。
(√)
C、在AT89S51单片机中,1个机器周期等于1μs。
(×)
D、特殊功能寄存器SP内存放的是栈顶首地址单元的内容。
(×)
14、下列说法(A、B、C)是正确的。
A、AT89S51单片机进入空闲模式,CPU停止工作。
片内的外围电路仍将继续工作。
(√)
B、AT89S51单片机不论是进入空闲模式还是掉电运行模式后,片内RAM和SFR中的内容均保持原来的状态。
(√)
C、AT89S51单片机进入掉电运行模式,CPU和片内的外围电路(如中断系统、串行口和定时器)均停止工作。
(√)
D、AT89S51单片机掉电运行模式可采用响应中断方式来退出。
(×)
15、AT89S51单片机的片内都集成了哪些功能部件?
答:
AT89S51单片机的片内都集成了如下功能部件:
①1个微处理器(CPU);②128个数据存储器(RAM)单元;③4KFlash程序存储器;④4个8位可编程并行I/O口(P0口、P1口、P2口、P3口)⑤1个全双工串行口;⑥2个16位定时器/计数器;⑦1个看门狗定时器;⑧一个中断系统,5个中断源,2个优先级;⑨26个特殊功能寄存器(SFR),⑩1个看门狗定时器。
16、说明AT89S51单片机的
引脚接高电平或低电平的区别。
答:
当
脚为高电平时,单片机读片内程序存储器(4K字节Flash)中的内容,但在PC值超过0FFFH(即超出4K字节地址范围)时,将自动转向读外部程序存储器内的程序;当
脚为低电平时,单片机只对外部程序存储器的地址为0000H~FFFFH中的内容进行读操作,单片机不理会片内的4K字节的Flash程序存储器。
17、64K程序存储器空间中有5个单元地址对应AT89S51单片机5个中断源的中断入口地址,请写出这些单元的入口地址及对应的中断源。
答:
64K程序存储器空间中有5个特殊单元分别对应于5个中断源的中断服务程序入口地址,见下表:
表5个中断源的中断入口地址
入口地址
中断源
0003H
外部中断0(
)
000BH
定时器0(T0)
0013H
外部中断1(
)
001BH
定时器1(T1)
0023H
串行口
18、当AT89S51单片机运行出错或程序陷入死循环时,如何摆脱困境?
答:
按下复位按钮。
第三章C51
1、C51在标准C的基础上,扩展了哪几种数据类型?
答:
bitsbitsfr。
2、C51有哪几种数据存储类型?
其中“idata,code,xdata,pdata”各对应AT89C51单片机的哪些存储空间?
答:
(1)、C51数据存储类型有:
bdata,data,idata,pdata,xdata,code。
(2)、“idata,code,xdata,pdata”各对应的存储空间
数据存储类型对应单片机存储器
idata片内RAM00H~FFH,共256字节
codeROM0000H~FFFFH,共64K字节
xdata片外RAM0000H~FFFFH,共64K字节
pdata片外RAM00H~FFH,共256字节
3、bit与sbit定义的位变量有什么区别?
(答案非标准,网上凑起来的)
答:
bit:
编译时分配空间;sbit只能在外部定义全局变量。
bit和sbit都是C51扩展的变量类型。
sbit要在最外面定义,就是说必须定义成外部变量、sbit定义的是SFR(特殊功能寄存器)的bit。
sbit:
指示说明性说明;bit可以在外部或内部定义。
4、说明3中数据存储模式
(1)small模式
(2)compact模式(3)large模式之间的差别。
答:
若声明charvarl,则在使用SMALL存储模式下,varl被定位在data存储区,在使用COMPACT模式下,varl被定位在idata存储区;在LARGE模式下,varl被定位在xdata存储区中。
5、编写C51程序,将片外2000H为首址的连续10个单元的内容,读入到片内部40H到49H单元中。
答:
程序设计思路——采用指针的方法。
选用指针px,px指向char型数据位于xdata,赋值px=2000H
选用指针px1,px1指向char型数据位于data,赋值px1=40H
在for循环中,*px1=*px;并且当i++时,px++,px1++,。
采用数组的方法。
xdataucharbuf1[10]_at_0x2000
dataucharbuf2[10]_at_0x40;
在for循环中,buf2[i]=buf1[i];
采用指针的方法参考程序如下:
#defineucharunsignedchar
voidmain()//主函数
{datauchari;
ucharxdata*px;//指针px,指向char型数据位于xdata
uchardata*px1;//指针px1,指向char型数据位于data
px=0x2000;
px1=0x40;
for(i=0;i<10;i++,px++,px1++)
*px1=*px;
while
(1);
}
采用数组的方法参考程序如下:
#defineucharunsignedchar
xdataucharbuf1[10]_at_0x2000;//位于xdata数组buf1[0]地址2000H
dataucharbuf2[10]_at_0x40;//位于data数组buf2[0]地址40H
voidmain()//主函数
{datauchari;
for(i=0;i<10;i++)
buf2[i]=buf1[i];
while
(1);
}
6、do-while构成的循环与do-while循环的区别是什么?
答:
主要区别是:
while循环的控制出现在循环体之前,只有当while后面表达式的值非0时,才可能执行循环体,因此有可能一次都不执行循环体;
在do-while构成的循环中,总是先执行一次循环体,然后再判断表达式的值,因此无论如何,循环体至少要被执行一次。
第四章应用题无答案
第五章
1、
2、双向口和准双向口有什么区别?
答:
双向口与准双向口的区别主要是:
准双向口I/O口操作时做数据输入时需要对其置1,否则若前一位为低电平,后一位输入的电平为高则MOS管拉不起来导致出错。
而双向口则不需要做此动作,因为双向口有悬浮态。
准双向口就是做输入用的时候要有向锁存器写1的这个准备动作,所以叫准双向口。
真正的双向口不需要任何预操作可直接读入读出。
1:
准双向一般只能用于数字输入输出,输入时为弱上拉状态(约50K上拉),端口只有两种状态:
高或低。
2:
双向除用于数字输入输出外还可用于模拟输入输出,模拟输入时端口通过方向控制设置成为高阻输入状态。
双向端口有三种状态:
高、低或高阻。
3:
初始状态和复位状态下准双向口为1,双向口为高阻状态
第六章
1、若寄存器(IP)=00010100B,则优先级最高者为(外部中断1),最低者为(定时器T1)。
2、下列说法正确的是(D)。
A.各中断源发出的中断请求信号,都会标记在AT89S51的IE寄存器中
B.各中断源发出的中断请求信号,都会标记在AT89S51的TMOD寄存器中
C.各中断源发出的中断请求信号,都会标记在AT89S51的IP寄存器中
D.各中断源发出的中断请求信号,都会标记在AT89S51的TCON与SCON寄存器中
3、在AT89S51的中断请求源中,需要外加电路实现中断撤销的是(A)。
A.电平方式的外部中断请求
B.下跳沿触发的外部中断请求
C.外部串行中断
D.定时中断
4、下列说法正确的是(A、C、D)。
A.同一级别的中断请求按时间的先后顺序响应
B.同一时间同一级别的多中断请求,将形成阻塞,系统无法响应
C.低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求
D.同级中断不能嵌套
5、中断响应需要满足哪些条件?
答:
一个中断源的中断请求被响应,必须满足以下必要条件:
(1)总中断允许开关接通,即IE寄存器中的中断总允许位EA=1。
(2)该中断源发出中断请求,即该中断源对应的中断请求标志为“1”。
(3)该中断源的中断允许位=1,即该中断被允许。
(4)无同级或更高级中断正在被服务。
第七章
1、如果采用的晶振频率为24MHz,定时器计数器工作在方式0、1、2下,其最大定时时间各为多少?
答:
方式0最长可定时16.384ms;
方式1最长可定时131.072ms;
方式2最长可定时512us。
2、定时器、计数器作计数器模式使用时,对外界计数器频率有何限制?
答:
对于12振荡周期为1个机器周期的51单片机,外界信号频率必须小于晶振频率的1/24。
对于单振荡周期为1个机器周期的51单片机,外界信号频率必须小于晶振频率(或系统时钟频率)的1/4。
3、定时器、计数器的工作方式2有什么特点?
适用于哪些场合?
打:
定时器、计数器的工作方式2具有自动回复初值的特点,适用于精确定时,比如波特率的产生。
第八章
1、帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式
(1)。
2、下列选项中,(ABDE)是正确的。
(A)串行口通信的第9数据位的功能可由用户定义。
(对)
(B)发送数据的第9数据位的内容在SCON寄存器的TB8位中预先准备好的。
(对)
(C)串行通信帧发送时,指令把TB8位的状态送入发送SBUF中。
(错)
(D)串行通信接收到的第9位数据送SCON寄存器的RB8中保存。
(对)
(E)串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定。
(对)
3、串行口工作方式1的波特率是:
(C)
(A)固定的,为fosc/32。
(B)固定的,为fosc/16。
(C)可变的,通过定时器/计数器T1的溢出率设定。
(D)固定的,为fosc/64。
4、在异步串行通信中,接收方是如何知道发送方开始发送数据的?
答:
当接收方检测到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。
5、为什么定时器/计数器T1用作串行口波特率发生器时,常采用方式2?
若已知时钟频率,串行通信的波特率,如何计算装入T1的初值?
参P128答:
因为定时器/计数器在方式2下,初值可以自动重装,这样在做串口波特率发生器设置时,就避免了执行重装参数的指令所带来的时间误差。
设定时器T1方式2的初值为X,计算初值X可采用如下公式:
波特率?
=?
定时器T1的溢出率=计数速率/(256-X)=fosc/[(256-X)*12]
故计数器初值为256-X=2SMOD×fosc/[12×32×波特率]
6、若晶体振荡器为11、0592MHZ,串行口工作于方式1,波特率为4800b/s,写出用T1作为波特率发生器的方式控制字和计数初值。
答:
方式1的波特率=
=4800bit/s(T1工作于方式2)
X=250=FAH
经计算,计数初值为FAH,初始化程序如下:
ANLTMOD,#0F0H;屏蔽低4位
ORLTMOD,#20H;T1定时模式工作方式2
MOVTH1,#0FAH;写入计数初值,波特率为4800b/s
MOVTL1,#0FAH
MOVSCON,#40H;串行口工作于方式1
解法2:
由
(T1工作于方式2)
得
初始化程序如下:
ORG0000H
ANLTMOD,#0F0H;屏蔽低4位
ORLTMOD,#10H;T1定时模式方式1
MOVTH1,#0FFH;写入计数初值,为4800b/s
MOVTL1,#0F4H
MOVSCON,#40H;串行口工作于方式1
MOVPCON,#80H;串行通信波特率加倍
7、为什么AT89S51单片机串行口的方式0帧格式没有起始位(0)和停止位
(1)?
答:
串行口的方式0为同步移位寄存器输入输出方式,常用于外接移位寄存器,以扩展并行I/O口,一般不用于两个MCS-51之间的串行通信。
该方式以fosc/12的固定波特率从低位到高位发送或接收数据。
8、直接以TTL电平串行传输数据的方式有什么缺点?
为什么在串行传输距离较远时,常采用RS-232C、RS-422A和RS-485标准串行接口,来进行串行数据传输。
比较RS-232C、RS-422A和RS-485标准串行接口各自的优缺点。
答:
直接以TTL电平串行传输数据的方式的缺点是传输距离短,抗干扰能力差。
因此在串行传输距离较远时,常采用RS-232C、RS-422A和RS-485标准串行接口。
主要是对传输的电信号不断改进,如RS-232C传输距离只有几十米远,与直接以TTL电平串行传输相比,采用了负逻辑,增大“0”、“1”信号的电平差。
而RS-422A和RS-485都采用了差分信号传输,抗干扰能力强,距离可达1000多米。
RS-422A为全双工,RS-485为半双工。
第九章
1、单片机存储器的主要功能是存储(程序)和(数据)。
2、在存储器扩展中,无论是线选法还是译码法,最终都是为了扩展芯片的片选端提供(片选)控制。
3、起止范围为0000H-3FFFH的存储器的容量是(16)KB。
4、在AT89S51单片机中,PC和DPTR都用于提供地址,但PC是为访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。
5、11根地址线可选(2KB)个存储单元,16KB存储单元需要(14)根地址线。
6、4KBRAM存储器的首地址若为0000H,则末地址为(0FFF)H
7、试编写一个程序(例如将05H和06H拼为56H),设原始数据放在片外数据区2001H单元和2002H单元中,按顺序拼装后的单字节数放入2002H。
解:
本题主要考察正确使用MOVX指令对外部存储器的读、写操作。
编程思路:
首先读取2001H的值,保存在寄存器A中,将寄存器A的高四位和低四位互换,再屏蔽掉低四位,然后将寄存器A的值保存到30H中,然后再读取2002H的值,保存在寄存器A中,屏蔽掉高四位,然后将寄存器A的值与30H进行或运算,将运算后的结果保存在2002H中。
ORG1000H
MAIN:
MOVDPTR,#2001H;设置数据指针的初值
MOVXA,@DPTR;读取2001H的值
SWAPA;A的高四位和低四位互换
ANLA,#0F0H;屏蔽掉低四位
MOV30H,A;保存A
INCDPTR;指针指向下一个
MOVXA,@DPTR;读取2002H的值
ANLA,#0FH;屏蔽掉高四位
ORLA,30H;进行拼合
MOVX@DPTR,A;保存到2002H
END
8、编写程序,将外部数据存储器中的4000H~40FFH单元全部清零。
答:
本题主要考察对外部数据块的写操作;编程时要注意循环次数和MOVX指令的使用。
ORG1000H
MAIN:
MOVA,#0;送预置数给A
MOVR0,#00H;设置循环次数
MOVDPTR,#4000H;设置数据指针的初值
LOOP:
MOVX@DPTR,A;当前单元清零
INCDPTR;指向下一个单元
DJNZR0,LOOP;是否结束
END
9、在AT89S51单片机系统中,外接程序存储器和数据存储器共16位地址线和8位数据线,为何不会发生冲突?
参P159答:
因为控制信号线的不同:
外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为和。
外扩RAM的读、写控制引脚分别与AT89S51的和引脚相连。
外扩的EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为,该引脚与AT89S51单片机的相连。
10、
11、判断下列说法是否正确,为什么?
A、由于82C55不具有地址锁存功能,因此在与AT89S51的接口电路中必须加地址锁存器
B、在82C55芯片中,决定各端口编址的引脚是PA1和PA0
C、82C55具有三态缓冲器,因此可以直接挂在系统的数据总线上
D、82
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课后 习题 答案