“单片机原理与接口技术”习题答案(1)

更新时间:2023-11-05 11:23:01 阅读量: 综合文库 文档下载

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

《单片机原理与接口技术》课后习题参考答案

习题一

1.在计算机内部,一切信息的存取、处理和传送都是以( D )形式进行。

A.EBCDIC码 B.ASCII码 C.十六进制编码 D.二进制编码 2. 一个字节由 8 位二进制数组成,即由 2 位十六进制数组成。 3. 将下列十进制数转换成二进制数。

(1)12 (2)100 (3)128 (4)1000 答:(1)00001100 (2)01100100 (3)10000000 (4)001111101000 4. 将下列十进制数转换成十六进制数。

(1)14 (2)127 (3)255 (4)1024 答:(1)1110 (2)01111111 (3)11111111 (4)010000000000 5. 将下列二进制数分别转换成十进制和十六进制数。

(1)11100100 (2)10100001 (3)11101000 (4)10101101 答:(1)228,E4H (2)161,A1H (3)232,E8H (4)173,ADH 6. 将下列十六进制数分别转换成二进制和十进制数。

(1)2DH (2) F4H (3) 0400H (4) FFFFH 答:(1)00101101B,45 (2)11110100,244 (3)0000010000000000,1024 (4)1111111111111111, 65535 7. 取字长8位,写出下列数据的补码。

(1) -32 (2) -45 (3) -98 (4) 91 答:(1)E0H (2)D3H (3)9EH (4)5BH 8. 完成下列十六进制数的加法运算。

(1)8CH+3FH (2)1F34H+95D6H (3)205EH+12FFH 答:(1)CBH (2)B50AH (3)335DH

9. 分别用十六进制和二进制数形式,写出数字 0,1,2,?,9 的ASCII码。

答:30H,31H,?, 39H; 00110000B,00110001B,?,00111001B 10. 写出字符串的ASCII码:“***MCS-51***”

答:2AH,2AH,2AH,4DH,53H,43H,2DH,35H,31H, 2AH,2AH,2AH

11. 对于十进制数35,用二进制数表示为__00100011B__;用十六进制数表示为__23H__;

用组合BCD码表示为 00110101B ;用非组合BCD码表示为__03H,05H__;用ASCII表示为_33H,35H_。

12.16位PC机中整数的有效范围是( D )。

A.-32768~32767 B.-32767~32767

C.0~65535 D.-32768~32767或0~65535 13.在( C )表示中,二进制数11111111B表示十进制数–1

A.原码 B.反码 C.补码 D.BCD码

14.用8位的二进制数的补码形式表示一个带符号数,它能表示的整数范围是( D )。

A.-127~+127 B.-128~+128 C.-127~+128 D.-128~+127 15.计算机中运算器和控制器合称为( A )

A.CPU B.ALU C.主机 D.ENIAC

16.微机的主要性能指标中,字长是指( 微处理器一次能处理的二进制数的位数 )。 17.若用MB作为PC机主存容量的计量单位,1MB等于( B )个字节。

1

A.2 B.2 C.2 D.2 18.运算器的主要功能是( C )。

A.算术运算 B.逻辑运算 C.算术运算与逻辑运算 D.函数运算

19. 指出下列总线中,哪一个是单向的,哪一个是双向的? (1)数据总线 (2)地址总线 答:地址总线是单向的;数据总线是双向的。 20. 什么是微处理器?

答:微处理器是微型计算机的核心,具有运算与控制功能。 21. 微型计算机由哪几部分组成的?

答:微型计算机由CPU、存储器、I/O接口和总线组成。 22. 简要说明计算机系统中三种总线各自的作用。 答:数据总线用来传送数据信息,数据总线的宽度决定了CPU一次能够与存储器或I/O接口传送数据的位数。地址总线传送地址信号,CPU输出地址信号,用来寻址一个存储单元或I/O端口,地址总线的位数决定了CPU最多能外接多大容量的存储器,若有CPU有N位地址线,

N

外接存储器的最大容量是2

23. 说明微型计算机系统的组成。

答:微型计算机系统由软件和硬件组成。硬件包括主机和外设,主机包括CPU,存储器,I/O接口和总线;外设包括输入设备和输出设备。软件包括系统软件和应用软件 24. 说明通用微机与单片机的主要区别。

答:在结构上单片机是把微机的主要功能部件:CPU,存储器,I/O接口集成在一块芯片内。 存储器结构也不一样,微机采用冯·诺依曼结构,数据和程序放在统一的存储空间;一些单片机,像MCS-51,其存储器分为数据存储器和程序存储器。

应用场合不一样,微型计算机用于科学计算,信息管理,计算机辅助设计等等;单片机面向控制,将其与专业设备融为一体,形成智能系统,如工业控制系统、智能测量系统、自动化通信系统、专用数字处理系统等。

编程方式也有不同,微机上用高级语言编程时,不需要了解微机的硬件结构,只需了解操作系统和编程环境。单片机用汇编语言或C编程,需要对硬件有所了解。

10203040

2

习题二

1.简述EU和BIU的主要功能?

答:EU是执行单元,负责执行指令。BIU是总线接口单元,负责取指令,以及存/取数据。 2.8086和8088的主要区别是什么?

