单片机课后习题与答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、 在功能上、工艺上、程序存储器的配置上,MCS-51 单片机有哪些种类?
工艺:HMOS 工艺和 CHMOS 工艺。 类型:基本型和增强型。 配置:片内无程序存储器、掩膜程序存储器 ROM、EPROM。
3、简要说明 MCS-51 与 AT89C51 的主要区别是什么?
AT89C51 单片机内部有 FLASH 存储器
补码:11111011 补码: 11000101
补码:10000001
补码:11111111
1-5 用十进制数写出下列补码的真值:
1FH 69H 89H FCH 97H CDH B3H 10H
1FH 的真值: 31D
Leabharlann Baidu
69H 的真值: 105D
89H 的真值: -119D
FCH 的真值: -4D
97H 的真值: -105D
“SUBB A,B”结果又如果?
A=56H, B=8DH, CY=0;
A=3CH, B=8DH, CY=1.
5、若需访问特殊功能寄存器和片外数据存储器,就采用那些寻址方式?
寄存器间接寻址.
6、在片内 RAM 中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48)H=90H,
试分析下段程序中各条指令的作用,说出按顺序执行完指令后的结果:
CDH 的真值: -51D
B3H 的真值: -77D
10H 的真值: 16D
1-6 已知 X 和 Y,求(X+Y)补。
(1) X=31D,Y=55D
(X+Y)补= 01010000B
(2) X=46D,Y=-81D
(X+Y)补=11010001B
(3) X=-54D,Y=93D
(X+Y)补=00100111B
MOV 40H,38H
;把 38 单元的内容送往 40 单元
MOV R1,30H
;把 30 单元的内容送往 R1
MOV 90H,R1
;把 R1 的内容送往 90 单元
MOV 48H,#30H
;把立即数 30 送往 48 单元
MOV A,@R1
;把以 R1 的内容作为地址送往累加器 A
MOV P2,P1
12、数据指针 DPTR 和程序计数器 PC 都是 16 位寄存器,它们有什么不同之处?
①数据指针 DPTR 数据指针 DPTR 是一个 16 位的寄存器,由 2 个 8 位特殊功能寄存 器 DPH 和 DPL 拼装而成。DPH 作 DPTR 的高 8 位,DPL 作 DPTR 的低 8 位。因此,DPTR 既可作为一个 16 位寄存器来使用,也可以作为二个独立的 8 位寄存器 DPH 和 DPL 使 用。DPTR 用作地址指针用来存放片内、片外 ROM 和片外 RAM 的地址,可寻址范围为 64K 地址空间寻址。 ②程序计数器 PC 程序计数器 PC 是一个 16 位加 1 计数器,用来存放将要执行的指 令地址,编码范围为 0000H~FFFFH 共 64K。
9、单片机内部数据存储器是怎样划分的?作用如何?
10、AT89C51 单片机有多少特殊功能寄存器?
21
11.什么叫堆栈?堆栈指示器 SP 的作用是什么?单片机初始化后 SP 中内容是什 么?在程序设计时,为什么要对 SP 重新赋值?
堆栈就是设置在片内 RAM 中的一段存储区域,它遵循先入后出的原则。 SP 就是一个用来指示栈顶位置的 8 位寄存器,它指示出堆栈顶部在内部 RAM 块中的 位置。 SP 初始化 07H,使得堆栈事实上由 08H 单元开始。 考虑到 08H~1FH 分属于工作寄存器区 1~3,若程序设计要用到这些区,则最好把 SP 值改到通用 RAM 区,即 2FH 或更大值。但是,如果堆栈指针初始化时设置在这个区域, 就要留出足够的字节单元作为堆栈区,以防止在数据存储时,破坏了堆栈的内容。
4、MCS-51 单片机的 P0~P3 口在结构上有何不同?
P0:数据总线和低 8 位地址总线 P1:通用 I/O 接口 P2:高 8 位地址线 P3:多功能 I/O 接口
5、单片机的片内、片外存储器如何选择?
当 EA 为低电平时,CP U 直 接 访 问 外 部 程 序 存 储 器 当 EA 为高电平时,CP U 要 先 对 内 部 0 ~ 4K 程 序 存 储 器 访 问 , 然 后 自 动 延 至 外 部 超 过 4K 的 程 序 存 储 器 。
2、MCS-51 单片机有那几种寻址方式?这几种寻址方式是如何寻址
有七种寻址方式: ① 立即寻址 ② 直接寻址 ③ 寄存器寻址 ④ 寄存器间接寻址
⑤ 变址寻址
⑥ 相对寻址
⑦ 位寻址
3、DA A 指令有什么作用?怎样使用?
DA A ;这条指令是进行 BCD 码运算时,跟在 ADD 或 ADDC 指令之后,将相加后存放在累
加器中的结果进行修正。
修正的条件和方法为:
若(A0~3)>9 或(AC)=1,则(A0~3)+06H→(A0~3); 若(A4~7)>9 或(CY)=1,则(A4~7)+06H→(A4~7)。 若以上二条同时发生,或高 4 位虽等于 9 ,但低 4 位修正后有进位,则应加 66H 修正。
4、已知 A=C9H,B=8DH,CY=1。执行指令“ADDC A,B”结果如何?执行指令
补码: 00010101 补码: 00111011 补码: 01111111 补码:00000001
-21 原码:10010101 -59 原码:10111011 -127 原码:11111111 -1 原码:1000001
反码:11101010 反码: 11000100
反码:10000000
反码:11111110
6、片机的晶振频率为 12MHz,则单片机的机器周期为多少?
1T 机器=12T 振=12/fOSC=12/12×10-6=1us
7、状态字寄存器各位的含义如何?
PSW 的各位定义为: CY:进行标志位(D7 位)。在进行加、减运算时,如果操作结果使累加器 A 中最高位 D7 向前有进位或借位,则 CY=1,否则 CY=0。在位操作中,CY 作位累加器 C 使用。 AC:辅助进行位(D6 位)。在加减运算中,当 A 中的 D3 位向 D4 位有进位或借位时,
AC=l,否则 AC=0。通常在二-十进制调整时使用。 F0、F1:用户标志位(D6、D1 位)。这两个是供用户定义的标志位,用户可根据需要 对 F0、F1 赋予一定的含义,由用户用软件方法对其置位或复位,用以控制用户程序 的转向。 RS1、RS0:工作寄存器区选择控制位(D4、D3 位)。用于设定哪一组工作寄存器为当 前正在工作的工作寄存器组,即对相同名称的 R0~R7 改变其物理地址,由用户通过 软件方式加以选择。RS1、RS0 的取值与选用工作寄存器的关系如表 2-7 示。单片机 在开机或复位后,RS1 和 RS0 总是为零状态,也说是说,选择 0 区为当前工作寄存器 组,故单片机复位后的工作寄存器 R0~R7 的物理地址为 00H~07H。
15、AT89 系列单片机有哪几种省电方式?
有两种省电方式:空闲方式和掉电方式
第 3 部分答案
1、简述下列基本概念:指令、指令系统、程序、汇编语言指令
指令:指示计算机执行某种操作的命令。 指令系统:指一台计算机所具有的全部指令的集合。 程序:各种指令的有序组合。 汇编语言指令:用助记符形式书写的指令,汇编语言指令由操作码和操作数两部分组 成。
1-4 写出下列各数的原码、反码和补码(用二进制数表示 )。
21 -21 59 -59 127 -127 1 -1
21 原码:00010101 59 原码: 00111011 127 原码: 01111111 1 原码:00000001
反码: 00010101 反码: 00111011 反码: 01111111 反码:00000001
1-8 简述单片机的主要特点。
1、具有优异的性能价格比 2、集成度高、体积小、可靠性高 3、控制功能强 4、低电压、低功耗
第 2 部分答案
1、 MCS-51 单片机内部包含哪些主要部件?
①8 位 CPU ②4KB 的程序存储器(掩膜 ROM) ③128B 的数据存储器 ④片外程序存储器最大寻址能力 64KB ⑤片外数据存储器最大寻址能力 64KB ⑥32 根输入/输出线 ⑦1 个全双工异步串行接口 ⑧2 个 16 位定时/计数器 ⑨5 个中断源,2 个中断优先级
第 1 部分答案
1-1 简述冯·诺依曼型计算机的主要特征。
1、采用二进制代替十进制运算
2、存储程序工作方法
3、计算机硬件系统的构成
1-2 计算机硬件系统由哪些部件组成?
计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备五个部分。
1-3 填空:
(1)100D=01100100=64H
(2)03CH=00111100B=60D
;把 P1 口的内容送往 P2 口
7、试说明下段程序中每条指令的作用,当指令执行完后,R0 中的内容是什么?
MOV R0, #0AFH
XCH A, R0
SWAP A
XCH A, R0
(R0)=0FAH
8、把累加器 A 中的低 4 位送到外部 RAM 的 2000H 单元中,试编程序。
ANL A,#OFH
RS1 RS0 00 01 10 11
表 2-7 工作寄存器组选择
工作寄存器组
地址
0
00H~07H
1
08H~0FH
2
10H~17H
3
18H~1FH
寄存器 R0~R7 R0~R7 R0~R7 R0~R7
OV:溢出标志位。用于指示累加器 A 在算术运算过程中是否发生的溢出。当运算结果 超出了 8 位数能表示的范围,即-128~+127,则 OV 自动置 1,否则 OV=0。 在加法运算中,OV=l 表示运算结果是错误的,OV=0 表示运算正确;在乘法运算中, OV=l 表示乘积超过 255,即乘积分别在 B 与 A 中,OV=0 表示乘积只在 A 中;在除法 运算中,OV=l 表示除数为 0,除法不能进行,OV=0 表示除数不为 0,除法可以正常进 行。 P:奇偶标志位。每条指令执行完毕后,由硬件根据 A 中 1 的数目对 P 位自动置位。 若 A 中 1 的数目为奇数,则 P=1,若 A 中 1 的数目为偶数,则 P=0。
MOV A,40H
;把 40 单元的内容送往累加器 A
MOV R1,A
;把累加器 A 的内容送往 R1
MOV P1,#0F0H
;把立即数 F0 送往 P1 口
MOV @R1,30H
;把 30 单元的内容送往以 R1 的内容为地址的单元
MOV DPTR,#1234H
;把立即数 1234 送往 DPTR
MOV DPTR,#2000H
MOVX @DPTR,A
9、利用乘法指令编写 15H×33H 的程序,将乘积的高 8 位存入 31H 单元,低 8
位存入 30H 单元
MOV A,#15H
MOV B,#33H
MUL A,B
MOV 31H,B
MOV 30H,A
10、编程将片内 35H~55H 单元中的内容送入到以 3000H 为首的存储区中。
(4) X=-23D,Y=-67D (X+Y)补=10100110B
(5) X=75D,Y=89D
(X+Y)补=10100100B
1-7 写出下列各数的 8421BCD 码。
1234 5678 1234 的 BCD 码:0001001000110100 5678 的 BCD 码:0101011001111000
8、MCS-51 单片机的控制信号有哪些?作用如何? ① PSEN (29 脚):外部程序存储器读选通信号。
②ALE/ PROG (30 脚):地址锁存允许/编程信号。8051 单片机可寻 ③ EA /VPP(31 脚):外部程序存储器访问允许/编程电压输入端。 ④RST/VPD(9 脚):复位信号/备用电源输入端。
13、8031 单片机在应用中,P2 和 P0 口能否直接作为输入输出口连接开关、指 示灯之类的外围设备?为什么?
不能,8031 单片机芯片内无程序存储器, P0 口需用作数据总线和低 8 位地址总线来 扩展外部程序存储器。
14、AT89 系列单片机的复位方式有几种?复位后单片机的状态如何 ?
有两种复位方式:手动按钮复位和上电复位 在 SFR 中,除了端口锁存器、堆栈指针 SP 和串行口的 SBUF 外,其余寄存器全部清零, 端口琐存器的复位值为 0FFH,堆栈指针值为 07H,SBUF 内为不定值。内部 RAM 的状 态不受复位影响,在系统启动时,RAM 的内容是不定的。
工艺:HMOS 工艺和 CHMOS 工艺。 类型:基本型和增强型。 配置:片内无程序存储器、掩膜程序存储器 ROM、EPROM。
3、简要说明 MCS-51 与 AT89C51 的主要区别是什么?
AT89C51 单片机内部有 FLASH 存储器
补码:11111011 补码: 11000101
补码:10000001
补码:11111111
1-5 用十进制数写出下列补码的真值:
1FH 69H 89H FCH 97H CDH B3H 10H
1FH 的真值: 31D
Leabharlann Baidu
69H 的真值: 105D
89H 的真值: -119D
FCH 的真值: -4D
97H 的真值: -105D
“SUBB A,B”结果又如果?
A=56H, B=8DH, CY=0;
A=3CH, B=8DH, CY=1.
5、若需访问特殊功能寄存器和片外数据存储器,就采用那些寻址方式?
寄存器间接寻址.
6、在片内 RAM 中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48)H=90H,
试分析下段程序中各条指令的作用,说出按顺序执行完指令后的结果:
CDH 的真值: -51D
B3H 的真值: -77D
10H 的真值: 16D
1-6 已知 X 和 Y,求(X+Y)补。
(1) X=31D,Y=55D
(X+Y)补= 01010000B
(2) X=46D,Y=-81D
(X+Y)补=11010001B
(3) X=-54D,Y=93D
(X+Y)补=00100111B
MOV 40H,38H
;把 38 单元的内容送往 40 单元
MOV R1,30H
;把 30 单元的内容送往 R1
MOV 90H,R1
;把 R1 的内容送往 90 单元
MOV 48H,#30H
;把立即数 30 送往 48 单元
MOV A,@R1
;把以 R1 的内容作为地址送往累加器 A
MOV P2,P1
12、数据指针 DPTR 和程序计数器 PC 都是 16 位寄存器,它们有什么不同之处?
①数据指针 DPTR 数据指针 DPTR 是一个 16 位的寄存器,由 2 个 8 位特殊功能寄存 器 DPH 和 DPL 拼装而成。DPH 作 DPTR 的高 8 位,DPL 作 DPTR 的低 8 位。因此,DPTR 既可作为一个 16 位寄存器来使用,也可以作为二个独立的 8 位寄存器 DPH 和 DPL 使 用。DPTR 用作地址指针用来存放片内、片外 ROM 和片外 RAM 的地址,可寻址范围为 64K 地址空间寻址。 ②程序计数器 PC 程序计数器 PC 是一个 16 位加 1 计数器,用来存放将要执行的指 令地址,编码范围为 0000H~FFFFH 共 64K。
9、单片机内部数据存储器是怎样划分的?作用如何?
10、AT89C51 单片机有多少特殊功能寄存器?
21
11.什么叫堆栈?堆栈指示器 SP 的作用是什么?单片机初始化后 SP 中内容是什 么?在程序设计时,为什么要对 SP 重新赋值?
堆栈就是设置在片内 RAM 中的一段存储区域,它遵循先入后出的原则。 SP 就是一个用来指示栈顶位置的 8 位寄存器,它指示出堆栈顶部在内部 RAM 块中的 位置。 SP 初始化 07H,使得堆栈事实上由 08H 单元开始。 考虑到 08H~1FH 分属于工作寄存器区 1~3,若程序设计要用到这些区,则最好把 SP 值改到通用 RAM 区,即 2FH 或更大值。但是,如果堆栈指针初始化时设置在这个区域, 就要留出足够的字节单元作为堆栈区,以防止在数据存储时,破坏了堆栈的内容。
4、MCS-51 单片机的 P0~P3 口在结构上有何不同?
P0:数据总线和低 8 位地址总线 P1:通用 I/O 接口 P2:高 8 位地址线 P3:多功能 I/O 接口
5、单片机的片内、片外存储器如何选择?
当 EA 为低电平时,CP U 直 接 访 问 外 部 程 序 存 储 器 当 EA 为高电平时,CP U 要 先 对 内 部 0 ~ 4K 程 序 存 储 器 访 问 , 然 后 自 动 延 至 外 部 超 过 4K 的 程 序 存 储 器 。
2、MCS-51 单片机有那几种寻址方式?这几种寻址方式是如何寻址
有七种寻址方式: ① 立即寻址 ② 直接寻址 ③ 寄存器寻址 ④ 寄存器间接寻址
⑤ 变址寻址
⑥ 相对寻址
⑦ 位寻址
3、DA A 指令有什么作用?怎样使用?
DA A ;这条指令是进行 BCD 码运算时,跟在 ADD 或 ADDC 指令之后,将相加后存放在累
加器中的结果进行修正。
修正的条件和方法为:
若(A0~3)>9 或(AC)=1,则(A0~3)+06H→(A0~3); 若(A4~7)>9 或(CY)=1,则(A4~7)+06H→(A4~7)。 若以上二条同时发生,或高 4 位虽等于 9 ,但低 4 位修正后有进位,则应加 66H 修正。
4、已知 A=C9H,B=8DH,CY=1。执行指令“ADDC A,B”结果如何?执行指令
补码: 00010101 补码: 00111011 补码: 01111111 补码:00000001
-21 原码:10010101 -59 原码:10111011 -127 原码:11111111 -1 原码:1000001
反码:11101010 反码: 11000100
反码:10000000
反码:11111110
6、片机的晶振频率为 12MHz,则单片机的机器周期为多少?
1T 机器=12T 振=12/fOSC=12/12×10-6=1us
7、状态字寄存器各位的含义如何?
PSW 的各位定义为: CY:进行标志位(D7 位)。在进行加、减运算时,如果操作结果使累加器 A 中最高位 D7 向前有进位或借位,则 CY=1,否则 CY=0。在位操作中,CY 作位累加器 C 使用。 AC:辅助进行位(D6 位)。在加减运算中,当 A 中的 D3 位向 D4 位有进位或借位时,
AC=l,否则 AC=0。通常在二-十进制调整时使用。 F0、F1:用户标志位(D6、D1 位)。这两个是供用户定义的标志位,用户可根据需要 对 F0、F1 赋予一定的含义,由用户用软件方法对其置位或复位,用以控制用户程序 的转向。 RS1、RS0:工作寄存器区选择控制位(D4、D3 位)。用于设定哪一组工作寄存器为当 前正在工作的工作寄存器组,即对相同名称的 R0~R7 改变其物理地址,由用户通过 软件方式加以选择。RS1、RS0 的取值与选用工作寄存器的关系如表 2-7 示。单片机 在开机或复位后,RS1 和 RS0 总是为零状态,也说是说,选择 0 区为当前工作寄存器 组,故单片机复位后的工作寄存器 R0~R7 的物理地址为 00H~07H。
15、AT89 系列单片机有哪几种省电方式?
有两种省电方式:空闲方式和掉电方式
第 3 部分答案
1、简述下列基本概念:指令、指令系统、程序、汇编语言指令
指令:指示计算机执行某种操作的命令。 指令系统:指一台计算机所具有的全部指令的集合。 程序:各种指令的有序组合。 汇编语言指令:用助记符形式书写的指令,汇编语言指令由操作码和操作数两部分组 成。
1-4 写出下列各数的原码、反码和补码(用二进制数表示 )。
21 -21 59 -59 127 -127 1 -1
21 原码:00010101 59 原码: 00111011 127 原码: 01111111 1 原码:00000001
反码: 00010101 反码: 00111011 反码: 01111111 反码:00000001
1-8 简述单片机的主要特点。
1、具有优异的性能价格比 2、集成度高、体积小、可靠性高 3、控制功能强 4、低电压、低功耗
第 2 部分答案
1、 MCS-51 单片机内部包含哪些主要部件?
①8 位 CPU ②4KB 的程序存储器(掩膜 ROM) ③128B 的数据存储器 ④片外程序存储器最大寻址能力 64KB ⑤片外数据存储器最大寻址能力 64KB ⑥32 根输入/输出线 ⑦1 个全双工异步串行接口 ⑧2 个 16 位定时/计数器 ⑨5 个中断源,2 个中断优先级
第 1 部分答案
1-1 简述冯·诺依曼型计算机的主要特征。
1、采用二进制代替十进制运算
2、存储程序工作方法
3、计算机硬件系统的构成
1-2 计算机硬件系统由哪些部件组成?
计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备五个部分。
1-3 填空:
(1)100D=01100100=64H
(2)03CH=00111100B=60D
;把 P1 口的内容送往 P2 口
7、试说明下段程序中每条指令的作用,当指令执行完后,R0 中的内容是什么?
MOV R0, #0AFH
XCH A, R0
SWAP A
XCH A, R0
(R0)=0FAH
8、把累加器 A 中的低 4 位送到外部 RAM 的 2000H 单元中,试编程序。
ANL A,#OFH
RS1 RS0 00 01 10 11
表 2-7 工作寄存器组选择
工作寄存器组
地址
0
00H~07H
1
08H~0FH
2
10H~17H
3
18H~1FH
寄存器 R0~R7 R0~R7 R0~R7 R0~R7
OV:溢出标志位。用于指示累加器 A 在算术运算过程中是否发生的溢出。当运算结果 超出了 8 位数能表示的范围,即-128~+127,则 OV 自动置 1,否则 OV=0。 在加法运算中,OV=l 表示运算结果是错误的,OV=0 表示运算正确;在乘法运算中, OV=l 表示乘积超过 255,即乘积分别在 B 与 A 中,OV=0 表示乘积只在 A 中;在除法 运算中,OV=l 表示除数为 0,除法不能进行,OV=0 表示除数不为 0,除法可以正常进 行。 P:奇偶标志位。每条指令执行完毕后,由硬件根据 A 中 1 的数目对 P 位自动置位。 若 A 中 1 的数目为奇数,则 P=1,若 A 中 1 的数目为偶数,则 P=0。
MOV A,40H
;把 40 单元的内容送往累加器 A
MOV R1,A
;把累加器 A 的内容送往 R1
MOV P1,#0F0H
;把立即数 F0 送往 P1 口
MOV @R1,30H
;把 30 单元的内容送往以 R1 的内容为地址的单元
MOV DPTR,#1234H
;把立即数 1234 送往 DPTR
MOV DPTR,#2000H
MOVX @DPTR,A
9、利用乘法指令编写 15H×33H 的程序,将乘积的高 8 位存入 31H 单元,低 8
位存入 30H 单元
MOV A,#15H
MOV B,#33H
MUL A,B
MOV 31H,B
MOV 30H,A
10、编程将片内 35H~55H 单元中的内容送入到以 3000H 为首的存储区中。
(4) X=-23D,Y=-67D (X+Y)补=10100110B
(5) X=75D,Y=89D
(X+Y)补=10100100B
1-7 写出下列各数的 8421BCD 码。
1234 5678 1234 的 BCD 码:0001001000110100 5678 的 BCD 码:0101011001111000
8、MCS-51 单片机的控制信号有哪些?作用如何? ① PSEN (29 脚):外部程序存储器读选通信号。
②ALE/ PROG (30 脚):地址锁存允许/编程信号。8051 单片机可寻 ③ EA /VPP(31 脚):外部程序存储器访问允许/编程电压输入端。 ④RST/VPD(9 脚):复位信号/备用电源输入端。
13、8031 单片机在应用中,P2 和 P0 口能否直接作为输入输出口连接开关、指 示灯之类的外围设备?为什么?
不能,8031 单片机芯片内无程序存储器, P0 口需用作数据总线和低 8 位地址总线来 扩展外部程序存储器。
14、AT89 系列单片机的复位方式有几种?复位后单片机的状态如何 ?
有两种复位方式:手动按钮复位和上电复位 在 SFR 中,除了端口锁存器、堆栈指针 SP 和串行口的 SBUF 外,其余寄存器全部清零, 端口琐存器的复位值为 0FFH,堆栈指针值为 07H,SBUF 内为不定值。内部 RAM 的状 态不受复位影响,在系统启动时,RAM 的内容是不定的。