单片机课后习题

更新时间:2023-11-06 10:53:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章

1. 给出下列有符号数的原码、反码和补码(假设计算机字长为8位)。 +45 -89 -6 +112 答:【+45】原=00101101,【+45】反=00101101,【+45】补=00101101 【-89】原=11011001,【-89】反=10100110,【-89】补=10100111 【-6】原=10000110,【-6】反=11111001,【-6】补=11111010 【+112】原=01110000,【+45】反=01110000,【+45】补=01110000 2. 指明下列字符在计算机内部的表示形式。 AsENdfJFmdsv120

答:41H 73H 45H 4EH 64H 66H 4AH 46H 6DH 64H 73H 76H 31H 32H 30H 10. 什么是单片机?

答:单片机是把微型计算机中的微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成到一个集成电路芯片上形成的微型计算机。因而被称为单片微型计算机,简称为单片机。

11. 单片机的主要特点是什么? 答:主要特点如下:

1) 在存储器结构上,单片机的存储器采用哈佛(Harvard)结构 2) 在芯片引脚上,大部分采用分时复用技术

3) 在内部资源访问上,采用特殊功能寄存器(SFR)的形式 4) 在指令系统上,采用面向控制的指令系统

5) 内部一般都集成一个全双工的串行接口 6) 单片机有很强的外部扩展能力 12. 指明单片机的主要应用领域。

答:单机应用:1) 工业自动化控制;2) 智能仪器仪表;3) 计算机外部设备 和智能接口;4) 家用电器

多机应用:功能弥散系统、并行多机处理系统和局部网络系统。

第二章

1. MCS-51单片机由哪几个部分组成?

答:MCS-51单片机主要由以下部分组成的:时钟电路、中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并行接口、串行接口、中断系统及一些特殊功能寄存器(SFR)。 2. MCS-51的标志寄存器有多少位,各位的含义是什么? 答:MCS-51的标志寄存器PSW有8位;

D D

6 5 4 3 2 1 0 c 0 R S1 so R V 含义如下: C(PSW.7):进位或借位标志位。

AC(PSW.6):辅助进位或借位可标志位。

F0(PSW.5):用户标志位。是系统预留给用户自己定义的标志位。

RS1、RS0(PSW.4、PSW.3):寄存器组选择位。可用软件置位或清零,用于从四组工作寄存器中选定当前的工作寄存器组。

OV(PSW.2):溢出标志位。在加法或减法运算时,如运算的结果超出8位二进制数的范围,则OV置1,标志溢出,否则OV清零。

P(PSW.0):奇偶标志位。用于记录指令执行后累加器A中1的个数的奇偶性。若累加器A中1的个数为奇数,则P置位,若累加器A中1的个数为偶数,则P清零。

其中PSW.1未定义,可供用户使用。

3. 在8051的存储器结构中,内部数据存储器可分为几个区域?各有什么特点?

答:片内数据存储器按功能可以分成以下几个部分:工作寄存器组区、位寻址区、一般RAM区和特殊功能寄存器区,其中还包含堆栈区。工作寄存器组区,00H~1FH单元,可用R0~R7等8个寄存器访问;位寻址区,20H~2FH单元,可按位方式访问;一般RAM区,30H~7FH单元;堆栈区,可从08到7F单元;特殊功能寄存器区位于80H~FFH单元。 4. 什么是堆栈?说明MCS-51单片机的堆栈处理过程。

答:堆栈是按先入后出、后入先出的原则进行管理的一段存储区域。CS-51单片机的堆栈是向上生长型的,存入数据是从地址低端向高端延伸,取出数据是从地址高端向低端延伸。入栈和出栈数据是以字节为单位的。入栈时,SP指针的内容先自动加1,然后再把数据存入到SP指针指向的单元;出栈时,先把SP指针指向单元的数据取出,然后再把SP指针的内容自动减1。

5. 简述内部ROM的工作寄存器组情况,系统默认是第几组? 答:51单片机有4组工作寄存器,每组8个,用寄存器R0~R7表示,标志寄存器PSW的RS1、RS03两位用于从四组工作寄存器中选定当前的工作寄存器组,默认是第0组。 6. 51单片机的程序存储器64KB空间在使用时有那几个特殊地址?

答:51单片机程序存储器的64KB存储空间使用时有7个特殊的地址,第一个是0000H,它是系统的复位地址,51单片机复位后PC的值为0000H,复位后从0000H单元开始执行程序,由于后面几个地址的原因,用户程序一般不直接从0000H单元开始存放,而是放于后面,通过在0000H单元放一条绝对转移指令转到后面的用户程序。后面6个为6个中断源的入口地址,51单片机中断响应后,系统会自动的转移到相应中断入口地址去执行程序。 7. 简述什么是51单片机的特殊功能寄存器?