答:主要区别是(1)8086有16位数据线,8088有8位数据线。(2)8086内部有6字节的指令队列缓冲器,8088有4字节。

3. 8086/8088CPU采用流水线技术有什么好处? 答:流水线技术可以提高CPU的工作效率。

4.8086的数据总线是____16____位,地址总线是___20____位。 5. 8086可以寻址的存储器空间有多大?I/O空间有多大? 答:8086可以寻址的存储器空间是1MB;I/O空间64KB 6.在一般的微处理器中,( D )包含在CPU中。

A.内存 B.输入/输出单元 C.磁盘驱动器 D.算术逻辑单元

7.8086中一共有多少寄存器?每个寄存器有什么特殊的用途?

答:8086一共有14个16位的寄存器:AX,BX,CX,DX,SP,BP,SI,DI,CS,DS,SS,ES,IP,标志寄存器。有8个8位的寄存器:AH,AL,BH,BL,CH,CL,DH,DL AX,AL:特别用于乘除法指令、数据输入/输出指令中 BX:可以用来存放地址

CX:循环操作指令中,隐含用作计数器;CL:移位指令中用于存放移位次数

DX:输入/输出指令中用于存放端口地址,乘/除法指令中用于存放乘积高位/被除数的高位 SP:用于存放堆栈栈顶单元的地址 BP:可以用来存放地址

SI:串操作指令中,隐含存放源数据串单元地址 DI: 串操作指令中,隐含存放目的数据串单元地址

CS:存放代码段的段地址;DS: 存放代码数据段的段地址; SS: 存放堆栈段的段地址;ES: 存放附加数据段的段地址;

IP: 存放CPU将要执行指令所在存储单元的地址,CPU根据IP的值,到相应存储单元取指令

8.什么是寄存器?存储单元?I/O端口?

答:寄存器是在CPU中的数据存储部件,一般用符号来表示某个寄存器,即寄存器有名字,寄存器有8位、16位等类型

存储单元是在存储器中一个单元,没有特殊说明时,一个存储单元存放一个字节的数据,存储单元通过地址来标识。

I/O端口指的是I/O接口中的寄存器,也是地址来标识, 单片机端口中也有符号名 9.标志寄存器各位的含义? 答:

15-14-13-12-11OF10DF9IF8TF7SF6ZF5-4AF3-2PF1-0CF进位标志奇偶标志辅助进位标志零标志符号标志溢出标志方向标志中断允许标志跟踪标志

3

10.从功能上,8086的CPU由( C )两部分组成。

A.SP、ALU B.控制器、FLAGS C.EU、BIU D.EU、ALU 11.标志寄存器FLAGS中存放两类标志,即( B )。

A.符号标志、溢出标志 B.控制标志、状态标志 C.方向标志、进位标志 D.零标志、奇偶标志 12.什么是最大模式?最小模式?

答:最大模式是指系统中有多个微处理器,8086是主处理器,还有协处理器,系统控制总线的大部分信号由总线控制器产生。

最小模式是指系统中只有一个微处理器,控制信号由CPU直接产生。 13.什么是总线周期?

答:是指CPU访问一次存储器(如读/写一个字节数据)所需要的时间。 14.8086的总线周期由几个时钟周期组成?在总线周期中,CPU有哪些操作?

答:8086的总线周期由4个时钟周期组成。又叫4个T状态。在T1状态,CPU输出地址和地址锁存信号;在T2状态CPU输出控制信号;T3状态数据出现在数据总线上;T4状态CPU撤销控制信号,总线周期结束。

15.8284、8282、8286、8288、8259这几个芯片的作用是什么?

答:8284是时钟发生器,为CPU提供工作时钟,以及使READY、RESET信号与时钟同步。 8282是地址锁存器,用来锁存地址信号。

8286是数据收发器,用来提高数据总线的驱动能力

8288是总线控制器,当8086工作在最大模式下,可以产生控制信号。 16.8086如何进入复位状态?

答:8086的TESET引脚出现4个时钟周期的高电平,8086进入复位状态。 17.复位后,8086芯片内寄存器状态如何?引脚信号状态如何?

答:8086复位后,除了CS=FFFFH外,其它寄存器的值都为0。三态引脚呈高阻态,非三态引脚呈无效状态。

18.最小模式时,当M/错误!未找到引用源。为低电平时,表示CPU正在对( D )进行访问。

A.存储器 B.I/O端口 C.外部存储器 D.EPROM 19.某CPU的主频为250MHZ,则它的时钟周期为( D )。

A.250ns B.50ns C.40ns D.4ns 20.存储单元逻辑地址的表达方式?

答:存储单元逻辑地址的表达方式是“段地址:偏移地址”,段地址和偏移地址都是16位。 21.逻辑地址如何形成存储单元的物理地址? 答:物理地址=段地址×10H+偏移地址 22.程序设计中所使用的地址是( A )。

A.逻辑地址 B.有效地址 C.物理地址 D.段基址

23.某单元在数据段中,已知DS=1000H,偏移地址为1200H,则它的物理地址为( B )。

A.10000H B.11200H C.12100H D.13000H

24.设某一个单元的物理地址是54321H,则正确的逻辑地址表示为( C )。

