单片机原理及接口技术第二版余锡存著课后习题答案.docx
- 文档编号:6489425
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:43
- 大小:540.29KB
单片机原理及接口技术第二版余锡存著课后习题答案.docx
《单片机原理及接口技术第二版余锡存著课后习题答案.docx》由会员分享,可在线阅读,更多相关《单片机原理及接口技术第二版余锡存著课后习题答案.docx(43页珍藏版)》请在冰豆网上搜索。
单片机原理及接口技术第二版余锡存著课后习题答案
―
第二章
1.89C51、87C51、80C51和80C31单片机的主要区别在那里?
答:
相同之处是:
制造工艺都为CHMOS,都有128字节片内RAM、两个
定时/计数器、4个8位I/O并行口,一个串行口和5个中断源。
主要区别:
189C51片内4K字节FLASHROM;
287C51片内4K字节EPROM;
380C51片内4K字节掩膜ROM;
480C31片内无程序存储器。
2.MCS-51单片机引脚有多少I/O线?
它们和单片机对外的地址总线和数据总线有何关系?
答:
4个8位I/O并行口,一个串行口;
其中P0口为外接程存和数存的地址低8位和数据总线的时分复用接口;
其中P2口为外接程存和数存的地址高8位总线接口;
其中P1口为真正的用户口线;
其中P3口有第2功能;
以上4个口线在没有专用功能时,也可以做通用I/O口线用。
3.简述8031片内RAM区地址空间的分配特点。
答:
MCS-51单片机片内RAM为256字节,地址范围为00H〜FFH,分为两大部分:
低128字节(00H〜7FH)为真正的RAM区;高128字节(80H〜FFH)为特殊功能寄存器区SFR。
在低128字节RAM中,00H〜仆H共32单元是4个通用工作寄存器区。
每一个区有8个通用寄存器R0〜R7。
4.MCS-51单片机由哪几个部分组成。
答:
1一个8位CPU;
24KBROMorEPROM(8031无ROM);
3128字节RAM数据存储器;
421个特殊功能寄存器SFR;
54个8位并行I/O口,其中P0、P2为地址/数据线,可寻址64KB程序存储器和64KB数据存储器;
6一个可编程全双工串行口;
7具有5个中断源,两个优先级,嵌套中断结构;
8两个16位定时器/计数器;
9一个片内振荡器及时钟电路。
5.MCS-51单片机的EA,ALE,PSEN信号各自的功能是什么?
答:
都是控制总线
1EA/Vpp:
访问内部程序存储器的控制信号/编程电压输入端。
EA1时,
CPU从片内读取指令,EA0CPU从片外读取指令。
2ALE/PROG:
地址锁存允许/编程信号线
3PSEN:
外部程序存储器读选通信号。
4RSE/VPD:
复位输入信号/掉电保护后备电源引脚。
6.MCS-51单片机如何实现工作寄存器组的选择?
RS1(PSW.4)、RS0(PSW.3)为工作寄存器组的选择位;
1取值为00时选择第0组工作寄存器,片内RAM地址是00H〜07H,名称为R0〜R7;
2取值为01时选择第1组工作寄存器,片内RAM地址是08H〜0FH,名称为R0〜R7;
3取值为10时选择第2组工作寄存器,片内RAM地址是10H〜17H,名称为R0〜R7;
4取值为11时选择第3组工作寄存器,片内RAM地址是18H〜仆H,名称为R0〜R7。
7•什么是时钟周期、机器周期、指令周期?
当单片机的时钟频率为12MHz时,一个机器周期是多少?
ALE引脚的输出频率是多少?
(1)振荡周期:
也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期。
(2)状态周期:
每个状态周期为时钟周期的2倍,是振荡周期经二分频后得到的。
(3)机器周期:
一个机器周期包含6个状态周期S1~S6,也就是12个时钟周期在一个机器周期内,CPU可以完成一个独立的操作
(4)指令周期:
它是指CPU完成一条操作所需的全部时间。
每条指令执行时间都是有一个或几个机器周期组成。
MCS-51系统中,有单周期指令、双周期指令和四周期指令。
当单片机的时钟频率为12MHz时,一个机器周期是多少1蚁微秒);ALE引脚的输出频率是多少2g(微秒)。
第三章
1.MCS-51指令系统按功能分为几类?
具有几种寻址方式?
他们的寻址范围如何?
答:
1按功能分为5类,分别是:
数据传送类、算术操作类、逻辑操作类、控制转移类和位操作类;
2具有7种寻址方式;
3立即寻址,寻址范围是程序存储器;
直接寻址,寻址范围是内部RAM低128字节和高128字节;
寄存器寻址,寻址范围是四组工作寄存器R0〜R7;
寄存器间接寻址,寻址范围是内部RAM的低128和外部RAM低64K可寻址空间;
基址寄存器加变址寄存器间接寻址,寻址范围是程序存储器;
相对寻址,寻址范围是以下一条指令为相对地址的-128〜+127字节范围内;
位寻址,寻址范围是可位寻址空间,包括内部RAM的可寻址位,特殊功能
寄存器中的可寻址位
2.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器
A,R0,和内部RAM中50H、51H单元的内容为和值?
答:
MOV
A,59H
;(A)=(59H)=50H
MOV
R0,A;
(R0)=50H
MOV
A,#00;
(A)=00
MOV
@R0,A
;((R0))=(50H)=00
MOV
A,#25H
;(A)=25H
MOV
51H,A
;(51H)=25H
MOV
52H,#70H;
(52H)=70H
执行下列程序段后:
(A)=25H,(R0)=50H,(50H)=00、(51H)=25H
3.PSW中Cy与OV有何不同?
下列程序段执行后(Cy)=?
(OV)=?
MOVA,#56H
ADDA,#74H
答:
Cy—进位、借位标志位;
OV—溢出标志位。
MOVA,#56H;(A)=56H=01010110B
ADDA,#74H;(A)=56H+74H=0CAH=11001010B,
程序执行后:
(Cy)=0(OV)=1
4.MOVCA,@A+DPTR与MOVXA,@DPTR指令有何不同?
答:
1MOVCA,@A+DPTR;寻找的操作数在程序存储器中,地址是:
(A)
+(DPTR);
2MOVXA,@DPTR;寻找的操作数在外部数据存储器中,地址是:
(DPTR)。
5.AJMP、LJMP、SJMP指令功能上有何不同?
答:
相同之处,都是无条件转移指令。
①AJMPaddr11;下调指令为基准的2KB范围内的跳转指令。
②LJMPaddr16;转移的目标地址可以在64KB程序存储器的任何地方。
3SJMPrel;下调指令为基准的-128B〜+127B范围内的短跳转指令。
6.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别
为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?
PUSH
30H
PUSH
31H
POP
DPL
POP
DPH
MOV
30H,#00H
MOV31H,#0FFH
答:
PUSH
30H
;(61H)
=(30H)=24H
PUSH
31H
;(62H)=
(31H)=10H
POP
DPL
;(DPL)=
(62H)=10H
POP
DPH
;(DPH)=
(61H)=24H
MOV
30H,#00H
;(30H)
=00H
MOV
31H,#0FFH
;(31H)
=0FFH
=00H,(31H)=
中的内容将为何值?
程序执行后:
(61H)=24H,(62H)=10H,(30H)
0FFH,(DPTR)=2410H
7.试分析下列程序段,当程序执行后,位地址00H和01H
P1口的8条I/O线为何状态?
CLRC
MOVA,#66H
JCLOOP1
CPLC
SETB01H
LOOP1:
ORLC,ACC.0
JBACC.2,LOOP2
答:
CLRC
;(Cy)=0
MOV
A,#66H
;(A)=66H=01100110B
JC
LOOP1
;因此时(Cy)=0,所以不跳转
CPL
C;
(Cy)=1
SETB
01H;
(01H)=1
LOOP1:
ORL
C,ACC.0;
(Cy)=(Cy)V(ACC.O)=1
JBACC.2,LOOP2;
因(ACC.2)=1
LOOP2:
MOVP1,A;(P1)=01100110B
8.要完成以下的数据传送,应如何用MCS-51指令实现?
⑴R1的内容传送到R0;
⑵片外RAM20H单元的内容送R0;
⑶片外RAM20H单元的内容送片内RAM20H单元;
⑷片外RAM1000H单元的内容送片内RAM20H单元;
⑸
ROM2OOOH
单元的内容送RO;
⑹
ROM2OOOH
单元的内容送片内RAM2OH
单元;
⑺
ROM2OOOH
单元的内容送片外RAM2OH
单元。
答:
⑴R1
的内容传送到
RO;
MOVA,R1
MOVR0,A
⑵片外RAM20H单元的内容送R0;
MOVXA,@R1
⑶片外RAM20H单元的内容送片内RAM20H单元;
MOVR1,#20H
MOVXA,@R1
MOV20H,A
⑷片外RAM1000H单元的内容送片内RAM20H单元;
MOVDPTR,#20H
MOVXA,@DPTR
MOV20H,A
⑸ROM2000H单元的内容送R0;
MOVDPTR,#2000H
CLRA
MOVCA,@A+DPTR
MOVR0,A
⑹ROM2000H单元的内容送片内RAM20H单元;
MOVDPTR,#2000H
CLRA
MOVCA,@A+DPTR
MOV20H,A
⑺ROM2000H单元的内容送片外RAM20H单元。
CLRA
MOVR0,#20H
MOVX@R0,A
9.分析以下程序每条指令执行的结果:
MOV
A,#25H
;(A)=25H
MOV
R1,#33H
;(R1)=33H
MOV
40H,#1AH
;(40H)=1AH
MOV
R0,40H
;(R0)=1AH
ADD
A,R1
;(A)=25H+33H=58H
ADDC
A,@R0
;(A)=58H+(1AH)+(Cy)=58H
ADDC
A,40H
;(A)=58H+1AH+(Cy)=72H
10.设A=83H,R0=17H
,(17H)=34H,执行下列程序后,(A)=?
ANL
A,#17H
;(A)=10000011BA00010111B=0000
0011B
ORL
17H,A
;(17H)=00110100BV00000011B=0011
0111B
XRL
A,@R0
;(A)=00000011B©00110111=00110100B
CPL
A
;(A)=11001011B
11.两个4位BCD码数相加,被加数和加数分别存于30H、31H和40H、
41H单元中(次序为千位、百位在低地址中,十位、个位在高地址中),和数放
在50H、51H
、52H中(52H用于存放最高位的进位),试编写加法程序。
解:
ORG00H
MOV
30H,#12H;
MOV
31H,#34H
J
MOV
40H,#56H
J
MOV
41H,#78H
J
MOV
A,31H;
取被加数十个位
ADD
A,41H;
相加,(A)=(31H)+(41H)
DA
A
;十进制调整
MOV
51H,A
;存十位个位运算结果
MOV
A,30H
;取被加数千百位
ADDC
A,40H
;相加,(A)=(30H)+(40H)
DA
A;
十进制调整
MOV
50H,A
;存千位百位运算结果
CLR
A
;清A
ADDC
A,#0
;将进位加到A中
MOV
52H,A;
存进位
SJMP
$
12.试编写一程序,查找内部RAM单元的20H〜50H中是否有OAAH这一数据,若有,则将51H单元置为01H,若没有,则使51H单元置0。
解:
ORG00H
MOV30H,#0AAH;
MOVR0,#20H
BIJIAO:
MOVA,@R0
CJNEA,#0AAH,LOOP;
MOV
51H,#01H
SJMP
JIESHU
LOOP:
INC
R0
DJNZ
R1,BIJIAO
MOV
51H,#00H
JIESHU:
SJMP
$
第四章
个程序实现X*10+Y
1、若有两个符号数X,丫分别存放在内部存储器50H、51H单元中,试编写一
1
ORG
00H
0000
7850
2
MOVR0,#50H
0002
E6
3
MOV
A,@R0
0003
75F00A
4
MOVB,#0AH
0006
A4
5
MUL
AB
0007
08
6
INC
R0
0008
26
7
ADD
A,@R0
0009
08
8
INC
R0
000A
A6F0
9
MOV
@R0,B
000C
08
10
INC
R0
000D
F6
11
MOV
@R0,A
,结果存入52H、53H中
的数,试编写程序将它们转换成BCD码,并以压缩BCD形式存放在以2000H
为首地址的外部RAM
中。
1
ORG00H
0000
903000
2
MOVDPTR,#3000H
;原始数据首地址
0003
7807
3
MOV
R0,#07;
循环次数
0005
7930
4
MOV
R1,#30H;
转换结果暂存区指
针
0007
E0
5
CH1:
MOVXA,@DPTR
0008
550F
6
ANL
A,#00001111B
000A
C4
7
SWAPA
000B
F5F0
8
MOV
B,A
000D
A3
9
INC
DPTR
000E
E0
10
MOVXA,@DPTR
2、在以3000H为首地址的外部
RAM中,存放了14个以ASCII码表示的0~9
000F550F
0011
45F0
12
ORLA,B
0013
F7
13
MOV
@R1,A
0014
09
14
INC
R1
0015
A3
15
INC
DPTR
0016
D8EF
16
DJNZ
R0,CH1
0018
902000
17
MOV
DPTR,#2000H;
转换结果存储
11ANLA,#00001111B
001B
7A07
18
MOV
R2,#07H
001D
7930
19
MOV
R1,#30H
001F
E7
20CH2:
MOVA,@R1
3、采样的5个值分别存放在
R0、R1、
R2、R3、
并存放在
R2中。
1
ORG
00H
区
R4
结果个数
,求出它们的中间值,
>0000
7805
2
MOVR0,#5
0002
7906
3
MOVR1,#6
0004
7A07
4
MOVR2,#7
0006
7B08
5
MOVR3,#8
0008
7C09
6
MOVR4,#9
000A
E4
7
CLRA;
000B
C3
8
CLRC;
000C
E8
9
MOVA,R0;
000D
29
10
ADDA,R1
000E
2A
11
ADDA,R2;
000F
2B
12
ADDA,R3
0010
2C
13
ADDA,R4
0011
75F005
14
MOVB,#5
0014
84
15
DIVA
0015
FA
16
MOVR2,A
18END
4、以BUF1为起始地址的外部数据存储区中存放着16个单字节的无符号数,求其平均值并送入R2中。
1
ORG
00H
2
BUF1
EQU#1000H
0000
901000
3
MOV
DPTRBUF1
0003
AA00
4
MOV
R2,0
0005
7816
5
MOVR0,#16H
0007
E0
6
SUM:
MOVXA,@DPTR
0008
2A
7
ADD
A,R2
0009
FA
8
MOV
R2,A
000A
A3
9
INC
DPTR
000B
D8FA
10
DJNZ
R0,SUM
000D
75F010
11
MOV
B,#10H
0010
84
12
DIV
AB
0011
FA
13
MOV
R2,A
14END
5、试编写程序,将内部RAM单元中DATA1开始的20个单字节数依次与
DATA2单元为起始地址的20个单字节数据进行交换。
>1DATA1EQU#30H
DATA2EQU#50H
3LENEQU#164ORG0H
00007830
5MOVR0,DATA1
0004
7A10
7
MOV
R2,LEN
0006
E6
8
EXC:
MOVA,@R0
0007
C7
9
XCH
A,@R1
0008
F6
10
MOV
@R0,A
0009
08
11
INC
R0
000A
09
12
INC
R1
000B
DAF9
13
DJNZ
R2,EXC
14
END
00027950
6MOVR1,DATA2
6、某场歌手赛,共有
10个评委,试编写一程序,输入
10个评分,去掉最高分
和最低分,求平均分(均为BCD码)
ORG0H
NEQU#5
BLOCKEQU#30H
ISELSORT:
MOVR7,N
DECR7
MOVR1,BLOCK
ISST1:
MOVR0,BLOCK
MOVA,R7
MOV
R6,A
MOV
A,@R0
MOV
B,A
ISST2:
INCR1
MOV
A,@R1
CLR
C
SUBB
A,B
JCISST3
MOV
A,@R1
MOV
R2,A
MOV
B,@R1
ISST3:
DJNZR6,ISST2
MOV
A,B
XCH
A,@R1
MOV
B,R2
MOV
@R1,B
MOV
@R1,A
DJNZ
R7,ISST1
MOV
R0,BLOCK
MOV
@R0,#0;去掉最低分
MOV
A,BLOCK
ADD
A,#9
MOVR0,A
MOV@R0,#0;去掉最高分
AD:
MOVR0,BLOCK
INCRO
MOVR1,#8
CLRA
CLRC
MOVB,#0
ADL:
ADDA,@R0
DAA
MOVR2,A
ADDCA,#0
MOVB,A
MOVA,R2
DJNZR1,ADL
MOVR5,0
MOVR4,B
MOVR3,A
MOVR2,#0
MOVR1,#8
R5R4R3/R2R1=R4R3
MOVR1,#00H
MOVR2,#0FH
MOVR3,#04H
MOVR4,#05H
MOVR5,#06H
LCALL_DIV
AJMP$
_DIV:
;{
CLRC
MOV30H,#0
MOV31H,#0
MOV32H,#0_DIV_LOOP:
CLRC
MOVA,R3
SUBBA,R1
MOVR3,A
MOVA,R4
SUBBA,R2
MOVR4,A
MOVA,R5
SUBBA,#0
MOVR5,A
JC_DIV_END
INC_SHANG:
CLRC
MOV
A,30H
ADDC
A,#1
MOV
30H,A
MOV
A,31H
ADDC
A,#0
MOV
31H,A
MOV
A,32H
ADDC
A,#0
MOV
32H,A
LJMP
_DIV_LOOP
DIV_END:
CLRC
MOV
A,R1
ADDC
A,R3
MOV
A,R2
ADDC
A,R4
MOV
R3,30H
MOV
R4,31H
END
7、编写将一个十六进制数转换为十进制数的子程序
>000078FE2MOVR0,#FEH
0004
E8
4
HEXBCD:
MOV
0005
75F064
5
MOV
B,#100
0008
84
6
DIV
AB
0009
F7
7
MOV
@R1,A
000A
740A
8
MOV
A,#10
000C
C5F0
9
XCHA,B
000E
84
10
DIV
AB
000F
09
11
INC
R1
0010
F7
12
MOV
@R1,A
0011
09
13
INC
R1
0012
A7F0
14
MOV
@R1,B
15RET
8、在内部RAM的BLOCK开始的单元中有一无符号数据块,数据长度为LEN试编程求其中最大的数并存入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 接口 技术 第二 版余锡存著 课后 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)