单片机原理课后题答案

单片机原理课后题答案

【篇一:单片机原理及接口技术张毅刚课后习题答案】1.除了单片机这一名称之外,单片机还可称为

答:微控制器,嵌入式控制器。

2.单片机与普通微型计算机的不同之处在于其将 3

部分集成于一块芯片上。

答:cpu、存储器、i/o口。

3.8051与8751的区别是。

a.内部数据存储单元数目不同 b.内部数据存储器的类型不同

c.内部程序存储器的类型不同 d.内部寄存

器的数目不同

答:c。

4.在家用电器中使用单片机应属于微计算机的

a.辅助设计应用;b.测量、控制应用;c.数值计算应用;d.数据处理应用

答:b。

5.微处理器、微计算机、微处理机、cpu、单片机它们之间有何区别?

答:微处理器、微处理机和cpu都是中央处理器的不同称谓;而微

计算机、单片

机都是一个完整的计算机系统,单片机特指集成在一个芯片上的用

于测控目的的

单片微计算机。

6.mcs-51系列单片机的基本型芯片分别为哪几种?它们的差别是

什么?

答:mcs-51系列单片机的基本型芯片分别是8031、8051和8751。它们的差别是

在片内程序存储器上。8031无片内程序存储器,8051片内有4kb

的程序存储

器rom,而8751片内集成有4kb的程序存储器eprom。

7.为什么不应当把51系列单片机称为mcs-51系列单片机?

答:因为mcs-51系列单片机中的“mcs”是intel公司生产的单片机

的系列符号,

而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统

兼容的单片机。

8.at89c51单片机相当于mcs-51系列单片机中的哪一种型号的产品?

答:相当于mcs-51系列中的87c51,只不过是at89c51芯片内的

4kb flash

存储器取代了87c51片内的4kb的eprom。

第2章at89c51单片机片内硬件结构

1.在at89c51单片机中,如果采用6mhz晶振,一个机器周期为

2.at89c51单片机的机器周期等于

答:12。

3.内部ram中,位地址为40h、88h的位,该位所在字节的字节

地址分别为和。

答:28h;88h。

4.片内字节地址为2ah单元的最低位的位地址是88h单元的最低

位的位地址是。

答:50h;88h。

5.若a中的内容为63h,那么,p标志位的值为

答:p标志位的值为0。

6.at89c51单片机复位后,r4所对应的存储单元的地址为,因上电时答:04h;00h;0。

7.内部ram中,可作为工作寄存器区的单元地址为 h~h。答:

00h;1fh。

8.通过堆栈操作实现子程序调用,首先要把保护。调用返回时,再

进行出栈保护,把保护的断点送回到。

答:pc;pc。

9.at89c51单片机程序存储器的寻址范围是由程序计数器pc的位

数所决定的,因为at89c51单片机的pc是16位的,因此其寻址的

范围为kb。答:64kb。

10.判断下列项说法是正确的。

a.at89c51单片机的cpu是由ram和eprom组成的

b.区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端

c.在at89c51单片机中,为使准双向的i/o口工作在输入方式,必须保证它被事先预置为1

d.pc可以看成是程序存储器的地址指针

答: a. 错; b. 错;c. 对;d. 对。

11.判断以下有关pc和dptr的结论是正确的。

a.dptr是可以访问的,而pc不能访问

b.它们都是16位寄存器

c.在单片机运行时,它们都具有自动加“1”的功能

d.dptr可以分为2个8位的寄存器使用,但pc不能

答:a. 对; b. 对;c. 错;d. 对。

12.判断下列说法项是正确的。

a.程序计数器pc不能为用户编程时直接访问,因为它没有地址

b.内部ram的位寻址区,只能供位寻址使用,而不能供字节寻址使用

c.at89c51单片机共有21个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以进行位寻址的。

答:a. 对; b. 错;c. 错。

13.pc的值是。

a.当前正在执行指令的前一条指令的地址

b.当前正在执行指令的地址

c.当前正在执行指令的下一条指令的地址

d.控制器中指令寄存器的地址

答:a. 错;b. 错;c. 对;d. 错。

14.判断下列说法项是正确的。