A.4321H:50000H B.54320H:1H C.5430H:0021H D.5432H:00001H

25.上电复位时,若CPU的CS=FFFFH,IP=0000H,则第一条指令从 地址FFFF0H 地方取。 26.8088与外部交换数据的总线宽度是 8 位,EU内部总线宽度是 16 位。

4

27.8086/8088将整个存储空间划分为许多逻辑段,每个逻辑段容量在 64KB 以内。

28. 8086/8088系统中,某存储单元只能有一个 物理 地址,但可以有多个 逻辑 地址。 29.某存储单元物理地址为32413H,则相对于段地址为3000H,其偏移地址为 2413 ,若;

它的偏移地址是1003H,则其段地址为 3141H 。 30.说明存储器分类及特点。

答:从存取功能分:只读存储器ROM、随机存取存储器RAM

只读存储器:掩模ROM 、PROM 、EPROM、 EEPROM 随机存储器:静态RAM(SRAM)、动态RAM(DRAM) 从制造工艺分:双极型和 MOS(CMOS)型

静态存储单元(SRAM)的优点:速度快、使用简单、不需刷新、常用作Cache ;缺点:元件数多、集成度低、运行功耗大

DRAM的主要特点有:基本存储电路用单管线路组成(靠电容存储电荷);集成度高;功耗比静态RAM低;价格比静态便宜;因动态存储器靠电容来存储信息,由于总是存在有泄漏电流,故要求刷新(再生)。 适用于大存储容量的微型计算机,如微机中的内存主要由DRAM组成。 掩模ROM:掩模只读存储器由制造厂做成,用户不能进行修改。

可编程只读存储器PROM(Programmable ROM),PROM允许用户对其进行一次编程,即写入数据或程序。一旦编程之后,用户可以读出其内容,但再也无法改变它的内容。

紫外线可擦除的只读存储器EPROM (Erasable Programmable ROM),需要用紫外线照射来擦除,擦除后可编程,并允许用户多次擦除和编程;

电可擦除的只读存储器EEPROM或E2PROM (Electrically Erasable Programmable ROM),采用加上一定电压的方法进行擦除和编程,也可多次擦除和编程。 31.存储器的功能是存储 程序 和 数据 。

32.与外存相比,内存具有的特点是存储容量 小 ,工作速度 快 。 33.存储器的主要指标有存 储器容量、存储周期 和 可靠性 。 34.随机访问存储器的访问速度与 存储位置 无关。 35.存储器中用 地址 来区分不同的存储单元。

36.静态存储单元是由晶体管构成的 双稳态触发器 ,保证记忆单元始终处于稳定状态。 37.主存容量与 地址 总线的根数有关。

38.要组成容量为4K×8的存储器,需要_32_______片1K×1的存储器芯片。 39. 静态随机存储器SRAM靠 双稳态触发器 存储信息,动态随机存储器DRAM靠 电容 存储信息。

40.为什么RAM被称为“易失性存储器”? 答:因为掉电后内容会丢失。

41.微型计算机的存储系统是指( D )。

A.RAM B. ROM C.主存储器 D. cache、主存储器和外存储器 42.内存若为16MB,则表示其容量为( B )KB。

A.16 B. 16384 C. 1024 D. 16000 43.组成2M×8位的内存,可以使用( D )。

A.1M×8的芯片进行位扩展 B.1M×4位的芯片进行字扩展 C.2M×4的芯片进行字扩展 D.2M×4位的芯片进行位扩展

44.若SRAM芯片的容量为4K×8位,则该芯片引脚中地址线和数据线的数目之和是( C )。

A.15 B.19 C. 20 D.不可估计 45.存储周期是指( B )。

5

A.存储器的读出时间 C.存储器的写入时间 B.连续两次启动存储器的时间间隔 D.存储器连续写操作的时间

46. 8088系统中用74LS138译码器产生片选信号,如下图示。若将Y6接到存储器的片选信号端,则存储器的存储范围为( C )。

A.B800H~BFFFH B.A800H~AFFFH C.B000H~B7FFH D.8800H~8FFFH

A15 M/IO A14 A13 A12 A11 G G2A G2B 74LS138 C B A Y0 Y1 Y2 Y3

47.若一台计算机的字长为4个字节,则表明该机器( C )。

A.能处理数值最大值为4位十进制数 B.能处理的数值最大为4位二进制数组成

C.在CPU中能够作为一个整体处理32位的二进制代码

32

D. 能运算的结果为2

48. 根据存放信息的不同,端口通常有三种类型:数据端口、状态端口 和 控制端口。 49. CPU与外设之间进行数据传送时,可以采用哪些方式?

答:可以采用无条件传送方式、查询方式、中断方式和DMA方式

Y4 Y5 Y6 Y7 6

习题三

1. 单片机是把组成微型计算机的各功能部件,即 CPU 、存储器 、I/O接口及 总线 等部件制作在一块集成电路芯片上,构成一个完整的微型计算机。

2. Intel公司生产的MCS-51系列单片机主要集成了哪些功能部件?

