单片机课后习题答案文档格式.docx
《单片机课后习题答案文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课后习题答案文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
它们的差别是什么?
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;