a.pc是一个不可寻址的特殊功能寄存器

b.单片机的主频越高,其运算速度越快

c.在at89c51单片机中,一个机器周期等于1?s

d.特殊功能寄存器内存放的是栈顶首地址单元的内容

答:a. 对;b. 对;c. 错;d.错。

15.at89c51单片机的片内都集成了哪些功能部件?各个功能部件的最主要的功能是什么?

(1)1个微处理器(cpu);

(2)128个数据存储器(ram)单元;

(3)4kb flash程序存储器;

(4)4个8位可编程并行i/o口(p0口、p1口、p2口、p3口);

(5)1个全双工串行口;

(6)2个16位定时器/计数器;

(7)一个中断系统,5个中断源,2个优先级;

(8)21个特殊功能寄存器(sfr)。

16.说明at89c51单片机的引脚ea的作用,该引脚接高电平和低

电平时各有何种功能?

答:当ea脚为高电平时,单片机读片内程序存储器(4kb flash),但在pc值超过0fffh(即超出4kb地址范围)时,将自动转向读外

部程序存储器内的程序。当ea脚为低电平时,对程序存储器的读操

作只限定在外部程序存储器,地址为0000h~ffffh,片内的4kb

flash程序存储器不起作用。

17.64kb程序存储器空间有5个单元地址对应at89c51单片机5

个中断源的中断入口地址,请写出这些单元的入口地址及对应的中

断源。

答:64kb程序存储器空间中有5个特殊单元分别对应于5个中断源的中断服务程序的入口地址,见下表。

表 5个中断源的中断入口地址

18.当at89c51单片机运行出错或程序陷入死循环时,如何摆脱困境?

答:按下复位按钮。

第3章at89c51单片机的指令系统

1.在基址加变址寻址方式中,以作为基址寄存器。

答:a,pc,dptr。

2.指令格式是由和组成,也可仅由

答:操作码,操作数,操作码。

3.假定累加器a中的内容为30h,执行指令

1000h: movc a,@a+pc

后,把程序存储器单元的内容送入累加器a中。

答:1031h。

4.在at89c51单片机中,pc和dptr都用于提供地址,但pc是为

访问存储器提供地址,而dptr是为访问答:程序,数据。

5.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容

不是操作数,而是操作数的。

答:地址。

6.已知程序执行前有(a) = 02h,(sp) = 52h,(51h) = ffh,(52h) = ffh。下述程序执行后,(a) = ,(sp) = ,(51h) = ,(52h) = ,(pc) = 。 popdph

popdpl

movdptr,#4000h

rl a

movb,a

movc a,@a+dptr

push acc

mova,b

inca

movc a,@a+dptr

pushacc

ret

org4000h

db 10h,80h,30h,50h,30h,50h

答:(a)=50h,(sp)=50h,(51h)=30h,(52h)=50h,(pc)=5030h。 7.假定(a) = 83h,(r0) = 17h,(17h) = 34h,执行以下指令后,。anl a,#17h

orl 17h,a

xrl a,@r0

cpl a

答:(a)=0cbh。

8.假设(a) = 55h,(r3) = 0aah,在执行指令“anl a,r5”后,,答:(a)=00h,(r3)=0aah。

9.如果(dptr) = 507bh,(sp) = 32h,(30h) = 50h,(31h) = 5fh,(32h) = 3ch,

则执行下列指令后,(dph) =,(dpl) = ,(sp) = 。 pop dph

pop dpl

pop sp

答:(dph)=3ch,(dpl)=5fh,(sp)=50h。

10.假定,(sp) = 60h,(a) = 30h,(b) = 70h,执行下列指令后,sp的内容为,61h单元的内容为,62h单元的内容为。 push acc

push b

答:(sp)=62h,(61h)=30h,(62h)=70h。

11.判断下列说法项是正确的。

a.立即寻址方式是被操作的数据本身就在指令中,而不是它的地址在指令中

b.指令周期是执行一条指令的时间

c.指令中直接给出的操作数称为直接寻址

答:a.对;b.对; c.错。

12.判断以下指令的正误。