答:MCS-51单片机内部包含了下列几个部件:一个8位CPU、一个片内振荡器及时钟电路、4K字节程序存储器、128字节数据存储器、两个16位定时器/计数器、一个可编程全双工串行口、四个8位可编程并行I/O端口、64K字节外部数据存储器和64K字节程序存储器扩展控制电路、五个中断源;两个优先级嵌套中断结构

3.MCS-51系列单片机中,片内无ROM的机型是 8031 ,有4KB ROM的机型是 8051 ,而有4KB EPROM的机型是 8751 。

4. CPU由 运算器 和 控制器 组成。 5. 程序计数器PC的功能是什么?

答:PC用于存放下一条将要从程序存储器中读取的指令的地址。由两个8位的计数器(PCH、PCL)组成,16位可容纳的最大数值为FFFFH(即65535),因此,MCS-51可寻址64KB的程序存储器。每取一字节指令,PC会自动加1。改变PC的值,就可改变程序执行的顺序。 6. 程序计数器PC的值是( C )。

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

C.当前正在执行指令的下一条指令的地址 D.控制器中指令寄存器的地址

7. MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS-51的PC是 16 位的,因此其寻址空间为 64KB ,地址范围是从0000H到 FFFFH 。 8. 说明程序状态寄存器PSW中,各标志位的作用。

答:Cy:进位标志位;AC:辅助进位标志,又称半字节进位标志位;F0:用户自定义标志。 RS1,RS0:工作寄存器组选择控制位。OV:溢出标志。P:奇偶标志位。 9. 若A中的内容为63H,那么,奇偶标志位P的值为 0 。

10. 8051芯片的引脚可以分位以下四类: 电源引脚VCC和GND 、外接晶振引脚XTAL1和XTAL2、控制信号引脚 和多功能I/O口引脚。

11. 8051单片机有 4 个8位并行I/O口,共 32 位I/O引脚。

12. 8051单片机内部数据存储器可以分为几个不同的区域?各有什么特点?

FFH 答:分为4个区域: 内部RAM SFR区 80H~FFH 工作寄存器区 80H~FFH (仅52系列有) 位寻址区 只能通过 只能通过 普通RAM区 间接寻址访问 直接寻址访问 特殊功能寄存器区 80H 普通RAM区

地址30H~7FH 30H 位寻址区(20H~2FH)

位地址00H~7FH

工作寄存器区3(18H~1FH)

工作寄存器区2(10H~17H)

工作寄存器区1(08H~0FH)

工作寄存器区0(00H~07H)

00H

(a)内部数据存储器

7

13. 内部RAM中,哪些单元可作为工作寄存器区,哪些单元可以进行位寻址?写出它们的字节地址。

答:内部RAM中,地址00H—1FH作为工作寄存器区;地址20H—2FH这16个单元可以进行位寻址。

14. 8031单片机复位后,R4所对应的存储单元的地址为 04H ,因上电时PSW= 00H 。这时当前的工作寄存器区是第 0 组工作寄存器。

15. 若PSW的内容为18H,则选取的是第 3 组通用寄存器。

16. 内部RAM中,位地址为30H的位,该位所在字节的字节地址为 26H 。

17.在8031单片机内部,其RAM高端128个字节的地址空间称为 特殊功能寄存器 区,但其中仅有 21个 字节有实际意义。

17. DPTR可以分成两个8位的寄存器: DPH 和 DPL 。 18. 地址能被 8 整除的特殊功能寄存器可以位寻址。 19. 8051单片机堆栈可以设置在什么地方?如何实现? 答:可以设置在片内数据存储单元地址00H—7FH区域。通过设置SP的值可设置当前的堆栈顶。

20. 堆栈操作遵循的原则是什么?堆栈的用途是什么?

答:堆栈遵循“先进后出”的数据存储原则。堆栈用来暂存数据或地址,当有中断时,保护

断点地址。

21. 程序存储器中,有些单元是为中断处理保留的,这些存储单元的地址是多少? 答:程序存储器的预留单元如下

入口地址 0000H 0003H 000BH 0013H 001BH 0023H 002BH 预留目的 复位后初始化引导程序 外部中断0服务程序 定时器/计数器0溢出中断服务程序 外部中断1服务程序 定时器/计数器1溢出中断服务程序 串行口中断服务程序 定时器/计数器2溢出中断服务程序 存储单元范围 0000H-0002H 0003H-000AH 000BH-0012H 0013H-001AH 001BH-0022H 0023H-002AH 002BH-0032H

22. 四个并行口P0~P3各自的功能是什么?

答:P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口; P1口是一个准双向口,只作通用输入/输出口使用;

P2口是一个双功能的端口:用作高8位地址输出线或者作为通用I/O口; P3口是一个双功能的端口:通用输入/输出口,每位增加了第二输入/输出功能

23. 在8031单片机中,使用P2、P0口传送 地址 信号,且使用了P0口传送 数据 信号,这里采用的是 分时复用 技术。

24. MCS-51单片机的时序单位主要有四种:振荡周期、状态周期、机器周期、指令周期,它们之间有何关系?

答:振荡周期等于振荡频率的倒数;状态周期等于2个振荡周期;机器周期等于12个正当周期;指令周期等于1、2或4个机器周期。

25. 在MCS-51 单片机中,如果采用6MHZ 晶振,1个机器周期为 2 微秒。执行时间最长的指令周期为 8us 。

