单片机原理及接口技术(C51编程)(第2版)-习题答案汇
总23
单片机答案 第1章 单片机概述
思考题及习题1 参考答案
一、填空
1、 除了单片机这一名称之外,单片机还可称为( )或( )。答:微控制器,嵌入式控制器、
2、单片机与普通微型计算机得不同之处在于其将( )、( )与( )三部分,通过内部( )连接在一起,集成于一块芯片上。答:CPU、存储器、I/O口、总线
3、 AT89S51单片机工作频率上限为( )MHz.答:24MHz。
4、 专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低( )与提高( )。答:成本,可靠性。
二、单选
1、 单片机内部数据之所以用二进制形式表示,主要就是 A.为了编程方便 B、受器件得物理性能限制 C。为了通用性 D、为了提高运算数度 答:B 2、 在家用电器中使用单片机应属于微计算机得. A。辅助设计应用 B、测量、控制应用
C.数值计算应用 D、数据处理应用 答: B 3、 下面得哪一项应用,不属于单片机得应用范围。
A.工业控制 B.家用电器得控制 C.数据库管理 D.汽车电子设备 答:C 三、判断对错
1、 STC系列单片机就是8051内核得单片机.对
2、 AT89S52与AT89S51相比,片内多出了4KB得Flash程序存储器、128B得RAM、1个中断源、1个定时器(且具有捕捉功能)。对
3、 单片机就是一种CPU。错
4、 AT89S52单片机就是微处理器.错
5、 AT89S51片内得Flash程序存储器可在线写入(ISP),而AT89C52则不能。对 6、 为AT89C51单片机设计得应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。对
7、 为AT89S51单片机设计得应用系统板,可将芯片AT89S51直接用芯片AT89S52替换.对
8、 单片机得功能侧重于测量与控制,而复杂得数字信号处理运算及高速得测控功能则就是DSP得长处。对
第2章 AT89S51单片机片内硬件结构
思考题及习题2 参考答案
一、填空
1、 在AT89S51单片机中,如果采用6MHz晶振,一个机器周期为()。答:2μs 2、 AT89S51单片机得机器周期等于()个时钟振荡周期。答:12
3、 内部RAM中,位地址为40H、88H得位,该位所在字节得字节地址分别为()与()。答:28H,88H
4、 片内字节地址为2AH单元最低位得位地址就是();片内字节地址为A8H单元得最低位得位地址为()。答:50H,A8H
5、 若A中得内容为63H,那么,P标志位得值为().答:0
6、 AT89S51单片机复位后,R4所对应得存储单元得地址为(),因上电时PSW=()。这时当前得工作寄存器区就是()组工作寄存器区。答:04H,00H,0.
7、 内部RAM中,可作为工作寄存器区得单元地址为( )H~( )H。答:00H,1FH
8、 通过堆栈操作实现子程序调用时,首先要把( )得内容入栈,以进行断点保护。调用子程序返回指令时,再进行出栈保护,把保护得断点送回到( ) ,先弹出得就是原来( )中得内容.答:PC, PC,PCH
9、 AT89S51单片机程序存储器得寻址范围就是由程序计数器PC得位数所决定得,因为AT89S51单片机得PC就是16位得,因此其寻址得范围为( ) KB。答:64
10、 AT89S51单片机复位时,P0~P3口得各引脚为( )电平.答:高
11、 AT89S51单片机使用片外振荡器作为时钟信号时,引脚XTAL1接( ),引脚XTAL2得接法就是( )。答:片外振荡器得输出信号,悬空
12、 AT89S51单片机复位时,堆栈指针SP中得内容为( ),程序指针PC中得内容为( ) 。答:07H,0000H
二、单选
1、 程序在运行中,当前PC得值就是。
A。当前正在执行指令得前一条指令得地址 B.当前正在执行指令得地址。 C.当前正在执行指令得下一条指令得首地址 D.控制器中指令寄存器得地址。 答:C
2、 判断下列哪一种说法就是正确得?
A。PC就是一个可寻址得寄存器 B。单片机得主频越高,其运算速度越快。 C.AT89S51单片机中得一个机器周期为1μs
D.特殊功能寄存器SP内存放得就是堆栈栈顶单元得内容. 答: B 三、判断对错
1、 使用AT89S51单片机且引脚EA=1时,仍可外扩64KB得程序存储器。错 2、 区分片外程序存储器与片外数据存储器得最可靠得方法就是瞧其位于地址范围得低端还就是高端。错
3、 在AT89S51单片机中,为使准双向得I/O口工作在输入方式,必须事先预置为1。对
4、 PC可以瞧成就是程序存储器得地址指针。对
5、 AT89S51单片机中特殊功能寄存器(SFR)使用片内RAM得部份字节地址。对 6、 片内RAM得位寻址区,只能供位寻址使用,而不能进行字节寻址.错
7、 AT89S51单片机共有26个特殊功能寄存器,它们得位都就是可以用软件设置得,因此,都就是可以位寻址得。错
8、 堆栈区就是单片机内部得一个特殊区域,与RAM无关。错
9、 AT89S51单片机进入空闲模式,CPU停止工作。片内得外围电路(如中断系统、串行口与定时器)仍将继续工作。对
10、 AT89S51单片机不论就是进入空闲模式还就是掉电运行模式后,片内RAM与SFR中得内容均保持原来得状态。对
11、 AT89S51单片机进入掉电运行模式,CPU与片内得外围电路(如中断系统、串行口与定时器)均停止工作。对
12、 AT89S51单片机得掉电运行模式可采用响应中断方式来退出。对 四、简答
1、 AT89S51单片机片内都集成了哪些功能部件? 答:集成了如下部件:
1个CPU;128个数据存储器(RAM)单元 ;8K Flash程序存储器;4个8位可编程并行I/O口(P0口、P1口、P2口、P3口); 1个全双工串行口;3个16位定时器/计数器; 1个瞧门狗定时器;一个中断系统,6个中断源,2个优先级;32个特殊功能寄存器(SFR)。
2、 AT89S51得64KB程序存储器空间有5个单元地址对应AT89S51单片机5个中断源得中断入口地址,请写出这些单元得入口地址及对应得中断源。 答:见下表
表 AT89S51各中断源得中断入口地址
中 断 源 外部中断0 定时器/计数器T0 外部中断1 定时器/计数器T1 串行口
入口地址 0003H 000BH 0013H 001BH 0023H
3、 说明AT89S51单片机得EA引脚接高电平或低电平得区别。 答:当EA脚为高电平时,单片机读片内程序存储器(4K 字节Flash)中得内容,但在PC值超过0FFFH(即超出4K字节地址范围)时,将自动转向读外部程序存储器内得程序;当EA脚为低电平时,单片机只对外部程序存储器得地址为0000H~FFFFH中得内容进行读操作,单片机不理会片内得4K字节得Flash程序存储器。
第3章 C51编程语言基础
思考题及习题3 参考答案
一、填空
1.与汇编语言相比, C51语言具有()、()、()、与()等优点。答:可读性好,可移植性好,模块化开发与资源共享,生成得代码效率高
2。C51语言头文件包括得内容有8051单片机(),以及()得说明。答:片内得外设硬件资源,相应得特殊功能寄存器
3.C51提供了两种不同得数据存储类型()与()来访问片外数据存储区。答:xdata,pdata
4。C51提供了code存储类型来访问() 。答:程序存储区
5。对于SMALL存储模式,所有变量都默认位于8051单片机()。答:内部得数据存储器
6。C51用“*”与“&”运算符来提取指针变量得()与指针变量得()。答:内容,地址
二、判断对错
1。C51语言处理单片机得中断就是由专门得中断函数来处理得。对
2。在C51语言中,函数就是一个完成一定相关功能得执行代码段,它与另外两个名词“子程序\与“过程”用来描述同样得事情.对
3.在C51语言编程中,编写中断服务函数时需要考虑如何进行现场保护、阻断其她中断、返回时自动恢复现场等处理得程序段得编写.错
4。全局变量就是在某一函数中存在得变量,它只在该函数内部有效。错 5.全局变量可使用static关键词进行定义,由于全局变量一直存在,占用了大量得内存单元,且加大了程序得耦合性,不利于程序得移植或复用。对
6.绝对地址包含头文件absacc、h定义了几个宏,用来确定各类存储空间得绝对地址。对
三、简答 1.C51在标准C得基础上,扩展了哪几种数据类型?
答:扩展了4种数据类型,它们就是:bit、sfr、sfr16与sbit。
2。C51有哪几种数据存储类型?其中数据类型“idata,code,xdata,pdata\各对应AT89S51单片机得哪些存储空间
答:C51有6种数据存储类型data、bdata、idata、xdata、pdata与code。 数据存储类型idata对应片内RAM得256字节。 数据存储类型code对应程序存储区。 数据存储类型xdata对应片外64KB得RAM空间。 数据存储类型pdata对应片外RAM得256字节。
3。bit与 sbit定义得位变量有什么区别?
答:bit就是用来定义普通得位变量,它得值只能就是二进制得0或1。而sbit定义得就是特殊功能寄存器得可寻址位,它得值就是可以进行位寻址得特殊功能寄存器得某位得绝对地址,例如PSW寄存器OV位得绝对地址0xd2。
4.说明3种数据存储模式(1)SMALL模式(2)PACT模式(3)LARGE模式之间得差别.
答:3种数据存储模式之间得差别如下:
(1)SMALL模式。在该模式下,所有变量都默认位于8051单片机内部得数据存储器,这与使用data指定存储器类型得方式一样。在此模式下,变量访问得效率高,但就是所有数据对象与堆栈必须使用内部RAM.
(2)PACT模式。本模式下得所有变量都默认在外部数据存储器得1页(256字节)内,这与使用pdata指定存储器类型就是一样得。该存储器类型适用于变量不超过256字节得情况,此限制就是由寻址方式决定得,相当于使用数据指针Ri进行寻址。与SMALL模式相比,该存储模式得效率比较低,对变量访问得速度也慢一些,但比LARGE模式快。
(3)LARGE模式.在LARGE模式下,所有变量都默认位于外部数据存储器,相当于使用数据指针DPTR进行寻址。通过数据指针访问外部数据存储器得效率较低,特别就是当变量为2字节或更多字节时,该模式要比SMALL与PACT产生更多得代码.
5。do-while构成得循环与while循环得区别就是什么? 答:(1)while语句.while语句得语法形式为:
while(表达式) { } 循环体语句;
表达式就是while循环能否继续得条件,如果表达式为真,就重复执行循环体语句;反之,则终止循环体内得语句.
while循环得特点在于,循环条件得测试在循环体得开头,要想执行重复操作,首先必须进行循环条件得测试,如果条件不成立,则循环体内得重复操作一次也不能执行。 (2)do-while语句。do while语句得语法形式为: do { }
while(表达式); 循环体语句;
do-while语句得特点就是先执行内嵌得循环体语句,再计算表达式,如果表达式 得值为非0,则继续执行循环体语句,直到表达式得值为0时结束循环。
由do—while构成得循环与while循环十分相似,它们之间得重要区别就是:while 循环得控制出现在循环体之前,只有当while后面表达式得值非0时,才可能执行循环体,在do—while构成得循环中,总就是先执行一次循环体,然后再求表达式得值,因此无论表达式得值就是0还就是非0,循环体至少要被执行一次。
四、编程
1.编写C51程序,将单片机片外2000H为首地址得连续10个单元得内容,读入到片内RAM得40H~49H单元中。
答:将片外2000H为首地址得连续10个单元得内容,读入到片内RAM得40H~49H单元中。程序如下:
xdata unsigned char buffer1[10] _at_ 0x2000; data unsigned char buffer2[10] _at_ 0x40 void main(void) {
unsigned char i;
for(i=0; i<10; i++) { buffer2[i]= buffer1[i] } }
2.编写将单片机片内一组RAM单元清0得函数,函数内不包括这组RAM单元得起始地址与单元个数,起始地址与单元个数参数应在执行函数前由主函数赋值。 答:参考程序如下:
#define uchar unsigned char
void clear0(uchar *addr, ucharlenth) { uchari; for(i=0; i〈=\{=\dr=\;\void main(void) {
ucharaddr[32] _at_ 0x30; ucharlenth=32; 起始地址赋值 单元个数赋值
clear0(addr,lenth); while(1); }
第5章 单片机与开关\\键盘以及显示器件得接口设计
思考题及习题5参考答案
一、填空
1、 AT89S51单片机任何一个端口要想获得较大得驱动能力,要采用( )电平输出。 答:低