(1)mov 28h,@r2 (2)dec dptr(3)inc dptr (4)clrr0(5)cpl r5 (6)mov r0,r1 (7)phsh dptr (8)mov f0,c (9)mov f0,acc.3 (10)movx a,@r1 (11)mov c,30h (12)rlc r0

答:(1)错(2)错(3)对(4)错(5)错(6)错(7)错(8)对(9)错

(10)对(11)对(12)错。

13.访问sfr,可使用哪些寻址方式?

答:只能使用直接寻址方式。

14.下列程序段的功能是什么?

push acc

pushb

pop acc

pop b

答:a的内容与b的内容互换。

15.写出完成如下要求的指令,但是不能改变未涉及位的内容。(1)把acc.3,acc.4,acc.5和acc.6清“0”。

(2)把累加器a的中间4位清“0”。

(3)使acc.2和acc.3置“1”。

答:(1)anl a,#87h

(2)anl a,#0c3h

(3)orl a,#0ch

【篇二:单片机原理及接口技术习题答案___第四版___

李朝青】

lass=txt>、、、、、、、、、、、、、、、、前两章略、、、、、、、、、、、、、、、、

5、 sfr:直接寻址,位寻址,寄存器寻址;片外ram:寄存器间接寻址

6、 mova,40h ;直接寻址(40h)→a

mov r0,a;寄存器寻址(a)→r0

mov p1,#0f0h ;立即数寻址0f0→p1

mov @r0,30h ;直接寻址(30h)→(r0)

mov dptr,#3848h ;立即数寻址3848h→dptr

mov 40h,38h;直接寻址(38h)→40h

mov r0,30h ;直接寻址(30h)→r0

mov p0,r0 ;寄存器寻址(r0)→p0

mov 18h,#30h ;立即数寻址30h→18h

mov a,@r0;寄存器间接寻址((r0))→a

mov p2,p1 ;直接寻址(p1)→p2

最后结果:(r0)=38h,(a)=40h,(p0)=38h,(p1)=(p2)=0f0h,(dptr)=3848h,(18h)=30h,(30h)=38h,(38h)

=40h,(40h)=40h,(48h)=38h

注意:→左边是内容,右边是单元

7、用直接寻址,位寻址,寄存器寻址

8、

mova,data ;直接寻址 2字节1周期

mov a,#data;立即数寻址 2字节1周期

mov data1,data2 ;直接寻址 3字节2周期

mov 74h,#78h;立即数寻址 3字节2周期

如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附

录a 9、

mova,@r0 ;((r0))=80h→a

mov@r0,40h;(40h)=08h→(r0)

mov40h,a ;(a)=80→40h

movr0,#35h ;35h→r0

最后结果:(r0)=35h(a)=80h,(32h)=08h,(40h)=80h

10、用直接寻址,位寻址,寄存器寻址

11、只能采用寄存器间接寻址(用movx指令)

12、低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻

址(r0~r7)高128字节:直接寻址,位寻址,寄存器寻址

13、采用变址寻址(用movc指令)

14、压缩bcd码在进行加法运算时应逢十进一,而计算机只将其当

作十六进制数处理,此时得到的结果不正确。用da a指令调整(加

06h,60h,66h)

15、用来进行位操作

16、anl a,#17h ;83h∧17h=03h→a

orl17h,a ;34h∨03h=37h→17h

xrla,@r0 ;03h⊕37h=34h

cpla;34h求反等于cbh

所以(a)=cbh

17、(1)setb acc.0或setb e0h;e0h是累加器的地址

(2)clr acc.7

clr acc.6

clr acc.5

clr acc.4

(3)clr acc.6

clr acc.5

clr acc.4

clr acc.3

18、mov 27h,r7

mov 26h,r6

mov 25h,r5

mov 24h,r4

mov 23h,r3

mov 22h,r2

mov 21h,r1

mov 20h,r0

19、mov 2fh,20

mov 2eh,21

mov 2dh,22

20、clr c

mov a,#5dh ;被减数的低8位→a

mov r2,#b4h;减数低8位→r2

subb a,r2;被减数减去减数,差→a

mov 30h,a;低8位结果→30h

mov a,#6fh ;被减数的高8位→a