26. 当8051单片机的RST引脚出现 2 个机器周期的 高 电平时,单片机复位。

8

27. 单片机的复位方法有两种,分别是 上电复位 和 手动 ,复位后SP= 07H ,P0~P3= FFH ,PC= 0000H 。

28. 当MCS-51单片机运行出错或程序陷入死循环时,如何来摆脱困境? 答:通过硬件复位。

29. 8051型单片机的时钟信号的产生方式有哪两种? 答:一种是外接石英晶体振荡器;二是外接时钟源。

30. 说明MCS-51单片机的引脚 错误!未找到引用源。接高电平和接低电平时各有何种功能?

答:错误!未找到引用源。接地,单片机从外部程序存储器取指令。 错误!未找到引用源。接高,单片机首先访问内部程序存储器,当访问地址超过内部程序存储器范围时,自动访问外部程序存储器。

31. 说明引脚信号错误!未找到引用源。、错误!未找到引用源。、错误!未找到引用源。、ALE的功能?

答:错误!未找到引用源。是单片机读外部数据存储器的控制信号;错误!未找到引用源。是单片机向外部数据存储器写数据的控制信号;错误!未找到引用源。是单片机读外部程序存储器的控制信号。

32. 如果手中仅有一台示波器,可通过观察哪个引脚的状态,来大致判断MCS-51单片机正在工作?

答:ALE信号。它的频率等于晶振频率的1/6.

33. 画出8051单片机外扩一片静态RAM 6264(8K×8bit)的硬件连接图。

34.8751单片机系统需要外扩8KB的程序存储器,要求地址范围为1000H~2FFFH,以便和内部程序存储器地址相衔接,采用2764(8K×8bit)存储芯片,画出系统扩展的硬件连接图。 答:

9

35. 8031单片机系统需要外扩8KB的存储器空间,采用存储芯片EEPROM 2864(8K×8bit),将8KB存储空间的前4KB作为ROM使用,后4KB作为RAM使用,画出实现该功能的系统硬件连接图。

36. 80C51单片机有哪两种低功耗方式?如何设置低功耗方式?如何停止低功耗方式? 答:掉电方式和待机方式。

通过设置PCON寄存器的最低两位可实现单片机的低功耗方式。

结束待机方式可以通过中断或硬件复位;结束掉电方式只能通过硬件复位。

10

习题四

1. 一台计算机的指令系统就是它所能执行的 指令 集合。

2. 以助记符形式表示的计算机指令的程序设计语言就是 汇编 语言。

3. 按长度分,MCS-51指令有 单 字节的, 双 字节的和 三 字节的。 4.MCS-51汇编语言指令格式中,唯一不可缺少的部分是( B )。

A.标号 B.操作码 C.操作数 D.注释 5.MCS-51的立即寻址方式中,立即数前面( D )。

A.应加前缀“/”号 B.不加前缀号

C.应加前缀“@”号 D.应加前缀“#”号 6. 简述8051的寻址方式和每种寻址方式所涉及的寻址空间。 答:

寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址 寻址空间(操作数的存放空间) 程序存储器 片内RAM低128字节、特殊功能寄存器 工作寄存器R0~R7、A、B、DPTR 片内RAM:@R0、@R1、SP 片外RAM:@R0、@R1、@DPTR 程序存储器:@A+PC、@A+DPTR 程序存储器256字节范围内:PC+偏移量 片内RAM的位寻址区(字节地址20H~2FH)、 地址能被8整除的特殊功能寄存器

7.MCS-51寻址方式中,操作数Ri加前缀“@”号的寻址方式是( A )。

A.寄存器间接寻址 B.寄存器寻址 C.基址加变址寻址 D.立即寻址

8.MCS-51寻址方式中,位寻址的寻址空间是( D )。

A.工作寄存器R0~R7 B.专用寄存器SFR C.程序存贮器ROM D. 片内RAM的20H~2FH字节中的所有位和地址可被8整除的SFR的有效位 9.MCS-51寻址方式中,直接寻址的寻址空间是( D )。

A.工作寄存器R0~R7 B.专用寄存器SFR

C.程序存贮器ROM D.片内RAM 00H~7FH的128字节和80H~FFH中的SFR 10. 分析下面各指令源操作数的寻址方式。 MOV A,32H ;直接寻址 MOV R7,A ;寄存器寻址 MOV @R0,#0FEH ;立即寻址

MOV A,@R1 ;寄存器间接寻址 MOV DPTR,#1E00H ;立即寻址 MOVC A,@A+DPTR ;变址寻址 MOV C,20H ;位寻址 JC 10H ;相对寻址

11. 访问特殊功能寄存器和外部数据存储器,分别可以采用那些寻址方式?

11

答:访问特殊功能寄存器只能用直接寻址;访问外部数据存储器只能用寄存器间接寻址。 12. 在寄存器寻址方式中,指令中指定寄存器的内容就是 操作数 。 13. 在寻址方式中,只能使用 8 位二进制数作为直接地址。

14. 在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而操作

数的 地址 。 15. 在变址寻址方式中,以 累加器A 作变址寄存器,以 PC 或 DPTR 作基址寄存器。 16. 三种传送指令MOV、MOVC和MOVX,使用时有什么区别?