答:特殊功能寄存器(SFR)也称为专用寄存器,专门用于控制、管理片内算术逻辑部件、并行I/O接口、串行口、定时/计数器、中断系统等功能模块的工作。用户在编程时可以给其设定值,但不能移作他用。SFR分布在80H~0FFH的地址空间,与片内随机存储块统一编址。除PC外,51子系列有18个特殊功能寄存器,其中3个为双字节,共占用21个字节;52子系列有21个特殊寄存器,其中5个为双字节,共占用26个字节。

8. MCS-51单片机有多少根I/O线?它们和单片机的外部总线有什么关系?

答:MCS-51单片机有32根I/O线,由P0口经地址锁存器提供低8位(A7~A0),P2口提供高8位(A15~A8)而形成。数据总线宽度为8位,由P0口直接提供。控制总线由第二功能状态下的P3口和4根独立的控制线RST、EA、ALE和PSEN组成。 9. 简述PSEN、EA、RST和ALE引脚的功能。

答:ALE:地址锁存信号输出端。ALE在每个机器周期内输出两个脉冲。下降沿用于控制锁存P0输出的低8位地址。

PSEN:片外程序存储器读选通信号输出端,低电平有效。在从外部程序存储器读取指令或常数期间,该信号有效。

RST:复位信号。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。

EA:片外程序存储器选用端。该引脚为低电平时,选用片外程序存储器,高电平或悬空时选用片内程序存储器。

10. 什么是机器周期?什么是指令周期?MCS有效。-51单片机的一个机器周期包括多少个时钟周期?

答:机器周期:机器周期是单片机的基本操作周期,每个机器周期包含S1、S2、?、S66个状态,每个状态包含两拍P1和P2,每一拍为一个时钟周期(振荡周期)。因此,一个机器周

期包含12个时钟周期。

11. 复位的作用是什么?51单片机复位有几种方式?

答:复位使单片机回复到初始状态。在时钟电路工作以后,当外部电路使得RST端出现两个机器周期(24个时钟周期)以上的高电平,系统内部复位。复位有两种 方式:上电复位和按钮复位,

12. 时钟周期的频率为6MHz,机器周期和ALE信号的频率为多少? 答:2MHZ

第三章

1.在MCS-51单片机中,寻址方式有几种?其中对片内RAM可以用哪几种寻址方式?对片外RAM可以用哪几种寻址方式?

答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。片外RAM寻址有:寄存器间接寻址方式。

2.在对片外RAM单元寻址中,用Ri间接寻址与用DPTR间接寻址有什么区别?

答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针间接访问可访问整个64K字节。

3.在位处理中,位地址的表示方式有哪几种? 答:1.直接位地址(00H~0FFH)。例如:20H

2.字节地址带位号。例如:20H.3表示20H单元的3位。

3.特殊功能寄存器名带位号。例如:P0.1表示P0口的1位。 4.位符号地址。例如:TR0是定时/计数器T0的启动位 。

4.写出完成下列操作的指令。 (1)R0的内容送到R1中。 MOV A,R0 MOV R1,A

(2)片内RAM的20H单元内容送到片内RAM的40H单元中。 MOV 40H,20H (3)片内RAM的30H单元内容送到片外RAM的50H单元中。 MOV A,30H MOV R0,#50H MOVX @R0,A (4)片内RAM的50H单元内容送到片外RAM的3000H单元中。 MOV A,50H MOV DPTR,#3000H

MOVX @DPTR,A

(5)片外RAM的2000H单元内容送到片外RAM的20H单元中。 MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A

(6)片外RAM的1000H单元内容送到片外RAM的4000H单元中。 MOV DPTR,#1000H MOVX A,@DPTR MOV DPTR,#4000H MOV @DPTR,A

(7)ROM的1000H单元内容送到片内RAM的50H单元中。 MOV A,#0 MOV DPTR,#1000H MOVC A,@A+DPTR MOV 20H,A

(8)ROM的1000H单元内容送到片外RAM的1000H单元中。 MOV A,#0 MOV DPTR,#1000H MOVC A,@A+DPTR

MOVX @DPTR,A

5.区分下列指令有什么不同? (1)MOV A,20H和MOV A,#20H 答:前者源操作数是直接寻址,后者源操作数立即寻址。 (2)MOV A,@R1和MOVX A,@R1 答:前者源操作数是访问片内数据存储器,后者源操作数访问片外数据存储器低256字节。 (3)MOV A,R1和MOV A,@R1

答:前者源操作数是寄存器寻址,后者源操作数寄存器间接寻址。 (4)MOVX A,@R1和MOVX A,@DPTR

答:前者源操作数是访问片外数据存储器低256字节,后者源操作数访问片外数据存储器整个64K字节。

(5)MOVX A,@DPTR和MOVC A,@A+DPTR