mov r2,#13h;减数高8位→r2

subb a,r2;被减数减去减数,差→a

mov 31h,a;高8位结果→30h

注意:如果在你的程序中用到了进位位,在程序开始的时候要记得清0进位位

21、(1)a≥10

cjne a,#0ah,l1 ;(a)与10比较,不等转l1

ljmp label ;相等转label

l1:jnc label ;(a)大于10,转label

或者:

clr c

subb a,#0ah

jnc label

(2)a>10

cjne a,#0ah,l1 ;(a)与10比较,不等转l1

ret;相等结束

l1:jnc label ;(a)大于10,转label

ret;(a)小于10,结束

或者:

clr c

subb a,#0ah

jnc l1

ret

l1:jnz label

ret

(3)a≤10

cjne a,#0ah,l1 ;(a)与10比较,不等转l1

l2:ljmp label ;相等转label

l1:jc l2 ;(a)小于10,转l2

ret

或者:

clr c

subb a,#0ah

jc label

jz label

ret

22、(sp)=23h,(pc)=3412h

参看书上80页

23、(sp)=27h,(26h)=48h,(27h)=23h,(pc)=3456h 参看书上79页

24、不能。acall是短转指令,可调用的地址范围是2kb。

在看这个题的时候同时看一下ajmp指令。同时考虑调用指令acall 和lcall指令和ret指令的关系。

25、 mov r2,#31h ;数据块长度→r2

【篇三:单片机原理及应用课后习题参考答案1~6章】txt>第一章计算机基础知识

1-1 微型计算机主要由哪几部分组成?各部分有何功能?

答:一台微型计算机由中央处理单元(cpu)、存储器、i/o接口及i/o设备等组成,相互之间通过三组总线(bus):即地址总线ab、数据总线db和控制总线cb来连接。

cpu由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。

存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。按其功能可分为ram和rom。

输入/输出(i/o)接口是cpu与外部设备进行信息交换的部件。

总线是将cpu、存储器和i/o接口等相对独立的功能部件连接起来,并传送信息的公共通道。

1-3 什么叫单片机?其主要由哪几部分组成?

答:单片机(single chip microcomputer)是指把cpu、ram、rom、定时器/计数器以及i/o接口电路等主要部件集成在一块半导体芯片上的微型计算机。

1-4 在各种系列的单片机中,片内rom的配置有几种形式?用户应根据什么原则来选用?

答:单片机片内rom的配置状态可分四种:

(1)片内掩膜(mask)rom型单片机(如8051),适合于定型大批量应用产品的生产;

(2)片内eprom型单片机(如8751),适合于研制产品样机;(3)片内无rom型单片机(如8031),需外接eprom,单片机扩展灵活,适用于研制新产品;

(4)eeprom(或flash rom)型单片机(如89c51),内部程序存储器电可擦除,使用更方便。

1-5 写出下列各数的另两种数制的表达形式(二、十、十六进制)1-6 写出下列各数的bcd参与:

59:01011001,1996:0001100110010110,4859.2:0100100001011001.0010

389.41:001110001001.01000001

第二章 mcs-51单片机的硬件结构

2-1 8052单片机片内包含哪些主要逻辑功能部件?

答:8052单片机片内包括:

①8位中央处理器cpu一个

②片内振荡器及时钟电路

③256b数据存储器ram。

④8kb片内程序存储空间rom

⑤21个特殊功能寄存器sfr

⑥4个8位并行i/o端口(32条线)

⑦1个可编程全双工串行口

⑧可寻址64kb的外部程序存储空间和外部数据存储空间

⑨3个16位的定时器/计数器

⑩6个中断源、2个优先级嵌套中断结构

2-2 8052的存储器分哪几个空间?如何区别不同空间的寻址?

答:?8052的存储器分为6个编址空间:

①片内rom的容量为8kb,其地址为0000h~1fffh;

②可扩展片外rom的容量为64kb,其地址为0000h~ffffh;

片内ram的容量为256b,其地址为00h~ffh分为二块:③地址

00h~7fh共128b为片内ram低区,④另128b为片内ram高区,