答:MOV指令用来实现单片机内部寄存器、存储单元、特殊功能寄存器之间的数据传送。 MOVC指令用来读程序存储器中的数据表。

MOVX 指令用来实现累加器A和外部数据存储器之间的数据传送。

17.执行指令MOVX A,@DPTR时,错误!未找到引用源。、错误!未找到引用源。引脚

的电平为( C )。

A.高电平,高电平 B.低电平,高电平 C.高电平,低电平 D.低电平,低电平 18. 假定累加器(A)=30H ,执行指令:“1000H:MOVC A,@A+PC”后,

把程序存储器 1031H 单元的内容送累加器 A中。

19. 假定DPTR的内容为8100H,累加器的内容为 40H,执行下列指令“MOVC A,@A+DPTR”

后,程序存储器 8140H 单元的内容送累加器 A中。 20. 单片机中PUSH和POP指令常用来( C )。

A.保护断点 B.保护现场

C.保护现场,恢复现场 D.保护断点,恢复断点 21. 假定(SP)=60H,(ACC)=30H,(B)=70H,执行下列指令:

PUSH ACC POP B

后, (SP)= 60H ,(61H)= 30H , (B)= 30H 。 22. 假定(SP)=62H ,(61H)=30H,(62H) =70H。执行指令:

POP DPH POP DPL

后, (DPTR)= 7030H ,(SP)= 60H 。 23. 假定(A) =85H,(R0) =20H,(20H) =AFH。执行指令:ADD A,@R0后,累加器 A

的内容为 34H ,CY 的内容为 1 ,AC的内容为 1 ,OV的内容为 1 。 24. 按指令的执行时间分,MCS-51指令有 1 、 2 和 4 机器周期的指令。 25. 假定(A)=0FFH,(30H)=0F0H,(R0)=4FH,(50H)=00H。执行指令序列:

INC A ;(A)=00H INC R0 ;(R0)=50H INC 30H ;(30H)=F1H INC @R0 ;(50H)=01H 后,累加器(A)= 00H ,(R0)= 50H ,(30H)= F1H ,(50H)= 01H 。 26. 假定(A)=56H,(R5) =67H。执行指令:

ADD A,R6 DA A

后,累加器 A的内容为 23H , CY 的内容为 1 。 27. 假定(A)=0FH,(R4)=19H,(30H)=00H,(R1)=40H,(40H)=0FFH。执行指令:

DEC A ;(A)=0EH

12

DEC R4 ;(R4)=18H DEC 30H ;(30H)=FFH DEC @R1 ;(40H)=FEH 后,(A)= 0EH ,(R4)= 18H , (30H)= FFH , (40H)= FEH 。 28. 假定(A)=50H,(B)=0A0H,执行指令:“MUL AB” 后,寄存器 B的内容为 32H ,

累加器 A的内容为 00H 。 29. 假定(A) =0FBH,(B)=12H 执行指令“DIV AB” 后,累加器 A的内容为 0DH ,

寄存器 B的内容为 11H 。

30. 下列指令可将累加器A最高位置1的是( B,C,D,E )。

A.ORL A,#7FH B.ORL A,#80H C.SETB 0E7H D.ORL E0H,#80H E.SETB ACC.7

31. 假定标号L2的地址为0100H,标号L3值为0123H,即跳转的目标地址为 0123H。当执

行指令“L2:SJMP L3”时,该指令的相对偏移量(即指令的第二字节)为 21H 。 32. 在位操作中,能起到与字节操作中累加器作用的是 进位标志位C 。

33.下列指令判断若P1口最低位为高电平就转到LP,否则就执行下一句的是( B )。

A.JNB P1.0,LP B.JB P1.0,LP C.JC P1.0,LP D.JNZ P1.0,LP 34. 累加器 A中存放着一个其值小于等于 127的 8为无符号数,(CY)=0,执行 RLC A指

令后,则A中的数变为原来的 2倍 。

35. 设内部RAM中50H单元的内容为34H,请分析下列程序段,说明各指令源操作数、目的

操作数的寻址方式以及按顺序执行指令后,A、R0以及内部RAM 30H、31H、50H单元的内容各为何值?

MOV R0,#50H ;(R0)=50H MOV A,@R0 ;(A)=34H SWAP A ;(A)=43H MOV 30H,A ;(30H)=43H MOV 31H,#30H ;(31H)=30H MOV 50H,30H ;(50H)=43H

36. 试根据以下要求写出相应的汇编语言指令。

(1)将R6的高四位和R7的高四位交换,R6、R7的低四位内容保持不变。 答:MOV A, R6

MOV 30H, R7 MOV R0, #40H MOV @R0, 30H XCHD A, @R0 MOV R7, A MOV 30H, @R0 MOV R7, 30H

(2)两个无符号数分别存放在30H、31H,试求出他们的和并将结果存放在32H。 答:MOV A, 30H

ADD A, 31H MOV 32H, A

(3)将30H单元的内容左环移两位,并送外部RAM 3000H单元。 答: MOV A, 30H

13

RL A RL A

MOV DPTR, #3000H MOVX @DPTR, A

