1、第 1 页 共 47 页 第 1 章 思考题及习题 参考答案 1 写出下列二进制数的原码、反码和补码(设字长为 8 位)。 ( 1) 001011 ( 2) 100110 ( 3) -001011 ( 4) -111111 答: ( 1)原码: 00001011 反码: 00001011 补码: 00001011 ( 2)原码: 00100110 反码: 00100110 补码: 00100110 ( 3)原码: 10001011 反码: 11110100 补码: 11110101 ( 4)原码: 10111111 反码: 11000000 补码: 11000001 2 已知 X 和 Y,试计
2、算下列各题的 X+Y补和 X-Y补(设字长为 8 位)。 (1) X=1011 Y=0011 (2) X=1011 Y=0111 (3) X=1000 Y=1100 答: ( 1) X 补码 =00001011 Y 补码 =00000011 Y补码 =11111101 X+Y补 =00001110 X-Y补 =00001000 ( 2) X 补码 =00001011 Y 补码 =00000111 Y补码 =11111001 X+Y补 =00010010 X-Y补 =00000100 ( 3) X 补码 =00001000 Y 补码 =00001100 Y补码 =11110100 X+Y补 =0
3、0010100 X-Y补 =11111100 3 微型计算机由那几部分构成? 答:微型计算机由微处理器、存储器和 I/O 接口电路构成。各部分通过地址总线( AB)、数据总线( DB)和控制总线( CB)相连。 4 8086 的寻址范围有多大?其物理地址是如何形成? 答: 8086 有 20 根地址总线,它可以直接寻址的存储器单元数为 1M 字节,其地址区域为00000H FFFFFH。 第 2 页 共 47 页 物理地址 是由段地址与偏移地址共同决定的,物理地址 =段地址 16+偏移地址其中段地址通常来自于段寄存器 CS ,物理地址来自于 IP。 5 什么叫单片机?它有何特点? 答:单片机就
4、是在一块硅片上集成了 CPU、 RAM、 ROM、定时器 /计数器和多种 I/O 口(如并行、串行及 A/D 变换器等)的一个完整的数字处理系统。单片机主要特点有: 品种多样,型号繁多 ;存储 容量 大;频率高,速度快; 控制功能 强 , 集成度高; 功耗低 ; 配套应用软件 多。 第 3 页 共 47 页 第 2 章 思考题及习题 参考答 案: 2.1.说明 ROM、 EPROM、 EEPROM 和 FLASH 之间的主要区别 解: ROM 为 只读存储器,在一般情况下只能读出所存信息,而不能重新写入。信息的写入是通过工厂的制造环节或采用特殊的编程方法进行的 , 一旦写入,就能长期保存 。E
5、PROM 芯片一般允许用户多次编程和擦除。擦除时,通过向芯片窗口照射紫外光的 方法来进行。 EEPROM,也称 E2PROM。该类芯片允许用户多次编程和擦除。擦除时,可采用加电方法在线进行。 FLASH 是一种新型的大容量、速度快、电可擦除可编程只读存储器。 2.2.EPROM、 PROM、动态 RAM、静态 RAM 等存储器中,哪几类是可以随时读写的? 解:动态 RAM、静态 RAM 这几类是可以随时读写的。 2.3 某 ROM 芯片中有 12 根地址输入端和 8 个数据输出端,该芯片的存储容量是多少位? 解:芯片的存储容量是 4K*8 位。 2.4.说明动态 RAM 和静态 RAM 的主要
6、区别,使用时应如何选用? 解: 静态 (static)RAM,即 SRAM。它以触发器为基本存储单元,所以只要不掉电,其所存信息就不会丢失。该类芯片的集成度不如动态 RAM,功耗也比动态 RAM 高,但它的速度比动态 RAM 快,也不需要刷新电路。 在构成小容量的存储系统时一般选用 SRAM。在微型计算机中普遍用 SRAM 构成高速缓冲存储器。 动态 (Dynamic)RAM,即 DRAM。一般用 MOS 型半导体存储器件构成,最简单的存储形式以单个 M0S 管为基本单元,以极间的分布电容是否持有电荷作为信息的存储手段,其结构简单,集成度高。但是,如果不及时进行刷新,极间电容中的电荷会在很短时
7、间内自然泄漏,致使信息丢失。所以,必须为它配备专门的刷新电路。动态 RAM 芯片的集成度高、价格低廉,所以多用在存储容量较大的系统中。目前,微型计算机中的主存几乎都是使用动态 RAM。 2.5.说明 NOR FLASH 与 NAND FLASH 的主要区别,使用时应如何选用? 解: NOR Flash 具有以下特点: ( 1) 程序和数据可存放在同一芯片上,拥有独立的数据总线和地址总线,能快速随机读取,允许系统直接从 Flash 中读取代码执行,而无需先将代码下载至 RAM 中再执行; ( 2) 可以单字节或单字编程,但不能单字节擦除,必须以块为单位或对整片执行擦除操作,在对存储器进行重新编程
8、之前需要对块或整片进行预编程和擦除操作。 但是 NOR Flash 的擦除和编程速度较慢,块尺寸又较大,因此擦除和编程操 作所花费的时间很长,在纯数据存储和文件存储的应用中, NOR 技术显得力不从心。 NAND Flash 具有以下特点: ( 1) 以页为单位进行读和编程操作, 1 页为 256 或 512B(字节);以块为单位进行擦除操作, 1 块为 4K、 8K 或 16KB。具有快编程和快擦除的功能,其块擦除时间是 2ms;而 NOR技术的块擦除时间达到几百 ms。( 2) 数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程。( 3) 芯片尺寸小,引脚少,是位成本
9、 (bit cost)最低的固态存储器,将很快突破每兆字节 1 美元的价格限制。 ( 4) 芯片包含有失效块,其数目最大可达到 335 块(取决于存储器密度)。失效块不会影响有效块的性能,但设计者需要将失效块在地址映射表中屏蔽起来。 NOR Flash 具有可 靠 性高、随机读取速度快的优势,在擦除和编程操作较少而直接执行第 4 页 共 47 页 代码的场合,尤其是纯代码存储的应用中广泛使用,如 PC 的 BIOS 固件、移动电话、硬盘驱动器的控制存储器等。 NAND Flash 结构的闪速存储器适合于纯数据存储和文件存储,主要作为 SmartMedia 卡、CompactFlash 卡、 P
10、CMCIA ATA 卡、固态盘的存储介质,并正成 为闪速磁盘技术的核心。 2.6.现有 2K 8 位的 RAM 芯片若干片,若用线选法组成存储器,有效的寻址范围最大是多少KB?若用 3-8 译码器来产生片选信号,则有效的寻址范围最大又是多少?若要将寻址范围扩展到 64KB,应选用什么样的译码器来产生片选信号? 解:以 8086 为例, 8086有 20 条地址线,用 11 条地址线寻址一片 2K 8 位的 RAM,余下的9 条地址线做线选法的线,故可以并联 9 个芯片,故寻址最大范围是 20KB,若用 3-8 译码器来产生片选信号, 9 条地址线可以控制 3 个 3-8 译码器这样就可以控制
11、24 个芯片最大范围是 50KB. 若要将寻址范围扩展到 64KB 可选用 4-16 地址译码器来产生片选信号。 2.7.什么是地址重叠区?它对存储器扩展有什么影响? 解:基本地址和前面全译码连接的地址范围是相同的,但两者还是有区别的。区别在于全译码连接时各芯片的地址是唯一的,而部分译码连接时各芯片地址不是唯一的,也就是可以由若干个地址都选中同一芯片的同一单元,既所谓的地址重叠区。由于存在的地址重叠,影响了地址区的有效使用,也限制了存储器的扩展。因此,在选用部分译码时,也要尽可能多选一些高位地址线来作为译码器的输入。 2.8 如图 2-22 若用 1K 8 位片子来扩展 3K 8 位 RAM,
12、试核算各片的地址范围为多少 ? 图 2-22 1K 8 位片子扩展 的 3K 8 位 RAM 系统 解: A15 A14 A13 A12 A11 A10 A9 A8 A7A6A5A4 A3A2A1A0 地址 G1 A B C 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 片 1:A000H 1 0 1 0 0 0 11 1 1 1 1 1 1 1 1 片 1:第 5 页 共 47 页 A3FFH A15 A14 A13 A12 A11 A10 A9 A8 A7A6A5A4 A3A2A1A0 地址 G1 A B C 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
13、 片2: B000H 1 0 1 1 0 0 11 1 1 1 1 1 1 1 1 片2: B3FFH A15 A14 A13 A12 A11 A10 A9 A8 A7A6A5A4 A3A2A1A0 地址 G1 A B C 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 片3: B400H 1 0 1 1 0 1 11 1 1 1 1 1 1 1 1 片 3:B7FFH 所以各片地址范围为: 片 1: A000H-A3FFH, 片 2: B000H-B3FFH, 片 3: B400H-B7FFH 2.9. 现有 8K 8 位 RAM 多片, 1片 3-8 译码器,要构成 容量为
14、 16K 8 位的存储器,请用线译码、部分译码、全译码 3 种方式分别设计,画出连接图,并指出寻址范围。 解: 线译码法 : 寻址范围: 2000H5FFFH 第 6 页 共 47 页 部分译码寻址范围: 0000H3FFFH 全译码:寻址范围: 0000HFFFFH 2.10.如何检查扩展的 RAM 工作是否正常?试编一个简单的 RAM 检查程序,要求此程序能记录有多少个 RAM 单元工作有错?且能记录出错的单元地址。 解: TEST_CONST EQU 5AH TEST_RAM EQU 03H ORG 0000H LJMP INITIAL ORG 0050H INITIAL: MOV R0
15、, #253 MOV R1, #3H TEST_ALL_RAM: MOV R2, #0FFH TEST_ONE_RAM: MOV A, R2 MOV R1, A CLR A MOV A,R1 CJNE A,2H, ERROR_DISPLAY 第 7 页 共 47 页 DJNZ R2, TEST_ONE_RAM INC R1 DJNZ R0, TEST_ALL_RAM OK_DISPLAY: MOV P1, #11111110B WAIT1: SJMP WAIT1 ERROR_DISPLAY: MOV A, R1 MOV P1, A WAIT2: SJMP WAIT2 END 第 3 章 思考题
16、及习题参考答案 第 8 页 共 47 页 1. 80C51单片机的 P0P3口在 通用 I/O口时操作要注意哪些? P0P3口 不做通用 I/O口时是什么功能 ?在使用上有何特点? P0P3 驱动能力如何? 答:( 1)作为通用 I/O 口时, P0P3 都是准双向口,输入引脚 信息时都必须先向其锁存器写“ 1”,作为输出口时 P0 口需结上拉电阻。 ( 2) P0 可以作为地址 /数据总线; P2 口可以作为地址线的高 8 位; P3 口是双功能口,每条口线还具有不同的第二功能。 ( 3) P0 口的驱动能力为 8 个 TTL 负载,而其它口仅可驱动 4 个 TTL 负载。 2、 MCS-5
17、1单片机运行出错或程序进入死循环,如何摆脱困境? 答: 通过复位电路复位 3、 单片机的复位( RST)操作有几种方法,复位功能的主要作用 是什么? 答: 单片机的复位操作方式有: 1、上电复位; 2、手动复位。 复位功能的主要作用是:复位时, PC 初始化 为 0000H,使 MCS-51 单片机从 0000H 开始执行程 4、 简述程序状态寄存器 PSW 寄存器 中各位的含义。 答:程序状态字寄存器 PSW, 8 位。其各位的意义为: CY:进位、借位标志。有进位、借位时 CY=1,否则 CY=0; AC:辅助进位、借位标志(高半字节与低半字节间的进位或借位); F0:用户标志位,由用户自
18、己定义; RS1、 RS0:当前工作寄存器组选择位,共有四组: 00、 01、 10、 11; OV:溢出标志位。有溢出时 OV=1,否则 OV=0; P:奇偶标志位。存于累加器 ACC 中的运算结果有奇数个 1 时 P=1,否则 P=0. 5、 80C51 单片机的当前工作寄存器组如何选择? 答:由特殊功能寄存器中的程序状态寄存器 PSW 的 RS1、 RS0 来决定,当 RS1、 RS0为 00 时,选择 0 组;为 01 时,选择 1 组;为 10时选择 2组,为 11时选择 3组。 6. 80C51 单片机的控制总线信号有哪些?各信号的作用如何? 答: 80C51 单片机的控制总线信号
19、有以下 4 个,各信号的作用为: RST/VPD: 复位信号输入引脚 /备用电源输入引脚; ALE/PROG: 地址锁存允许信号输出引脚 /编程脉冲输入引脚; EA/Vpp : 内外存储器选择 引脚 /片内 EPROM(或 FlashROM)编程电压输入引脚; PSEN:外部程序存储器选通信号输出引脚。 7、 8051 单片机中 EA 引脚的作用是什么? 答:访问内部或外部程序存储器的选择端当 EA 接高电平的时候程序从内部 ROM 开始执行,当 EA 为低电平的时候,从外部 ROM 开始执行 8、 程序计数器 PC 的作用是什么? 答:程序计数器 PC 是一个 16 位的计数器,他总是存放着
20、下一个要取的指令的 16 位存储单元地址。用来存放下一条指令的地址用来存放下一条指令的地址的。当执行一条指令时,首先需要根据 PC 中存放的指令地址,将指令 由内存取到指令寄存器中,此过程称为 “ 取指令 ” 。与此同时, PC 中的地址或自动加 1 或由转移指针给出下一条指今的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据 PC 取出第二条指令的地址,如此循环,执行每一条指令 9、堆栈有哪些功能?堆栈指示器( SP)的作用是什么?在程序设计时,为什么要对 SP重新赋值? 第 9 页 共 47 页 答:堆栈在中端过程中用来保护现场数据,复位后 SP=7H,而堆栈一般设置在通用
21、 ROM区( 30H-7FH),在系统初始化时候要从新设置。 10、内部 RAM低 128单元划分为哪 3个主要部分?说明 各部分的使用特点。 答: 80C51 内部 128B 的数据 RAM 区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区。各区域的特性如下: ( 1) 00H1FH 为工作寄存器组区,共分 4 组,每组占用 8 个 RAM 字节单元,每个单元作为一个工作寄存器,每组的 8 个单元分别定义为 8 个工作寄存器 R0R7。当前工作寄存器组的选择是由程序状态字 PSW 的 RS1、 RS0 两位来确定。如果实际应用中并不需要使用工作寄存器或不需要使用 4 组工作寄存器,不使用
22、的工作寄存器组的区域仍然可作为一般数据缓冲区使用,用直接寻址或用 Ri 的寄存器间接寻址来访 问。 ( 2) 20H2FH为可位寻址区域,这 16个字节的每一位都有一个地址,编址为 00H7FH。 当然,位寻址区也可以用作字节寻址的一般数据缓冲区使用。 ( 3) 30H7FH 为堆栈、数据缓冲区。 11、简述 MCS-51 单片机存储区的划分。 答: MCS-51 单片机的存储器从物理结构上分为:片内和片外数据存储器,片内和片外程序存储器。 2)从逻辑上分别可划分为:片内统一寻址的 64K 程序存储器空间( 0000H-FFFFH); 64KB的片外数据存储器空间( 0000H-FFFFH)
23、;256B 的片内数据存储器空间( 00H-FFH)。 12、 MCS-51 基本型单片机的中断入口地址各为多少。 答:外部中断 0 中断入口地址 0003H 定时 /计数器 0 中断入口地址 000BH 外部中断 1 中断入口地址 0013H 定时 /计数器 1 中断入口地址 001BH 串行接口 中断入口地址 0023H 13、什么是指令周期、机器周期和时钟周期? 答:指令周期:指令的执行时间;机器周期: CPU 完成一个最简单的指令所需要的时间;时钟周期:晶振信号 周期 就是时钟周期。 14、已知一 MCS51 单片机 系统使用 6MHZ 的外部晶体振荡器,计算:该单片机系统的状态周期与
24、机器周期各为多少? 解:由于晶振为 6MHz,所以机器周期为 2us,因为一个机器周期由 6 个状态周期组成,所以状态周期 1/3us 15、 8031 单片机需要外接程序存储器,实际上它还有多少条 I/O 线可以用?当使用外部存储器时,还剩下多少条 I/O 线可用? 答: 8031 系统必须外接程序促成器,原则上说, P0 和 P2 口要用作数据和地址总线,所以只有 P1 和 P3 口可用作 I/O 口,共 16条 I/O线。在使用外部存储器时,除了占用 P0和 P2 口外,还需要用 P3 口 RD( P3.7)和 WR( P3.6)两条控制线,所以这种情况下就只剩下 14条I/O 线可用了
25、。 第 4 章 思考题及习题参考答案 1. 寻址方式是什么? 答:寻址方式是寻找操作数或操作数地址的方式。 第 10 页 共 47 页 2. 89C51 指令系统有哪几种寻址方式? 答: 89C51 的寻址方式有七种。即:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。 3、访问特殊功能寄存器 SFR 可以采用哪些寻址方式? 答: 直接寻址和位寻址方式。 4、访问 RAM 单元可以采用哪些寻址方式?访问外部 RAM 单元 有哪些指令? 答: 直接寻址、寄存器间接寻址和位寻址方式。 访问外部 RAM 单元的指令有 4 条: MOVX A, DPT
26、R MOVX A, Ri MOVX DPTR, A MOVX Ri, A 5、访问外部程序存储器可以采用哪些寻址方式?访问外部程序存储器有哪些指令? 答: 立即寻址、变址寻址和相对寻址方式。 访问外部程序存储器的指令有 2 条 MOVC A, A+DPTR MOVC A, A+PC 6、试写出完成以下每种操作的指 令序列。 ( 1)将 R0 的内容传送到片内 RAM 20H; ( 2)将 R1 的内容传送到 R0; ( 3)内部 RAM 单元 10H 的内容传送到外部 RAM 单元 1000H; ( 4)外部 RAM 单元 1000H 的内容传送到 R5; ( 5)外部 ROM 单元 1000H 的内容传送到 R5; ( 6)外部 RAM 单元 2000H 的内容传送到外部 RAM 单元 2001H。 答:( 1) MOV 20H,R0 (2) MOV A,R1 MOV R0,A (3)MOV A,10H MOV DPTR,#1000H MOVX DPTR,A (4)MOV DPTR,#1000H MOVX A,A+DPTR MOV R5,A (5) MOV DPTR,#1000H MOV A,#00H MOVC A,A+DPTR MOV R5,A (6) MOV DPTR,#2000H MOVX A,DPTR