其地址空间为80h`ffh,其地址空间与sfr功能寄存器地址重叠;

⑤可扩展片外ram的容量为64kb,其地址为0000h~1fffh;

⑥特殊功能寄存器sfr的空间为128b,其地址为80h~ffh,但实际

只定义了26b单元,这26b单元分散在80h`f0h。

?程序存储器和数据存储器在逻辑上是完全分开的。

cpu通过指令movc访问程序存储器。当8052第31脚ea接高电

平时, cpu将从片内程序存储器0000h单元开始执行,当pc值超

出片内程序存储空间,即大于1fffh时,会自动转向片外程序存储空间。当ea接低电平时,cpu将从片外程序存储器rom的0000h单

元开始执行。

cpu通过mov指令访问片内数据存储空间ram,低区128b地址空

间00h~7fh中地址为00h~1fh这32个单元分为4个工作寄存器组,分别用r0~r7表示,通过工作寄存器指令进行访问。片内ram中的

20h~2fh单元除可作为一般字节寻址单元使用外,这16个单元共

128位中的每一位又可单独作为软件触发器使用,具有位寻址功能,其位地址范围为00h`7fh;对片内高区128b寻址只能用寄存

器间接寻址,而对特殊功能寄存器建起必须使用直接寻址。

cpu通过指令movx访问片外数据存储器。

2-3 dptr的作用是什么?它由哪几个寄存器组成?

答:相对于地址指针,dptr被称为数据指针,但实际上dptr中存放的是一个16位的地址,作为访问程序存储器和外部数据存储器的地

址指针。当对64kb外部数据存储器空间寻址时,作为间址寄存器使用,而在访问程序存储器时,作为基址寄存器使用。dptr是一个16

位的特殊功能寄存器,由两个8位寄存器dph、dpl组成,使用sfr

中的82h和83h单元。

2-4 简述布尔处理存储器的空间分配。

答:在单片机中位处理又称布尔处理,允许按位处理的存储器称为

布尔处理存储器。其地址空间由二部分构成:一部分是片内ram中

字节地址为20h~2fh的16字节的128个位,这些位编址为00h`7fh;另一部分在特殊寄存器中,其地址码能被8整除的12个特殊功能寄

存器可以按位寻址,但其中4个未定义,一共有92位可按位寻址。

这二部分结合起来形成一个具有220位的位寻址空间。

2-5 8052单片机设置4组工作寄存器,如何选择确定和改变当前工

作寄存器?

答:8052片内数据存储器的00h~1fh这32个单元分为4级作为4

个工作寄存器第0组地址00h`07h,第一组08h~0fh,第二组

10h~17h,第3组18h~1fh。每个工作寄存器都有8个单元,分别

用r0~r7表示。4组寄存器中每一组都可能被选为cpu的工作寄存器,这是通过程序状态字psw的psw.3(rs0)和psw.4(rs1)

通过程序改变rs1和rs0的状态,就可方便地更换工作寄存器组。

2-6 程序状态字寄存器psw的作用是什么?常用的状态标志位有哪

些位?作用分别是什么?

答:psw是一个8位的特殊功能寄存器,由一些标志位组成,用于

存放程序运行中的各种状态信息。它可以进行位寻址。各位的作用

如下:

cy:进位标志位。在进行加(或减)法运算时,若操作结果的最高

位(d7位)有进位(或借位)时,cy由硬件置1,否则cy清0。在进行位操作时,cy又是位累加器,指令助记符用c表示。

ac:辅助进位标志位。在进行加(或减)运算时,若操作结果的低

半字节(d3位)向高半字节产生进位(或借位)时,ac位将由硬件

自动置1,否则ac位清0。

f0:用户标志位。用户根据需要对f0置位或复位,作为软件标志。

rs1和rs0:工作寄存器组选择控制位。由用户用软件改变rs1和

rs0的状态,以选择内ram中的哪组工作寄存器为当前工作寄存器组。

ov:溢出标志位。当进行补码运算时,运算结果超出-128~+127

范围时,产生溢出,则ov自动置1,否则ov清0。

psw.1:保留位。8051中未定义。

p:奇偶校验标志位。每条指令执行完后,该位始终跟踪累加器a中1的数目的奇偶性。如果a中有奇数个1,则p=1;否则p=0。

2-7 8052单片机的ea引脚有何功能?在使用8032时,ea引脚就

如何处理?

答:8052单片机的31脚为ea, ea为访问外部或内部程序存储器控

制信号。当ea引脚接高电平且pc值小于1fffh时,cpu访问内部程序存储器读取指令,当ea引脚接低电平时,cpu只访问外部等量齐

观存储器读取指令。

在8032芯片中没有内部程序存储器,因此,8032芯片的31脚ea

只能接地。 2-8 8052内部ram中低128 b单元划分为哪几个主要部分?各部分主要功能是什么?

答:8052内部数据存储器ram中低128b单元地址空间00h~7fh

被划分为三个部分。第一部分地址为00h~1fh这32个单元分为4个工作寄存器组,分别用r0~r7表示,通过工作寄存器指令进行访问。片内ram中的第二部分20h~2fh单元除可作为一般字节寻址单元使

用外,这16个单元共128位中的每一位又可单独作为软件触发器使用,具有位寻址功能,其位地址范围为00h`7fh;第三部分地址