(4)将程序存储器中1000H单元的内容取出送外部RAM 3000H单元。 答:MOV A, #0

MOV DPTR, #1000H MOVC A, @A+DPTR MOV DPTR, #3000H MOVX @DPTR, A

(5)使累加器A的最高位置1。 答:SETB ACC.7

(6)使进位标志位清0 答: CLR C

(7)使ACC.4、ACC.5和ACC.6置1。 答:ORL A, #01110000B

37. 设堆栈指针SP的内容为20H,累加器A的内容为67H,内部RAM中1FH、20H单元的内容分别为25H和34H,执行下列程序段后,1FH、20H、21H、22H、23H、DPTR、SP及累加器A的内容分别是多少?

PUSH ACC ;SP=21H, (21H)=67H PUSH 1FH ;SP=22H, (22H)=25H PUSH 20H ;SP=23H, (23H)=34H SWAP A ;A=76H

MOV 1FH,A ;(1FH)=76H RL A ;A=ECH MOV 20H,A ;(20H)=ECH

POP DPL ;(DPL)=34H, SP=22H

POP DPH ;(DPH)=25H, SP=21H, (DPTR)=2534H CLR 01H ;(20H.1)=0, (20H)=ECH

习题五

1. 用于程序设计的语言分为哪几种?它们各有什么特点?

答:MCS-51单片机的编程语言可以是汇编语言也可以是高级语言(如C语言),

名称 汇编语言 特点 用符号书写指令(用助记符表示操作码,特殊符号表示操作数) 高级语言 用以英语为基础的语句编程 缺点 机器不能直接识别;程序员必须了解机器的结构和指令系统,不易推广和普及;不能移植,不具备通用性 机器不能直接识别;执行时间长 易于推广和交流;不依赖于机器,具有通用性 科学运算和数据处理 优点 较易为人们识适用场合 实时控制系别、记忆和读写 统 2. 说明伪指令的作用。

答:伪指令是指示性语句,没有对应的机器码,用来告诉汇编程序如何汇编源程序。 3. 说明常用伪指令ORG、EQU、DB、DW、END的作用。

14

答:ORG --指出后面程序块或数据块在程序存储器中存放的起始地址。

EQU --赋值命令 DB --定义字节数据 DW --定义字数据

BIT --定义位地址符号命令 END --汇编结束命令

4. 设常量和数据标号的定义为: ORG 2000H

DAT1: DB 1, 2, 3, 4, 5 DAT2: DB ‘ABCD’ N EQU $-DAT2 DAT3: DW 1200H,-2 TAB: DW DAT1, DAT3

(1)画出上述数据或地址的存储形式。 (2)写出各标号的地址。 答:

地址 2000H 2005H 2009H 200DH 内容(H) 01 02 03 04 05 41 42 43 44 12 00 FF FE 20 00 20 09 DAT1=2000H; DAT2=2005H; DAT3=2009H; TAB =200DH 5. 双字节加法。被加数放在内部RAM的30H(高字节)、31H(低字节)单元中,加数存放在内部RAM的32H(高字节)和33H(低字节)中,运算结果放存放在30H,31H中,进位存放在位寻址区的00H位。 答: ORG 0000H MOV A, 31H ADD A, 33H MOV 31H, A MOV A, 30H ADDC A, 32H MOV 30H, A MOV 00H, C

15

SJMP $ END 6. 试编写程序,找出片内RAM 30H~5FH单元中无符号数的最大数,并将结果存入60H单元。 答: ORG 0000H MOV R0, #30H MOV R7, #2FH MOV A, @R0 AGAIN: INC R0 MOV B, A CLR C

SUBB A, @R0 JNC L1

MOV A, @R0 AJMP L2 L1: MOV A, B L2: DJNZ R7, AGAIN MOV 60H, A SJMP $ END

7. 从内部RAM 30H单元开始存放了20个数,找出其中的最小数。 答: ORG 0000H MOV R0, #30H MOV R7, #19H MOV A, @R0 AGAIN: INC R0 MOV B,A CLR C

SUBB A, @R0 JC L1

MOV A, @R0 AJMP L2 L1: MOV A, B L2: DJNZ R7, AGAIN MOV 2FH, A SJMP $ END

8. 试编写程序,查找在内部RAM的31H~50H单元中是否有41H这一数据。若有,则将51H

单元置为-1;若未找到,则将51H单元置为0。 答: ORG 0000H MOV R0, #31H MOV R7, #20H MOV A, #41H MOV 51H, #00H AGAIN: MOV B,A

16

CLR C

SUBB A, @R0 JZ L1 INC R0 MOV A, B

DJNZ R7, AGAIN AJMP EXIT L1: MOV 51H, #-1 EXIT: SJMP $ END

9. 编写程序,将片内RAM 40H~6FH单元中的无符号数按照从小到大的次序排列,结果仍然

放在原存储空间。

答: N EQU 30H TAB EQU 40H ORG 0000H SORT: MOV R4, #N-1 LOOP1: MOV A, R4 MOV R3, A MOV R0, #TAB LOOP2: MOV A, @R0 MOV B, A INC R0 CLR C

SUBB A, @R0 JC UNEXCH MOV A, B XCH A, @R0 DEC R0