答:前者源操作数是访问片外数据存储器,后者源操作数访问程序数据存储器。 6.设片内RAM的(20H)=40H,(40H)=10H,(10H)=50H,(P1)=0CAH。分析下列指令执行后片内RAM的20H、40H、10H单元以及P1、P2中的内容。 MOV R0,#20H MOV A,@R0 ;A=40H MOV R1,A ;R1=40H MOV A,@R1 ;A=10H MOV @R0,P1

;(40H)=0CAH

MOV P2,P1 P2=0CAH MOV 10H,A (10H)=10H MOV 20H,10H (20H)=10H 结果:(20H)=10H、(10H)=10H、(40H)=0CAH、P2=0CAH和P1=0CAH 7.已知(A)=02H,(R1)=7FH,(DPTR)=2FFCH,片内RAM(7FH)=70H,

片外RAM(2FFEH)=11H,ROM(2FFEH)=64H,试分别写出以下各条指令执行后目标单元的内容。

(1)MOV A,@R1 结果:累加器A等于70H

(2)MOVX @DPTR,A 结果:片外RAM(2FFCH)单元等于02H (3)MOVC A,@A+DPTR 结果: 累加器A等于64H

(4)XCHD A,@R1 结果:累加器A等于00H,片内RAM(7FH) 单元等于72H 8.已知:(A)=78H,(R1)=78H,(B)=04H,CY=1,片内RAM(78H)=0DDH,(80H)=6CH,试分别写出下列指令执行后目标单元的结果和相应标志位的值。 (1)ADD A,@R1 ; 累加器A等于55H,CY等于1 (2)SUBB A,#77H ; 累加器A等于00H,CY等于0

(3)MUL AB ; 累加器A等于E0H,B寄存器等于01H,CY等于1,OV等于0 (4)DIV AB ; 累加器A等于1EH,B寄存器等于00H,CY、OV等于0 (5)ANL 78H,#78H ; 片内RAM(78H)单元等于58H (6)ORL A,#0FH ; 累加器A等于7FH

(7)XRL 80H,A ; 片内RAM(80H)等于14H 9.设(A)=83H,(R0)=17H,(17H)=34H,分析当执行完下面指令段后累加器A、R0、17H单元的内容。

ANL A,#17H ;A=03H ORL 17H,A ;(17H)=37H XRL A,@R0 ;A=34H CPL A ;A=CBH 结果:A=CBH,(R0)=17H,(17H)=37H

10.写出完成下列要求的指令。

(1)累加器A的低2位清零,其余位不变。 ANL A,#11111100B

(2)累加器A的高2位置“1”,其余位不变。 ORL A,#11000000B

(3)累加器的高4位取反,其余位不变。 XRL A,#11110000B

(4)累加器第0位、2位、4位、6位取反,其余位不变。 XRL A,#01010101B

11.说明LJMP指令与AJMP指令的区别? 答:LJMP指令后面提供的是16位目标地址,所以可以转移到64KB程序存储器的任意位置,缺点是:执行时间长,字节数多。

AJMP指令后带的是11位直接地址,执行时,先将程序指针PC的值加2(该指令长度为2字节),然后把指令中的11位地址addr11送给程序指针PC的低11位,而程序指针的高5位不变,只能在当前2K范围内转移。 12.设当前指令CJNE A,#12H,10H的地址是0FFEH,若累加器A的值为10H,则该指令执行后的PC值为多少?若累加器A的值为12H呢? 答:指令执行后的PC值为1011H,若累加器A的值为12H,则指令执行后的PC值为1001H。 13.用位处理指令实现P1.4=P1.0?(P1.1?P1.2)?/P1.3的逻辑功能。 程序: MOV C,P1.1

ORL C,P1.2 ANL C,P1.0 ORL C,/P1.3 MOV P1.4,C

14.下列程序段汇编后,从1000H单元开始的单元内容是什么? ORG 1000H TAB: DB 12H,34H DS 3

DW 5567H,87H 答:(1000H)=12H,(1001H)=34H,(1002H)=00H,(1003H)=00,(1004H)=00,(1005H)=67H,(1006H)=55H,(1007H)=87H,(1008H)=00H

15.试编一段程序,将片内RAM的20H、21H、22H单元的内容依次存入片外RAM的20H、21H、22H中。 程序:

MOV R0,#20H MOV R2,#03H

LOOP:MOV A,@R0 MOVX @R0,A INC R0

DJNZ R2,LOOP SJMP $

16.编程实现将片外RAM的2000H~2030H单元的内容,全部搬到片内RAM的20H单元开始位置,并将源位置清零。 程序: MOV R0,#20H

MOV DPTR,#2000H MOVR2,#30H

本文来源:https://www.bwwdw.com/article/fvp2.html

Top