30h~7fh,这部分存储区域可作为8位数据缓冲区使用,一般地,用

户把堆栈就设置在这部分区域。

2-9 8052内部ram中高128b单元与特殊功能寄存器区地址空间重叠,使用中是如何区分这两个空间的?

答:对8052片内高区(80h`0ffh)128b只能采用寄存器间接寻址,而对特殊功能寄存器sfr建起必须采用直接寻址。

2-10 什么叫堆栈?堆栈指针sp的作用是什么?

答:堆栈是按照“先进后出,后进先出”的原则来存取数据的一个内

部ram区域,这个存储器区域的一端是固定的(栈底),另一端是

活动的(栈顶),每个存储单元是不能按字节任意访问的。

堆栈指针sp始终指向栈顶单元,栈顶随着数据入栈和出栈上下浮动。2-12 什么是时钟周期、机器周期和指令周期?

答:(1)时钟周期(又称为振荡周期)是指振荡器产生一个振荡脉

冲信号所用的时间,是振荡频率的倒数,称为拍节。

(2)机器周期是指cpu完成某一个规定操作所需的时间,8051单

片机的一个机器周期包含6个状态,并依次表示为s1~s6,每个状

态分为2个节拍。因此一个机器周期包含12个时钟周期(振荡周期),依次表示为:s1p1、s1p2、s2p1、?、s6p1、s6p2。

(3)指令周期是指cpu执行一条指令所需要的时间称为指令周期。mcs-51单片机指令周期根据指令的不同,可包含有1或2或4个机

器周期。

第三章 mcs-51单片机指令系统

3-1 指出下列每一条指令的寻址方式及其完成的操作。

mov 2fh,#40h

mov a,2fh

mov r1,#2fh

mov a,@r1

累加器a

mov 2fh,a

答:直接寻址:

间接寻址: ;隐含寻址,将累加器a中的值移入片内2fh单元 mov

r1,4fh mov r1,#4fh 3-2 内部ram的4fh单元,可用哪几种寻址

方式?分别举例说明。 ;立即寻址,将40h移入片内2fh单元 ;直接

寻址,将片内2fh单元的数移入累加器a ;立即寻址,将2fh移入当

前寄存器组的r1单元 ;寄存器间接寻址,将寄存器r1中所存地址中

的值移入

寄存器间接寻址: mov a,@r1

3-3 指出下列各条指令中,45h代表什么?

mov a,#45h

mov a,45h

mov 45h,46h

mov 45h,#45h

mov c,45h

条指令的执行结果:

答:psw的各位为11110000,即

cy=1,ac=1,f0=1,rs1=1,rs0=0,ov=0,p=0

(1)subb a,30h

结果:(a)=d4h,cy=1,ac=0,ov=1,p=0

(2)subb a,#30h ;数值 ;源地址 ;目标地址 ;目标地址和数值 ;源地址 3-4 已知:(a)=7ah,(r0)=30h,(30h)=0a5h,(psw)=80h,请写出下列各

相关文档
最新文档