MOV @R0, A UNEXCH: DJNZ R3, LOOP2 DJNZ R4, LOOP1 SJMP $ END

10.试编写程序,统计片内RAM的20H~5FH单元中出现55H的次数,并将统计结果送60H

单元。

答: TAB EQU 20H ORG 0000H START: MOV 60H, #0 MOV R0, #TAB LOOP2: MOV A, #55H CLR C

SUBB A, @R0 JNZ NEXT INC 60H

17

NEXT: INC R0

CJNE R0, #60H, LOOP2 SJMP $ END

11.编写程序,将片内RAM 30H~7FH单元的内容全部清零。 答: TAB EQU 30H ORG 0000H START: MOV A, #0 MOV R0, #TAB LOOP: MOV @R0, A INC R0

CJNE R0, #80H, LOOP SJMP $ END

12.编写程序,将片外数据存储区中3000H~30FFH单元全部清零。 答: ORG 0000H START: MOV A, #0 MOV R7, #0

MOV DPTR, #3000H LOOP: MOVX @DPTR, A INC DPTR DJNZ R7, LOOP SJMP $ END

13.从内部RAM DATA1单元开始,存放有20H个数据,试编写程序,将这20H个数据逐一移

到片外RAM DATA2单元开始的存储空间。 答: DATA1 EQU 30H

DATA2 EQU 1000H

ORG 0000H

START: MOV R0, #DATA1 MOV DPTR, #DATA2 MOV R7, #20H LOOP: MOV A, @R0 MOVX @DPTR, A INC R0 INC DPTR

DJNZ R7, LOOP SJMP $ END

14. 将外部RAM 8000H开始的20个字节数据传送到外部RAM 8100H开始的地址单元中去。 答: DATA1 EQU 8000H

DATA2 EQU 00H

ORG 0000H

18

START: MOV DPTR, #DATA1 MOV R0, #DATA2 MOV R7, #20 LOOP: MOVX A, @DPTR MOV P2, #81H MOVX @R0, A INC R0 INC DPTR

DJNZ R7, LOOP SJMP $ END

15. 编程统计累加器A中“1”的个数。

答:以下程序将A中“1”的个数放在30H单元。

DAT EQU 37H

ORG 0000H START: PUSH ACC MOV A, #DAT MOV 30H, #0 NEXT: JZ EXIT CLR C RLC A JNC L1 INC 30H L1: AJMP NEXT POP ACC EXIT: SJMP $ END

16. 从内部RAM 30H单元开始,存放有50个数据。试编写程序,将其中的正数、负数分别

送外部RAM 5000H和5500H开始的单元,并分别记下正数和负数的个数送内部RAM 70H和71H单元。

答: BUF EQU 30H

N EQU 50

ORG 0000H START: MOV R0, #BUF MOV R7, #N MOV 70H, #0 MOV 71H, #0 MOV DPTR, #5000H MOV R1, #00H NEXT: MOV A, @R0

JNB ACC.7, POSIT INC 71H

MOV P2, #55H MOVX @R1, A

19

INC R1 AJMP L1 POSIT: INC 70H

MOVX @DPTR, A INC DPTR L1: INC R0

DJNZ R7, NEXT SJMP $ END

17. 利用调子程序的方法,进行两个无符号数相加。请编主程序及子程序。 答: ORG 0000H

START: MOV R6, #56H ;主程序 MOV R7, #7FH ACALL ADD_SUB SJMP $

ADD_SUB: MOV A, R6 ;子程序 ADD A, R7 RET END

18. 计算下面子程序执行的时间(晶振频率为12MHz)。

DL: MOV R3, #15 ;1个机器周期 DL1: MOV R4, #255 ;1个机器周期 DL2: MOV P1, R3 ;2个机器周期

DJNZ R4, DL2 ;2个机器周期 DJNZ R3, DL1 ;2个机器周期 RET ;2个机器周期

答:1个机器周期=1us

延时时间t=1+15×(1+255×(2+2)+2)+2=15348us

19. 编写程序,将30H~34H单元中压缩的BCD码数(每个字节存放两个BCD码数)转换为

ASCII码数,并将结果存放在片内RAM 60H~69H单元。 答: ORG 0000H START: MOV R0, #30H MOV R1, #60H MOV R7, #2 AGAIN: MOV A, @R0 ANL A, #0F0H SWAP A

ADD A, #30H MOV @R1, A MOV A, @R0 ANL A, #0FH ADD A, #30H INC R1 MOV @R1, A INC R0

20

→Memory Window选项,打开Memory对话窗,在Address栏中输入地址 “D: 0030H”,查看片内RAM中0030H的内容。(X:外部数据存储器,C:程序存储器) 4.简述利用Proteus绘制电路图的主要步骤。

答:主要步骤:新建设计→挑选元器件→摆放元器件→摆放终端(电源、地)→连线→选择、装载目标文件(.HEX)→设置单片机晶振→保存设计→仿真运行→调试。 5.在Proteus ISIS中的仿真运行前,需要对单片机进行哪些设置? 答:设置单片机的晶振频率,并添加HEX文件到单片机。 6.仿真运行时,电路上红、蓝点代表什么含义? 答:红点代表高电平;蓝点代表低电平。

31

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

Top