您好,欢迎来到画鸵萌宠网。
搜索
您的当前位置:首页微机接口复习资料

微机接口复习资料

来源:画鸵萌宠网
“单片机原理及应用”习题集

教材:张毅刚主编,单片机原理及应用,普通高等教育“十五”国家级规划教材, 高等教育出版社,2008年5月

目 录

第一部分 习题.....................................................................................3 

第 1 章 单片机概述....................................................... 3 第 2 章 MCS­51单片机的硬件结构 ......................................... 3 第 3 章 MCS­51的指令系统 ............................................... 5 第 4 章 

MCS­51 汇编语言程序设计 ........................................ 6

第 5 章 MCS­51的中断系统 ............................................... 8 第 6 章 MCS­51的定时器/计数器........................................... 9 第 7 章 MCS­51的串行口 ................................................ 10 第 8 章 MCS­51单片机扩展存储器的设计 .................................. 11 第 9 章 MCS­51扩展 I/O 接口的设计....................................... 12 第 10 章 MCS­51与键盘、显示器、拨盘、打印机接口设计 .................... 12 第 11 章 MCS­51 单片机与D/A转换器、A/D 转换器接口..................... 13

第二部分 习题解答.............................................................................14 

第 1 章 单片机概述...................................................... 14 第 2 章 MCS­51单片机的硬件结构 ........................................ 15 第 3 章 MCS­51的指令系统 .............................................. 18 第 4 章 

MCS­51 汇编语言程序设计 ....................................... 20

第 5 章 MCS­51的中断系统 .............................................. 22 第 6 章 MCS­51的定时器/计数器.......................................... 25 第 7 章 MCS­51的串行口 ................................................ 28 第 8 章 MCS­51单片机扩展存储器的设计 .................................. 30 第 9 章 MCS­51扩展 I/O 接口的设计....................................... 35 第 10 章 MCS­51与键盘、显示器、拨盘、打印机接口设计 .................... 37 第 11 章 MCS­51 单片机与D/A转换器、A/D 转换器接口...................... 42 第 12 章 ................................................................ 45 第 13 章 ................................................................ 46 第 14 章 ................................................................ 47 第 15 章 ................................................................ 47

第一部分 习题

第 1章 单片机概述 

1.微处理器、微计算机、微处理机、CPU、单片机它们之间有何区别? 2.除了单片机这一名称之外,单片机还可称为( 3. 单片机与普通计算机的不同之处在于其将 ( 三部分集成于一块芯片上。 

4.单片机的发展大致分为哪几个阶段? 

5. 单片机根据其基本操作处理的位数可分为哪几种类型? 

6.MCS­51系列单片机的基本型芯片分别为哪几种?它们的差别是什么?。 7.MCS­51系列单片机与80C51系列单片机的异同点是什么?。 8.8051与8751的区别是:

(A)内部数据存储单元数目的不同 (B)内部数据存储器的类型不同 (C)内部程序存储器的类型不同

(D)内部的寄存器的数目不同 

)和( )、(

)。 

)、 和 (

9.在家用电器中使用单片机应属于微计算机的

(A)辅助设计应用(B)测量、控制应用(C)数值计算应用(D)数据处理应用 10.说明单片机主要应用在哪些领域?

第 2章 MCS­51单片机的硬件结构 

1.MCS­51 单片机的片内都集成了哪些功能部件?各个功能部件的最主要的功能是什么? 2. 说明 MCS­51单片机的引脚EA的作用, 该引脚接高电平和接低电平时各有何种功能? 3.MCS­51 的时钟振荡周期和机器周期之间有何关系? 

4. 在 MCS­51 单片机中,如果采用6MHz 晶振,一个机器周期为(

源的中断入口地址,请写出这些单元的地址以及对应的中断源。 6. 内部 RAM 中,位地址为 30H 的位,该位所在字节的字节地址为( 7.若 A中的内容为 63H,那么,P 标志位的值为( 8.判断下列说法是否正确:

(A)8031 的 CPU是由 RAM 和 EPROM 所组成。

(B)区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低

端还是高端。

(C)在 MCS­51 中,为使准双向的 I/O 口工作在输入方式,必须保证它被事先预置为 

1。

(D)PC 可以看成是程序存储器的地址指针。 9. 8031 单片机复位后,R4  所对应的存储单元的地址为 (

), 因上电时 PSW= (

)。

)。 

)。 )。 

5. 程序存储器的空间里,有 5 个单元是特殊的,这 5 个单元对应 MCS­51 单片机 5 个中断

这时当前的工作寄存器区是( )组工作寄存器区。 

10. 什么是机器周期?一个机器周期的时序是如何来划分的?如果采用 12MHz 晶振,一个

机器周期为多长时间? 

11.判断以下有关 PC 和 DPTR 的结论是否正确? 

(A) DPTR 是可以访问的,而 PC 不能访问。 (B) 它们都是 16 位的寄存器。 (C) 它们都具有加“1”的功能。 

(D) DPTR 可以分为 2 个 8位的寄存器使用,但 PC 不能。 

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

字节地址。 

13.使用 8031 单片机时,需将EA引脚接( )电平,因为其片内无( 15. 判断下列说法是否正确

(A)程序计数器 PC 不能为用户编程时直接使用,因为它没有地址。 (B)内部 RAM 的位寻址区,只能供位寻址使用,而不能供字节寻址使用。

(C)8031 共有 21 个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以

进行位寻址的。 

16.PC 的值是: 

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

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

17.通过堆栈操作实现子程序调用,首先就要把( 18. 写出 P3 口各引脚的第二功能。 

19.MCS­51 单片机程序存储器的寻址范围是由程序计数器 PC 的位数所决定的,因为 

MCS­51 的 PC 是 16 位的,因此其寻址的范围为( 21. 判断下列说法是否正确? 

(A) PC 是一个不可寻址的特殊功能寄存器。 

(B) 单片机的主频越高,其运算速度越快。 (C)在MCS­51单片机中,一个机器周期等于1μS。 (D)特殊功能寄存器SP内装的是栈顶首地址单元的内容。 

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

在工作?

)K 字节。 

20.当 MCS­51 单片机运行出错或程序陷入死循环时,如何来摆脱困境? 

)的内容入栈,以进行断点保

)。 

护。调用返回时,再进行出栈保护,把保护的断点送回到(

)存储器。 

14.片内 RAM 低 128个单元划分为哪三个主要部分?各部分的主要功能是什么? 

第 3章 MCS­51的指令系统 

1.判断以下指令的正误:

(1)MOV  28H,@R2 (2)DEC  DPTR (3)INC  DPTR (4)CLR   R0 (5)CPL R5 (6)MOV R0,R1 (7)PHSH DPTR (8)MOV F0,C 

(9)MOV F0,Acc.3 (10)MOVX A,@R1 (11)MOV C,30H (12)RLC R0 

2.判断下列说法是否正确。

(A)立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。 (B)指令周期是执行一条指令的时间。 (C)指令中直接给出的操作数称为直接寻址。 3. 在基址加变址寻址方式中, 以 ( 作基址寄存器。 

4.MCS­51 共有哪几种寻址方式?各有什么特点? 

5.MCS­51 指令按功能可以分为哪几类?每类指令的作用是什么? 6.访问 SFR,可使用哪些寻址方式? 7.指令格式是由(

)和(

)所组成,也可能仅由(

)组成。 

8. 假定累加器 A中的内容为30H,执行指令: 

1000H:MOVC  A,@A+PC 

) 作变址寄存器, 以 ( ) 或 ( )

后,把程序存储器( )单元的内容送入累加器 A中。 

)存储器提

9.在 MCS­51中,PC 和 DPTR 都用于提供地址,但PC 是为访问(

供地址,而DPTR 是为访问(

)存储器提供地址。 

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

操作数的(

)。 

11.下列程序段的功能是什么? 

PUSH  Acc PUSH  B POP   Acc POP   B 

12. 已知程序执行前有 A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行

后: 

POP  DPH POP  DPL 

MOV  DPTR,#4000H RL   A MOV  B,A MOVC A,@A+DPTR PUSH Acc

MOV  A,B INC  A 

MOVC A,@A+DPTR PUSH  Acc RET ORG  4000H 

DB  10H,80H,30H,50H,30H,50H 

请问:A=( =(

)。 

),SP=( ),(51H)=( ),(52H)=( ),PC 

13.写出完成如下要求的指令,但是不能改变未涉及位的内容。

(A)把 ACC.3, ACC.4,ACC.5 和 ACC.6 清“0”。 (B)把累加器 A的中间 4 位清“0”。 (C)使 ACC.2 和 ACC.3 置“1”。 

14.假定 A=83H,(R0)=17H,(17H)=34H,执行以下指令: 

ANL    A,#17H ORL    17H,A XRL    A,@R0 CPL    A 

后,A的内容为( )。 

),R3=(

)。 

15.假设 A=55H,R3=0AAH,在执行指令 ANL  A,R5 后,A=(

列指令后: 

POP   DPH POP   DPL POP   SP 

16.如果 DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下

则:DPH=( ),DPL=( ),SP=( ) 

17.假定,SP=60H,A=30H,B=70H,执行下列指令: 

PUSH   Acc PUSH   B 

后,SP 的内容为( (

)。 

),61H 单元的内容为( ),62H 单元的内容为

18.借助本书中的指令表:表 3­3 对如下的指令代码(16 进制)进行手工反汇编。 

FF  C0  E0  E5  F0  F0 

第 4章 MCS­51汇编语言程序设计 

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

2.说明伪指令的作用。“伪”的含义是什么? 

3.解释下列术语:“手工汇编”、“机器汇编”、“交叉汇编” 以及“反汇编”。 4.下列程序段经汇编后,从 1000H开始的各有关存储单元的内容将是什么? 

ORG  1000H TAB1  EQU  1234H TAB2  EQU  3000H DB   “MAIN” 

DW    TAB1,TAB2,70H 

5.设计子程序时注意哪些问题? 

6.试编写一个程序,将内部 RAM 中 45H 单元的高4 位清 0,低4 位置 1。 

7.已知程序执行前有 A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后,

请问 A=( 

);SP=(        );(41H)=(        );(42H)= 

(        ); 

PC=(           )。 

POP  DPH POP  DPL 

MOV  DPTR,#3000H RL  A MOV  B,A 

MOVC  A,@A+DPTR PUSH  ACC MOV  A,B INC  A 

MOVC  A,@A+DPTR PUSH  ACC RET ORG  3000H 

DB  10H,80H,30H,80H,50H,80H 

8.计算下面子程序中指令的偏移量和程序执行的时间(晶振频率为 12MHz)。 

7B0F 7CFF 8B90 DC DB 22 

MOV   R3,#15 

;1个机器周期 

;1个机器周期 ;2个机器周期 

DL1: MOV   R4,#255 DL2: MOV   P1,R3 

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

;2个机器周期 

9.假定 A=83H,(R0)=17H,(17H)=34H,执行以下指令: 

ANL   A,#17H ORL 

17H,A

XPL   A,@R0 CPL   A 

后,A的内容为( )。 

10.试编写程序,查找在内部 RAM 的 30H~50H 单元中是否有 0AAH 这一数据。若有,则

将 51H 单元置为“01H”;若未找到,则将 51H 单元置为“00H”。 

11.试编写程序,查找在内部 RAM 的 20H~40H 单元中出现“00H”这一数据的次数。并将查

找到的结果存入 41H 单元。 

12. 若 SP=60H,标号 LABEL所在的地址为 3456H。LCALL指令的地址为 2000H,执行如

下指令: 

2000H    LCALL LABEL 

后,堆栈指针 SP 和堆栈内容发生了什么变化?PC 的值等于什么?如果将指令 LCALL 直接换成 ACALL是否可以?如果换成 ACALL指令,可调用的地址范围是什么?

第 5章 MCS­51的中断系统 

1. 什么是中断系统?中断系统的功能是什么? 2. 什么是中断嵌套? 

3. 什么是中断源?MCS­51有哪些中断源?各有什么特点? 4. 外部中断1 所对应的中断入口地址为( 5.下列说法错误的是:

(A)各中断源发出的中断请求信号,都会标记在MCS­51系统中的IE寄存器中。 (B)各中断源发出的中断请求信号,都会标记在MCS­51系统中的TMOD寄存器中。 (C)各中断源发出的中断请求信号,都会标记在MCS­51系统中的IP寄存器中。 (D)各中断源发出的中断请求信号,都会标记在MCS­51系统中的TCON与SCON寄存器

中。 

6. MCS­51 单片机响应外部中断的典型时间是多少?在哪些情况下,CPU 将推迟对外部中断

请求的响应? 

7.中断查询确认后,在下列各种 8031单片机运行情况中,能立即进行响应的是:

(A)当前正在进行高优先级中断处理 (B)当前正在执行 RETI指令

(C)当前指令是 DIV指令,且正处于取指令的机器周期 (D)当前指令是 MOV A,R3 

8.8031单片机响应中断后,产生长调用指令 LCALL,执行该指令的过程包括:首先把

( 送(

)的内容压入堆栈,以进行断点保护,然后把长调用指令的 16 位地址 ),使程序执行转向(

)中的中断地址区。 

)H。 

9.编写出外部中断 1为跳沿触发的中断初始化程序。 10.在 MCS­51 中,需要外加电路实现中断撤除的是:

(A) 定时中断 

(B) 脉冲方式的外部中断 (C) 外部串行中断 (D) 电平方式的外部中断 

11.MCS­51 有哪几种扩展外部中断源的方法?各有什么特点? 12.下列说法正确的是: 

(A) 同一级别的中断请求按时间的先后顺序顺序响应。 

(B) 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。 

(C) 低优先级中断请求不能中断高优先级中断请求, 但是高优先级中断请求能中断低优

先级中断请求。 (D) 同级中断不能嵌套。 

13.中断服务子程序返回指令 RETI和普通子程序返回指令 RET有什么区别? 

14.某系统有三个外部中断源1、2、3,当某一中断源变为低电平时,便要求CPU进行处理,

它们的优先处理次序由高到底为3、2 、1 , 中断处理程序的入口地址分别为1000H,1100H , 1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。

第 6章 MCS­51的定时器/计数器 

1. 如果采用的晶振的频率为3MHz,定时器/计数器工作在方式0、1、2下,其最大的定时

时间各为多少? 

2. 定时器/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关? 3. 定时器/计数器作计数器模式使用时,对外界计数频率有何? 

4. 采用定时器/计数器TO对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方

式。定时1ms后,又转为计数方式,如此循环不止。假定MCS­51单片机的晶体振荡器 的频率为6MHz,请使用方式1实现,要求编写出程序。 5. 定时器/计数器的工作方式2有什么特点?适用于什么应用场合? 

6. 编写程序,要求使用T0,采用方式2定时,在P1.0输出周期为400µs,占空比为10:1的矩

形脉冲。 

7. 一个定时器的定时时间有限,如何实现两个定时器的串行定时,来实现较长时间的定

时? 

8. 当定时器T0用于方式3时,应该如何控制定时器T1的启动和关闭? 

9. 定时器/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为 

6MHz,求允许测量的最大脉冲宽度是多少? 

10. 编写一段程序,功能要求为:当P1.0引脚的电平上跳变时,对P1.1的输入脉冲进行计数;

当P1.2引脚的电平负跳变时, 停止计数, 并将计数值写入R0、R1( 高位存R1, 低位存R0)。 11. THX与TLX(X=0,1)是普通寄存器还是计数器?其内容可以随时用指令更改吗?更改

后的新值是立即刷新还是等当前计数器计满之后才能刷新?

12. 判断下列说法是否正确?

(1) 特殊功能寄存器SCON,与定时器/计数器的控制无关。 (2) 特殊功能寄存器TCON,与定时器/计数器的控制无关。 (3) 特殊功能寄存器IE,与定时器/计数器的控制无关。 (4) 特殊功能寄存器TMOD,与定时器/计数器的控制无关。

第 7章 MCS­51的串行口 

1. 串行数据传送的主要优点和用途是什么? 2. 简述串行口接收和发送数据的过程。 

3.帧格式为1 个起始位,8 个数据位和1 个停止位的异步串行通讯方式是方式( 4.串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定? 

5.假定串行口串行发送的字符格式为 1个起始位,8个数据位,1个奇校验位,1 个停止位,

请画出传送字符“A”的帧格式。 6.判断下列说法是否正确:

(A)串行口通讯的第 9 数据位的功能可由用户定义。

(B)发送数据的第 9 数据位的内容在 SCON寄存器的 TB8 位中预先准备好的。 (C)串行通讯帧发送时,指令把 TB8 位的状态送入发送 SBUF 中。 (D)串行通讯接收到的第 9位数据送 SCON 寄存器的 RB8 中保存。

(E)串行口方式 1的波特率是可变的,通过定时器/计数器 T1 的溢出率设定。 7.通过串行口发送或接收数据时,在程序中应使用:

(A)MOVC 指令(B)MOVX 指令(C)MOV指令(D)XCHD 指令 

8.为什么定时器/计数器 T1 用做串行口波特率发生器时,常采用方式 2?若已知时钟频

率、通讯波特率,如何计算其初值? 9.串行口工作方式 1的波特率是:

(A)固定的,为 fosc/32。 (B)固定的,为 fosc/16。

(C)可变的,通过定时器/计数器 T1 的溢出率设定。 (D)固定的,为 fosc/。 

10.在串行通讯中,收发双方对波特率的设定应该是(

为波特率发生器的方式控制字和计数初值。 12.简述利用串行口进行多机通讯的原理。 

13.使用 8031 的串行口按工作方式1 进行串行数据通讯,假定波特率为 2400b/s,以中断方

式传送数据,请编写全双工通讯程序。 

14.使用 8031 的串行口按工作方式3 进行串行数据通讯,假定波特率为 1200b/s,第 9数据

位作奇偶校验位,以中断方式传送数据,请编写通讯程序。

)的。 

)。 

11.若晶体振荡器为 11.0592MHz,串行口工作于方式 1,波特率为 4800b/s,写出用 T1 作

15.某 8031 串行口,传送数据的帧格式为 1 个起始位(0),7 个数据位,1 个偶校验和 1 

个停止位(1)组成。当该串行口每分钟传送 1800 个字符时,试计算出波特率。 16.为什么 MCS­51 串行口的方式0 帧格式没有起始位(0)和停止位(1)? 

第 8章 MCS­51单片机扩展存储器的设计 

1.单片机存储器的主要功能是存储(

)和(

)。 

2.试编写一个程序(例如将05H和06H拼为56H),设原始数据放在片外数据区2001H单元和 

2002H单元中,按顺序拼装后的单字节数放入2002H。 

3.假设外部数据存储器 2000H 单元的内容为 80H,执行下列指令后: 

MOV     P2,#20H 

MOV     R0,#00H MOVX    A,@R0 

累加器A中的内容为( )。 

4.编写程序,将外部数据存储器中的4000H~40FFH单元全部清零。 

5.在MCS­51单片机系统中,外接程序存储器和数存储器共16位地址线和8位数据线,为何

不会发生冲突? 

6.区分MCS­51单片机片外程序存储器和片外数据存储器的最可靠的方法是:

(1)看其位于地址范围的低端还是高端 (2)看其离MCS­51芯片的远近 (3)看其芯片的型号时ROM还是RAM 

(4)看其是与RD 信号连接还是与PSEN 信号连接 

7.在存储器扩展中,无论是线选法还是译码法,最终都是为扩展芯片的(

号。 

8.请写出图8­18中4片程序存储器27128各自所占的地址空间。 9.起止范围为0000H~3FFFH的存储器的容量是(

DPTR是为访问( 11.11根地址线可选(

)存储器提供地址。 

)个存储单元,16KB存储单元需要(

)根地址线。 )H。 )KB。 

10.在MCS­51中,PC和DPTR都用于提供地址,但PC是为访问( )存储器提供地址,而 

)端提供信

12.32KB RAM存储器的首地址若为2000H,则末地址为(

成一个单片机应用系统,要求:

(1)画出硬件电路连线图,并标注主要引脚;

13.现有8031单片机、74LS373锁存器、1片27 EPROM和两片6116 RAM,请使用它们组

(2)指出该应用系统程序存储器空间和数据存储器空间各自的地址范围。 

2 14.使用C51芯片外扩1片E PROM 28,要求28兼作程序存储器和数据存储器,且首地

址为8000H。要求:

(1)确定28芯片的末地址;

(2)画出28片选端的地址译码电路; (3)画出该应用系统的硬件连线图。

第 9章 MCS­51扩展 I/O接口的设计 

1.I/O 接口和 I/O 端口有什么区别?I/O 接口的功能是什么? 

2. 常用的 I/O 端口编址有哪两种方式? 它们各有什么特点?MCS­51 的 I/O 端口编址采用的

是哪种方式? 

3.I/O 数据传送由哪几种传送方式?分别在哪些场合下使用? 

4. 编写程序, 采用8255A的 C 口按位置复位控制字, 将 PC7 置“0”,PC4  置“1”,(已知 8255A 各端口的地址为 7FFCH~7FFFH)。 

5.8255A 的“方式控制字”和“C口按位置复位控制字”都可以写入 8255A的同一控制寄存器, 

8255A是如何来区分这两个控制字的? 

6.由图 9­6 来说明 8255A的 A口在方式1 的选通输入方式下的工作过程。 

7.8155H 的端口都有哪些?哪些引脚决定端口的地址?引脚 TIMERIN 和TIMEROUT 的作

用是什么? 

8.判断下列说法是否正确,为什么?

(1)由于 8155H 不具有地址锁存功能,因此在与 8031 的接口电路中必须加地址锁存

器。

(2)在 8155H 芯片中,决定端口和 RAM 单元编址的信号是 AD7~AD0和WR 。 (3)8255A具有三态缓冲器,因此可以直接挂在系统的数据总线上。 (4)8255A的 B 口可以设置成方式 2。 

9.现有一片 8031,扩展了一片 8255A,若把 8255A的 B 口用作输入,B 口的每一位接一个

开关,A 口用作输出,每一位接一个发光二极管,请画出出电路原理图,并编写出 B 口某一位开关接高电平时,A口相应位发光二极管被点亮的程序。 

10. 假设8155H的的TIMERIN引脚输入的频率为4MHz? 问8155H的最大定时时间是多少? 11.MCS­51 的并行接口的扩展有多种方法,在什么情况下,采用扩展 8155H 比较适合?什

么情况下,采用扩展8255A比较适合? 

12.假设 8155H 的 TIMERIN 引脚输入的脉冲频率为 1MHz,请编写出在 8155H 的 

TIMEROUT 引脚上输出周期为 10ms 的方波的程序。

第 10章 MCS­51与键盘、显示器、拨盘、打印机接口设计 

1.为什么要消除按键的机械抖动?消除按键的机械抖动的方法有哪几种?原理是什么? 2.判断下列说法是否正确?

(1)8279 是一个用于键盘和 LED(LCD)显示器的专用接口芯片。

(2)在单片机与微型打印机的接口中,打印机的 BUSY 信号可作为查询信号或中断请求

信号使用。

(3)为给扫描法工作的 8×8 键盘提供接口电路,在接口电路中只需要提供两个输入口和

一个输出口。

(4)LED 的字型码是固定不变的。 

3.LED 的静态显示方式与动态显示方式有何区别?各有什么优缺点? 4.写出表 10­1 中仅显示小数点“.”的段码。 5.说明矩阵式键盘按键按下的识别原理。 

6.对于图 10­11 的键盘,采用线反转法原理来编写出识别某一按键被按下并得到其键号的

程序。 

7.键盘有哪三种工作方式,他们各自的工作原理及特点是什么? 

8.根据图 10­14 的电路,编写出在 6 个 LED显示器上轮流显示“1,2,3,4,5,6”的显示

程序。 

9.根据图 10­17 的接口电路编写出在 8个 LED 上轮流显示“1,2,3,4,5,6,7,8”的显

示程序,比较一下与上一题的显示程序的区别。 

10.8279 中的扫描计数器有两种工作方式,这两种工作方式各应用在什么场合? 

11.简述 TPμP40A/16A 微型打印机的 Centronics 接口的主要信号线的功能,与 MCS­51 单

片机相连接时,如何连接几条控制线? 

12.如果把图 10­30 中的打印机的 BUSY 线断开,然后与 8031 的 INT 0 线相接,请简述电路

的工作原理并编写出把 20H为起始地址的连续20 个内存单元中的内容输出打印程序。 13.根据图 10­14,8155H 与 32 键的键盘相连接,编写程序实现如下功能:用 8155H 的定

时器定时,每隔一秒读一次键盘,并将起读入的键值存入 8155H 片内 RAM 中 30H 开 始的单元中。 

14.采用 8279 芯片的键盘/显示器接口方案,与本章介绍的器它的键盘/显示器的接口方案

相比,有什么特点?

第 11章 MCS­51单片机与 D/A转换器、A/D转换器接口 

1.对于电流输出的D/A转换器,为了得到电压的转换结果,应使用(

试问它的分辨率是多少? 

3. 说明 DAC 用作程控放大器的工作原理。 

4.使用双缓冲方式的 D/A转换器,可实现多路模拟信号的( 用? 

6.A/D 转换器两个最重要的指标是什么? 

7.分析 A/D 转换器产生量化误差的原因,一个 8 位的 A/D 转换器,当输入电压为 0­5V时,

其最大的量化误差是多少? 

8.目前应用较广泛的 A/D 转换器主要有以哪几种类型?它们各有什么特点?。 9.DAC 和 ADC 的主要技术指标中,“量化误差”,“分辨率”和“精度”有何区别?

)输出。 

5.MCS­51 与 DAC0832 接口时,有哪三种连接方式?各有什么特点?各适合在什么场合使

)。 

2. D/A转换器的主要性能指标都有哪些?设某DAC为二进制12位,满量程输出电压为5V, 

10.在一个由 8031单片机与一片 ADC0809 组成的数据采集系统中,ADC0809 的8 个输入通

道的地址为 7FF8H~7FFFH,试画出有关接口电路图,并编写出每隔 1 分钟轮流采集一次 8 个通道数据的程序,共采样 50次,其采样值存入片外 RAM 2000H 单元开始存储区中。 11.根据图 11­19,8031 控制 12 位 A/D 转换器 AD574 采集 10 个数据,并将这 10 个数据送

到内部 RAM 起始地址为 40H 开始的单元中,偶地址单元存高 4 位,奇地址存低 8 位, 编写出相应的程序。 12.判断下列说法是否正确?

(A)“转换速度 ”这一指标仅适用于 A/D 转换器,D/A 转换器不用考虑“转换速度”这一问题。 (B)ADC0809 可以利用“转换结束”信号EOC 向 8031 发出中断请求。 (C)输出模拟量的最小变化量称为 A/D 转换器的分辨率。

(D)对于周期性的干扰电压,可使用双积分的 A/D 转换器,并选择合适的积分元件,可

以将该周期性的干扰电压带来的转换误差消除。

第二部分 习题解答

第 1章 单片机概述 

1.微处理器、微计算机、微处理机、CPU、单片机它们之间有何区别?

答:微处理器、CPU、微处理机他们都是处理器,微计算机、单片机是一完整的计算机。 

2.除了单片机这一名称之外,单片机还可称为( 答:微控制器、嵌入式控制器 

)和( )。

3. 单片机与普通计算机的不同之处在于其将 ( 三部分集成于一块芯片上。 答:CPU、存储器、I/O 

)、( )、 和 ( )

4.单片机的发展大致分为哪几个阶段? 答:见教材 

5. 单片机根据其基本操作处理的位数可分为哪几种类型? 答:4、8、16、32位 

6.MCS­51系列单片机的基本型芯片分别为哪几种?它们的差别是什么?。

答:三种,主要差别在于片内是否带有程序存储器。8031片内不带有程序存储器,8051片内 带有4K ROM,8751片内带有4K  EOROM程序存储器, 

7.MCS­51系列单片机与80C51系列单片机的异同点是什么?。

答:80C51系列单片机式与MCS­51系列相兼容的,这种兼容性体现在指令系统兼容,内核 是相同的,但是片内功能部件可能有所不同。 

8.8051与8751的区别是:

(A)内部数据存储单元数目的不同 (B)内部数据存储器的类型不同 (C)内部程序存储器的类型不同 答:C。 

(D)内部的寄存器的数目不同

9.在家用电器中使用单片机应属于微计算机的

(A)辅助设计应用(B)测量、控制应用(C)数值计算应用(D)数据处理应用 答:B。 

10.说明单片机主要应用在哪些领域? 答:见教材。

第 2章 MCS­51单片机的硬件结构 

1.MCS­51 单片机的片内都集成了哪些功能部件?各个功能部件的最主要的功能是什么? 2. 说明 MCS­51单片机的引脚EA的作用, 该引脚接高电平和接低电平时各有何种功能? 3.MCS­51 的时钟振荡周期和机器周期之间有何关系? 答:1 个机器周期等于 12 个时钟振荡周期 

4. 在 MCS­51 单片机中,如果采用6MHz 晶振,一个机器周期为( 答:2 微秒 

)。

5. 程序存储器的空间里,有 5 个单元是特殊的,这 5 个单元对应 MCS­51 单片机 5 个中断

源的中断入口地址,请写出这些单元的地址以及对应的中断源。 答: 

5种中断源的中断入口地址 中断源 外部中断0 (INT0) 定时器0 (T0) 外部中断1 ( INT 1 ) 定时器1 (T1) 入口地址 0003H 000BH 0013H 001BH串行口 0023H 6. 内部 RAM 中,位地址为 30H 的位,该位所在字节的字节地址为( 答:26H 

)。

7.若 A中的内容为 63H,那么,P 标志位的值为( 答:0 

)。

8.判断下列说法是否正确:

(A)8031 的 CPU是由 RAM 和 EPROM 所组成。

(B)区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低

端还是高端。

(C)在 MCS­51 中,为使准双向的 I/O 口工作在输入方式,必须保证它被事先预置为 

1。

(D)PC 可以看成是程序存储器的地址指针。 答:

(A)错(B)错(C)对(D)对 

9. 8031 单片机复位后,R4  所对应的存储单元的地址为 ( 这时当前的工作寄存器区是( )组工作寄存器区。 答:04H,00H,0 

), 因上电时 PSW= ( )。

10. 什么是机器周期?一个机器周期的时序是如何来划分的?如果采用 12MHz 晶振,一个

机器周期为多长时间? 

11.判断以下有关 PC 和 DPTR 的结论是否正确? 

(A) DPTR 是可以访问的,而 PC 不能访问。 (B) 它们都是 16 位的寄存器。 (C) 它们都具有加“1”的功能。 

(D) DPTR 可以分为 2 个 8位的寄存器使用,但 PC 不能。 答:

(A)对(B)对(C)错(D)对 

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

字节地址。

答:字节地址为 00H-1FH 的单元可以作为工作寄存器区;字节地址为 20H-2FH 的单元

可以进行位寻址; 

13.使用 8031 单片机时,需将EA引脚接( )电平,因为其片内无( 答:低;程序

)存储器。

14.片内 RAM 低 128个单元划分为哪三个主要部分?各部分的主要功能是什么? 15. 判断下列说法是否正确

(A)程序计数器 PC 不能为用户编程时直接使用,因为它没有地址。 (B)内部 RAM 的位寻址区,只能供位寻址使用,而不能供字节寻址使用。

(C)8031 共有 21 个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以

进行位寻址的。

答:

(A)对(B)错(C)错 

16.PC 的值是: 

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

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

17.通过堆栈操作实现子程序调用,首先就要把( 答:PC;PC 

)的内容入栈,以进行断点保

)。

护。调用返回时,再进行出栈保护,把保护的断点送回到(

18. 写出 P3 口各引脚的第二功能。 

19.MCS­51 单片机程序存储器的寻址范围是由程序计数器 PC 的位数所决定的,因为 

MCS­51 的 PC 是 16 位的,因此其寻址的范围为( 21. 判断下列说法是否正确? 

(A) PC 是一个不可寻址的特殊功能寄存器。 

(B) 单片机的主频越高,其运算速度越快。 (C)在MCS­51单片机中,一个机器周期等于1μS。 (D)特殊功能寄存器SP内装的是栈顶首地址单元的内容。 

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

在工作?

)K 字节。 

20.当 MCS­51 单片机运行出错或程序陷入死循环时,如何来摆脱困境? 

第 3章 MCS­51的指令系统 

1.判断以下指令的正误:

(1)MOV  28H,@R2 (2)DEC  DPTR (3)INC  DPTR (4)CLR   R0 (5)CPL R5 (6)MOV R0,R1 (7)PHSH DPTR (8)MOV F0,C 

(9)MOV F0,Acc.3 (10)MOVX A,@R1 (11)MOV C,30H (12)RLC R0 答:(1)× (2)× (3)Ö(4)×(5)× (6)× (7)× (8)Ö(9)× (10)Ö (11)Ö (12)× 2.判断下列说法是否正确。

(A)立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。 (B)指令周期是执行一条指令的时间。

(C)指令中直接给出的操作数称为直接寻址。 答:(A)Ö (B)Ö (C)× 

3.在基址加变址寻址方式中,以( )作变址寄存器,以( )或( ) 作基址寄存器。 答:A,DPTR 或 PC 

4.MCS­51 共有哪几种寻址方式?各有什么特点?

答:共有7 种寻址方式,分别是直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、基址 加变址、位寻址、相对寻址 

5.MCS­51 指令按功能可以分为哪几类?每类指令的作用是什么?

答:分为 5类,分别是数据传送类、算术操作类、逻辑运算类、控制转移类、位操作类 6.访问 SFR,可使用哪些寻址方式?

答:直接寻址方式是访问特殊功能寄存器的唯一寻址方式。 7.指令格式是由( )和( )所组成,也可能仅由( )组成。 答:操作码,操作数,操作码 

8. 假定累加器 A中的内容为30H,执行指令: 

1000H:MOVC  A,@A+PC 

后,把程序存储器( )单元的内容送入累加器 A中。 答:1031H 

9.在 MCS­51中,PC 和 DPTR 都用于提供地址,但PC 是为访问( )存储器提 供地址,而DPTR 是为访问( )存储器提供地址。 答:程序存储器,数据存储器 

10.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作 数的( )。 答:地址 

11.下列程序段的功能是什么? 

PUSH  Acc PUSH  B POP   Acc POP   B 

答:A和 B 内容互换 

12. 已知程序执行前有 A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后:

POP  DPH POP  DPL 

MOV  DPTR,#4000H RL   A 

MOV  B,A 

MOVC A,@A+DPTR PUSH Acc MOV  A,B INC  A 

MOVC A,@A+DPTR PUSH  Acc RET 

ORG  4000H 

DB  10H,80H,30H,50H,30H,50H 请问:A=( ),SP=( ),(51H)= ( ),(52H)=( ),PC=( 答:A=(50H),SP=(52H),(51H)=(30H),(52H)=(50H),PC=(5030H)。 13.写出完成如下要求的指令,但是不能改变未涉及位的内容。 (A)把 ACC.3, ACC.4,ACC.5 和 ACC.6 清“0”。 (B)把累加器 A的中间 4 位清“0”。 (C)使 ACC.2 和 ACC.3 置“1”。 答: (A)ANL A,#87H 

(B)ANL A,#C3H (C)ORL A,#0CH 

14.假定 A=83H,(R0)=17H,(17H)=34H,执行以下指令: 

ANL    A,#17H ORL    17H,A XRL    A,@R0 CPL    A 后,A的内容为( )。 答:CBH 

15.假设 A=55H,R3=0AAH,在执行指令 ANL  A,R5 后,A=( 答: A=(00H),R3=(0AAH)。 

),R3=(

)。

)。

16.如果 DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下 列指令后: POP   DPH POP   DPL POP   SP 则:DPH=( ),DPL=( ),SP=( ) 答:DPH=(3CH),DPL=(5FH),SP=(50H) 17.假定,SP=60H,A=30H,B=70H,执行下列指令:

PUSH   Acc PUSH   B 后,SP  的内容为 ( ),61H  单元的内容为 ( ),62H  单元的内容为 ( 答: SP 的内容为(62H),61H 单元的内容为(30H),62H 单元的内容为(70H)。 18.借助本书中的指令表:表 3­3 对如下的指令代码(16 进制)进行手工反汇编。 FF  C0  E0  E5  F0  F0 答: MOV R7,A 

PUSH A MOV A,B MOVX @DPTR,A 

)。

第 4章 MCS­51汇编语言程序设计 

1.用于程序设计的语言分为哪几种?它们各有什么特点? 2.说明伪指令的作用。“伪”的含义是什么? 

3.解释下列术语:“手工汇编”、“机器汇编”、“交叉汇编” 以及“反汇编”。 4.下列程序段经汇编后,从 1000H开始的各有关存储单元的内容将是什么? 

ORG  1000H TAB1  EQU  1234H TAB2  EQU  3000H DB   “MAIN” 

DW    TAB1,TAB2,70H 

答:4DH, 41H, 49H, 4EH, 12H,34H,30H,00H,00H,70H 

5.设计子程序时注意哪些问题? 

6:试编写 1个程序,将内部 RAM 中 45H 单元的高4 位清 0,低4 位置 1。

答:MOV 

ANL ORL MOV POP POP MOV RL MOV PUSH 

A, 45H A, #0FH A, #0FH 45H, A DPH DPL 

DPTR,#3000H A B,A A

7:已知程序执行前有 A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后: 

MOVC A,@A+DPTR 

MOV INC PUSH RET ORG DB 

A,B A A 

MOVC A,@A+DPTR 

3000H 

10H,80H,30H,80H,50H,80H 

请问:A=( ),SP=( ),(51H)=( ),(52H)=( ),PC=( )。 答:A=80H ,  SP=40H ,   (51H)=50H ,  (52H)=80H ,   PC=8050H 8:计算下面子程序中指令的偏移量和程序执行的时间(晶振频率为 12MHz)。 

MOV DL1:MOV DL2:MOV 

DJNZ DJNZ RET 答:15348us 

析:((2+2)×255+1+2)×15+1+2=15348us 

9:假定 A=83H,(R0)=17H,(17H)=34H,执行以下指令: 

ANL ORL XRL CPL 

答:0CBH 

10:试编写程序,查找在内部 RAM 的 30H~50H 单元中是否有 0AAH 这一数据。若有,则

将 51H 单元置为“01H”;若未找到,则将 51H 单元置为“00H”。 答:START: MOV 

MOV 

LOOP: MOV 

CJNE MOV LJMP 

NEXT: INC 

DJNZ MOV 

R0,#30H R2,#20H A,@R0 A,#0AAH,NEXT 51H,#01H EXIT R0 R2,LOOP 51H,#00H

A,#17H 17H,A A,@R0 A R3,#15H R4,#255 P1,R3 R4,DL2 R3,DL1 

;1 个机器周期 ;1 个机器周期 ;2 个机器周期 ;2 个机器周期 ;2 个机器周期 ;2 个机器周期

后,A的内容为( )。

EXIT: RET 

11:试编写程序,查找在内部 RAM 的 20H~40H 单元中出现“00H”这一数据的次数。并将

查找到的结果存入 41H 单元。 答:START: MOV 

MOV MOV 

LOOP: MOV 

JNZ INC 

NEXT: INC 

DJNZ RET 

12:若 SP=60H,标号 LABEL所在的地址为 3456H。LCALL指令的地址为 2000H,执行指

令如下: 

2000H 

LCALL LABEL 

41H,#0 R0,#20H R2,#20H A,@R0 NEXT 41H R0 R2,LOOP 

后,堆栈指针 SP 和堆栈内容发生了什么变化?PC 的值等于什么?如果将指令 LCALL 直接换成 ACALL是否可以?如果换成 ACALL指令,可调用的地址范围是什么? 答:1)SP=SP+1=61H 

SP=SP+1=62H 2)PC=3456H 3)可以 

4)2KB=2048 Byte 

(61H)=PC 的低字节=03H (62H)=PC 的高字节=20H 

第 5章 MCS­51的中断系统 

1. 什么是中断系统?中断系统的功能是什么? 2. 什么是中断嵌套? 

3. 什么是中断源?MCS­51有哪些中断源?各有什么特点? 4. 外部中断1 所对应的中断入口地址为( 4:外部中断1 所对应的中断入口地址为( )H。

答:0013H 5:下列说法错误的是: 

A、 各中断发出的中断请求信号,都会标记在 MCS-51系统的 IE 寄存器中。 B、各中断发出的中断请求信号,都会标记在 MCS-51系统的 TMOD 寄存器中。

)H。 

C、各中断发出的中断请求信号,都会标记在 MCS-51系统的 IP 寄存器中。 

D、 各中断发出的中断请求信号, 都会标记在 MCS-51 系统的 TCON 与 SCON寄存器

中。 答:ABC 

6. MCS­51 单片机响应外部中断的典型时间是多少?在哪些情况下,CPU 将推迟对外部中断

请求的响应? 

7:中断查询确认后,在下列各种 8031单片机运行情况中,能立即进行响应的是: 

A、 当前正在执行高优先级中断处理 B、当前正在执行 RETI指令 

C、当前指令是DIV指令,且正处于取指令的机器周期 D、 当前指令是 MOV 答:D 

8:8031 单片机响应中断后,产生长调用指令 LCALL,执行该指令的过程包括:首先把( )

的内容压入堆栈,以进行断点保护,然后把长调用指令的 16 位地址送( ),使程序执 行转向( ) 中的中断地址区。 答:PC、PC、程序存储器 

9:编写出外部中断 1为跳沿触发的中断初始化程序。

答:SETB 

SETB SETB A、定时中断 C、外部串行中断 答:D 

12:下列说法正确的是: 

A、 同一级别的中断请求按时间的先后顺序响应。 

B、同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。 

C、低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优

先级中断请求。 D、 同级中断不能嵌套。 答:ACD 

13:中断服务子程序返回指令 RETI和普通子程序返回指令 RET有什么区别?

答:RETI指令在返回的同时清除相应的优先级触发器,以允许下次中断 

14:某系统有 3 个外部中断源 1、2、3,当某一中断源变为低电平时,便要求 CPU 进行处 理, 它们的优先处理次序由高到低依次为3、2、 1,  中断处理程序的入口地址分别为1000H, 1100H,1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。 答:若仅在/INT0 引脚接 3个外部中断源,电路如图5-10(P115)

IT1 EX1 EA 

B、脉冲方式的外部中断 D、电平方式的外部中断

A,R3 

5-10:在 MCS-51中,需要外加电路实现中断撤除的是: 

ORG LJMP ORG LJMP ORG 

MAIN: CLR 

SETB SETB 

WAIT: 

MOV NOP LJMP 

0000H MAIN 0003H INT_EX0 0030H IT0 EX0 EA 

PCON,#01H ;单片机进入休眠方式等待中断 WAIT 

;判断是不是 1号中断 ;跳转到 1 号中断处理程序 ;判断是不是 2号中断 ;跳转到 2 号中断处理程序 ;跳转到 3 号中断处理程序 ; 采用低电平有效中断 ;允许外部中断 0 

; 插入用户程序 

;以下为外部中断 0服务子程序 INT_EX0:JNB P1.0,NEXT1 

LJMP 

NEXT1: JNB 

LJMP 

NEXT2: LJMP 

ORG 

INT_IR1: 

;插入相应中断处理程序 RETI ORG 

INT_IR2: 

;插入相应中断处理程序 RETI ORG 

INT_IR3: 

;插入相应中断处理程序 RETI 

;中断返回

1200H 

;中断返回 

1100H 

;中断返回 

INT_IR1 P1.1,NEXT2 INT_IR2 INT_IR3 1000H 

第 6章 MCS­51的定时器/计数器 

1.如果采用晶振的频率为 3MHz,定时器/计数器工作方式 0、1、2 下,其最大的定时时间

为多少?

解:因为机器周期 T cy =

12 12 

= = 4 ( ms  ) , f OSC 3 ´ 10 6 

所以定时器/计数器工作方式 0 下,其最大定时时间为 

13 13 

T T ´ 10 - 6 = 32 . 768 ( ms ) ; MAX = 2 ´ C = 2 ´ 4 

同样可以求得方式 1 下的最大定时时间为 262.144ms;方式 2 下的最大定时时间为 

1024ms。 

2.定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关? 答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12 分频后提供。 定时时间与时钟频率、定时初值和工作方式有关。 

3.定时/计数器用作定时器时,对外界计数频率有何?

答:由于确认 1 次负跳变要花 2 个机器周期,即 24 个振荡周期,因此外部输入的计数脉冲 的最高频率为系统振荡器频率的 1/24,且高低电平的持续时间不小于一个机器周期。 

4.采用定时器/计数器 T0 对外部脉冲进行计数,每计数 100 个脉冲后,T0 转为定时工作方 式。定时 1ms 后,又转为计数方式,如此循环不止。假定 MCS­51 单片机的晶体振荡器的 频率为 6MHz,请使用方式 1 实现,要求编写出程序。

解:定时器/计数器 T0 在计数和定时工作完成后,均采用中断方式工作。除了第一次计数工 作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位 识别下一轮定时器/计数器 T0 的工作方式。编写程序如下: 

ORG LJMP ORG LJMP 

MAIN: MOV 

MOV MOV SETB SETB SETB SETB 

0000H MAIN 000BH IT0P 

TMOD,#06H ;定时器/计数器 T0 为计数方式 2 TL0,#156 TH0,#156 GATE TR0 ET0 EA 

;打开计数门 ;启动 T0,开始计数 ;允许 T0 中断 ;CPU开中断

;计数 100个脉冲的初值赋值 

CLR 

WAIT: IT0P: 

AJMP CLR JB MOV MOV MOV SETB RETI 

COUNT: MOV 

MOV SETB RETI 

F0 WAIT EA F0,COUNT 

;设置下一轮为定时方式的标志位 ;关中断 

;F0=1,转计数方式设置 

TMOD,#00H ;定时器/计数器 T0 为定时方式 0 TH0,#0FEH ;定时 1ms 初值赋值 TL0,#0CH EA 

TMOD,#06H TL0,#156 EA 

5. 定时器/计数器的工作方式 2有什么特点?适用于哪些应用场合?

答:定时器/计数器的工作方式 2 具有自动恢复初值的特点,适用于精确定时,比如波特率 的产生。 

6. 编写程序,要求使用 T0,采用方式2 定时,在 P1.0 输出周期为 400μs,占空比为 10:1 的 矩形脉冲。

解:根据题意,从 P1.0 输出的矩形脉冲的高低电平的时间为 10:1,则高低电平的时间分别 为 363.63μs 和 36.37μs。如果系统采用 6MHz 晶振的话, T m s ,因此高低电平输出取 cy = 2 整,则约为 3μs和 36μs。编写程序如下: 

ORG LJMP ORG LJMP 

MAIN: MOV 

MOV SETB SETB SETB SETB 

WAIT: IT0P: 

AJMP CLR CLR 

0000H MAIN 000BH IT0P 

TMOD,#02H ;定时器/计数器 T0 为定时方式 2 TL0,#4AH TR0 ET0 EA P1.0 WAIT EA P1.0 

;关中断

;定时 3μs 初值赋值 ;启动 T0,开始计数 ;允许 T0 中断 ;CPU开中断 

MOV 

DLY: 

DJNZ MOV SETB SETB RETI 

R0,#9 R0,DLY TL0,#4AH P1.0 EA 

;延时 26μs 

;定时 3μs 初值赋值 

7. 一个定时器的定时时间有限, 如何实现两个定时器的串行定时, 来实现较长时间的定时? 答:方式一,在第一个定时器的中断程序里关闭本定时器的中断程序,设置和打开另一个定 时器;在另一个定时器的中断程序中关闭本定时中断,设置和打开另一个定时器。这种方式 的定时时间为两个定时器定时时间的和。

方式二,一个作为定时器,在定时中断后产生一个外部计数脉冲(比如由 P1.0 接 INT0 产生),另一个定时器工作在计数方式。这样两个定时器的定时时间为一个定时器的定时时 间乘以另一个定时器的计数值。 

8. 当定时器 T0 用于方式 3 时,应该如何控制定时器T1 的启动和关闭? 答:由 T1(P3.5)口控制定时器 T1 的启动和关闭。 

9. 定时器/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为 6MHz,求允许测量的最大脉冲宽度是多少?

答:采用方式 1 定时工作方式。最大脉冲宽度为131.072ms。 

10. 编写一段程序,功能要求为:当 P1.0 引脚的电平正跳变时,对 P1.1 的输入脉冲进行计 数;当 P1.2 引脚的电平负跳变时,停止计数,并将计数值写入 R0、R1(高位存 R1,低位存 R0)。

解:将 P1.1 的输入脉冲接入 INT0,即使用 T0 计数器完成对 P1.1 口的脉冲计数。编写程序 如下: 

ORG LJMP ORG LJMP 

MAIN: JNB 

MOV SETB SETB SETB 

0000H MAIN 000BH IT0P P1.0,MAIN 

TMOD,#05H ;定时器/计数器 T0 为计数方式 1 TR0 ET0 EA 

;启动 T0,开始计数 ;允许 T0 中断 ;CPU开中断

WAIT: JB CLR CLR MOV MOV AJMP 

P1.2,WAIT EA TR0 R1,TH0 R0,TL0 $ R2 

IT0P: INC RETI 

11. THX 与 TLX(X=0,1)是普通寄存器还是计数器?其内容可以随时用指令更改吗?更改后 的新值是立即刷新还是等当前计数器计满后才能刷新?

答:THX 与 TLX(X=0,1)是由特殊功能寄存器构成的计数器,其内容可以随时用指令更改, 更改后的新值是立即刷新。但在读 THX、TLX 的值时,应该先读 THX 值,后读 TLX,再 读 THX。若两次读得 THX 相同,则可确定读得的内容正确。若前后两次读得的 THX 有变 化,再重复上述过程。 12. 判断下列的说法是否正确? 

(1) 特殊功能寄存器 SCON,与定时器/计数器的控制无关。(对) (2) 特殊功能寄存器 TCON,与定时器/计数器的控制无关。(错) (3) 特殊功能寄存器 IE,与定时器/计数器的控制无关。 (错) (4) 特殊功能寄存器 TMOD,与定时器/计数器的控制无关。(错)

第 7章 MCS­51的串行口 

1.串行数据传送的主要优点和用途是什么?

答:串行数据传送的主要优点是硬件接口简单,接口端口少(2 个)。主要用于多个单片机 系统之间的数据通信。 

2.简述串行口接收和发送数据的过程。

答:以方式一为例。发送:数据位由 TXT 端输出,发送 1 帧信息为 10 为,当 CPU 执行 1 条数据写发送缓冲器 SBUF 的指令,就启动发送。发送开始时,内部发送控制信号/SEND 变为有效,将起始位想 TXD输出,此后,每经过 1个 TX 时钟周期,便产生 1 个移位脉冲, 并由 TXD 输出1 个数据位。8 位数据位全部完毕后,置 1 中断标志位 TI,然后/SEND信号 失效。接收:当检测到起始位的负跳变时,则开始接收。接受时,定时控制信号有 2 种,一 种是位检测器采样脉冲,它的频率是 RX时钟的 16 倍。也就是在 1位数据期间,有 16 个采 样脉冲,以波特率的 16倍的速率采样 RXD 引脚状态,当采样到 RXD 端从1 到 0 的跳变时 就启动检测器,接收的值是 3 次连续采样,取其中 2次相同的值,以确认是否是真正的起始 位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。

3.帧格式为1 个起始位,8 个数据位和1 个停止位的异步串行通信方式是方式( 1 )。 4.串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?

答:串行口有 3 种工作方式:方式0、方式 1、方式 2、方式 3;有 3 种帧格式,方式 2和 3 具有相同的帧格式;方式 0 的发送和接收都以 fosc/12 为固定波特率,

SMOD 方式 1 的波特率=2 /32×定时器 T1 的溢出率 SMOD 方式 2 的波特率=2 /×fosc 

SMOD 方式 3 的波特率=2 /32×定时器 T1 的溢出率 

5.假定串行口串行发送的字符格式为 1 个起始位,8  个数据位,1  个奇校验位,1  个停止位,

请画出传送字符“A”的帧格式。

起始位 0  1   0  0   0  0   0  0 校验位 停止位 

6.判断下列说法是否正确:

(1) 串行口通信的第 9 数据位的功能可由用户定义。(对)

(2) 发送数据的第 9 数据位的内容在 SCON 寄存器的 TB8 位预先准备好的。(对) (3) 串行通讯发送时,指令把 TB8 位的状态送入发送 SBUF。(错) (4) 串行通讯接收到的第9 位数据送 SCON 寄存器的 RB8 中保存。(对) (5) 串行口方式1 的波特率是可变的,通过定时器/计数器 T1 的溢出设定。(对) 7.通过串行口发送或接收数据时,在程序中应使用:(选(3)) 

(1)MOVC 指令 (2)MOVX指令 (3)MOV指令 (4)XCHD 指令 

8.为什么定时器/计数器 T1 用做串行口波特率发生器时,采用方式 2?若已知时钟频率、 通讯波特率,如何计算其初值?

解:因为定时器/计数器在方式 2 下,初值可以自动重装,这样在做串口波特率发生器设置 时,就避免了重装参数的操作。

f OSC 2 SMOD

已知时钟频率、通讯波特率,根据公式: 波特率= ´ ,计算

32 12 ´ ( 256 - X ) 

出初值。 

9.串行口工作方式 1的波特率是:( 3 ) (1) 固定的,为 f OSC / 32 。 (2) 固定的,为 f OSC / 16 。

(3) 可变的,通过定时器/计数器 T1 的溢出率设定。 (4) 固定的,为 f OSC /  。

10.在串行通讯中,收发双方对波特率的设定应该是( 相等 )的。 

11.若晶体振荡器为 11.0592MHz,串行口工作于方式 1,波特率为 4800b/s,写出用 T1 作 为波特率发生器的方式控制字和计数初值。 解:初值计算:查阅 P148表 7­2 可得,FAH 

控制字:ANL TMOD,#0F0H 

ORL TMOD,#20H MOVTH1,#0FAH MOV TL1,#0FAH MOV SCON,#40H 

12.简述利用串行口进行多机通讯的原理。 解:参考 P146 页。 

13.使用8031 的串行口按工作方式1 进行串行数据通讯,假定波特率为2400b/s,以中断方 式传送数据,请编写全双工通讯程序。 解:略 

14.使用8031 的串行口按工作方式3 进行串行数据通讯,假定波特率为1200b/s,第 9 数据 位作奇偶校验位,以中断方式传送数据,请编写通讯程序。 解:略 

15.某 8031 串行口,传送数据的帧格式为 1个起始位(0),7 个数据位,1 个偶校验位和1 个停止位(1)组成。当该串行口每分钟传送 1800 个字符时,试计算出波特率。 解:串口每秒钟传送的字符为:1800/60=30 个字符/秒

所以波特率为:30 个字符/秒×10位/个字符=300b/s 

16.为什么 MCS­51 串行口的方式0 帧格式没有起始位(0)和停止位(1)?

解:串行口的方式 0 为同步移位寄存器输入输出方式,常用于外接移位寄存器,以扩展并行 I/O 口,一般不用于两个 MCS­51 之间的串行通信。该方式以 fosc/12 的固定波特率从低为位 到高位发送或接受数据。

第 8章 MCS­51单片机扩展存储器的设计 

1.单片机存储器的主要功能是存储(程序)和(数据)。 

2.试编写一个程序(例如将05H 和06H 拼为 56H),设原始数据放在片外数据区 2001H 单元 和 2002H单元中,按顺序拼装后的单字节数放入 2002H。

解:本题主要考察了对外部存储器的读、写操作,同学们只要记住正确使用 MOVX 指令就 可以了。编程思路:首先读取 2001H 的值,保存在寄存器 A中,将寄存器 A的高四位和低 四位互换,再屏蔽掉低四位然后将寄存器 A的值保存到 30H 中,然后再读取 2002H 的值, 保存在寄存器 A中,屏蔽掉高四位,然后将寄存器 A的值与 30H 进行或运算,将运算后的 结果保存在 2002H中。 

ORG 

0000H

MAIN: MOV 

MOVX SWAP ANL MOV INC MOVX ANL ORL MOVX END 

DPTR,#2001H 

A,@DPTR A A,#0F0H 30H,A DPTR A,@DPTR A,#0FH A,30H @DPTR,A 

;设置数据指针的初值 

;读取 2001H 的值 ;屏蔽掉低四位 ;保存 A 

;指针指向下一个 ;读取 2002H 的值 ;屏蔽掉高四位 ;进行拼装 ;保存到 2002H 

3.假设外部数据存储器 2000H 单元的内容为 80H,执行下列指令后: 

MOV MOV MOVX 

累加器 A中的内容为(80H)。 

4.编写程序,将外部数据存储器中的 4000H—40FFH 单元全部清零。

解:本题主要考察了对外部数据块的写操作;编程时只要注意循环次数和 MOVX 指令的使 用就可以了。 

ORG 

MAIN: 

MOV 

MOV MOV 

LOOP: 

MOVX 

INC DJNZ END 

5.在 MCS­51 单片机系统中,外接程序存储器和数据存储器共 16 位地址线和 8 位数据线, 为何不会发生冲突? 解:因为控制信号线的不同:

外扩的 RAM 芯片既能读出又能写入,所以通常都有读写控制引脚,记为 OE 和 WE。外扩 RAM 的读、写控制引脚分别与 MCS­51 的 RD和 WR 引脚相连。 外扩的 EPROM 在正常使用中只能读出,不能写入,故 EPROM 芯片没有写入控制引脚,只 有读出引脚,记为OE,该引脚与 MCS­51 单片机的 PSEN 相连。 

6.区分 MCS­51 单片机片外程序存储器和片外数据存储器的最可靠的方法是: (1)看其位于地址范围的低端还是高段 (2)看其离MCS­51 芯片的远近

0000H A,#0 

R0,#0FFH DPTR,#4000H @DPTR,A 

DPTR R0,LOOP 

;送预置数给 A 

;设置循环次数 ;设置数据指针的初值 ;当前单元清零 

;指向下一个单元 ;是否结束 

P2,#20H R0,#00H A,@R0 

(3)看其芯片的型号是 ROM 还是 RAM 

(4)看其是与 RD 信号连接还是与 PSEN 信号连接 解:本题的答案是 3,4。 

7.在存储器扩展中,无论是线选法还是译码法,最终都是为了扩展芯片的(片选)端提供信 号。 

8.请写出图 8­18 中4 片程序存储器 27128 各自所占的地址空间。

解:图中采用了译码法。4 片地址分别为 0000H­3FFFH、4000H­7FFFH、8000H­BFFFH、 C000H­FFFFH。 

9.起止范围为 0000H­3FFFH 的存储器的容量是(16)KB。 解:本题属于常识题,在第十一题时将有解。 

10.在 MCS­51 中,PC 和 DPTR 都用于提供地址,但 PC 是为了访问(程序)存储器提供地 址,而 DPTR 是为访问(数据)存储器提供地址。 

11.11 根地址线可选(2KB)个存储单元,16KB 存储单元需要(14)根地址线。

解:通过总结所学知识,我们得到以下几个信息:2KB 的存储器需要 11根地址线,地址为 0000H­07FFH;4KB 的存储器需要 12 根地址线,地址为 0000H­0FFFH; 

8KB 的存储器需要 13根地址线,地址为0000H­1FFFH;16KB 的存储器需要 14 根地址线, 地址为 0000H­3FFFH;32KB 的存储器需要 15 根地址线,地址为 0000H­7FFFH;KB 的 存储器需要 16 根地址线,地址为 0000H­FFFFH(以上存储器的首地址均默认为 0000H)。 12.32KB RAM 存储器的首地址若为 2000H,则末地址为(9FFF)H。

解: 由上题总结得出,32KB RAM 存储器的大小为0000H­7FFFH, 所以只要在后面加上2000H 即得到正确答案。 

13.现有 8031单片机、74LS373 锁存器、1 片27EPROM 和 2 片6116RAM,请使用他们组 成一个单片机系统,要求:

(1)画出硬件电路连线图,并标注主要引脚;

(2)指出该应用系统程序存储器空间和数据存储器空间各自的地址范围。 解:(1)电路图如下所示:

(2)27 的地址为 C000H­DFFFH; 第一个 6116 的地址为 A000H­A7FFH; 第二个 6116 的地址为 6000H­67FFH;

事实上,由于采用的是线选法,导致了地址不连续,地址空间利用不充分。建议在实际工作 中要具体情况具体分析。在两种地址分配中选一种较好的来应用。

8031 29 PSEN 16 WR 17 RD 27 1 27 VPP 22 PGM 20 OE CE HM6116 21 20 WE 18 OE CS HM6116 21 20 WE 18 OE CS P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 28 27 26 25 24 23 22 21 U4 19 22 23 1 2 3 4 5 6 7 8 19 22 23 1 2 3 4 5 6 7 8 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 U5 D7 D6 D5 D4 D3 D2 D1 D0 17 16 15 14 13 11 10 9 ALE/P 31 1 EA/VP U2 OC P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 32 33 34 35 36 37 38 39 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 O7 O6 O5 O4 O3 O2 O1 O0 3 4 7 8 13 14 17 18 D0 D1 D2 D3 D4 D5 D6 D7 2 5 6 9 12 15 16 19 2 23 21 24 25 3 4 5 6 7 8 9 10 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 U3 19 18 17 16 15 13 12 11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 U6 D7D6 D5 D4 D3 D2 D1 D0 17 16 15 14 13 11 10 9 30 11 G 2 

14.使用 C51芯片外扩一片 E PROM28,要求 28 兼作程序存储器和数据存储器,且首 

74LS373 地址为 8000H。要求: (1)确定 28 芯片的末地址; (2)画出 28 片选端的地址译码电路; (3)画出该应用系统的硬件连接图。

解:(1)28 为8KB 的存储器,如果首地址为8000H,则其末地址为 9FFFH,理由参考第 12 题;

(2)电路图如下所示: 

8031 30 29 16 17 28 27 26 25 24 23 22 21 32 33 34 35 36 37 38 39 P2.7 P2.6 P2.5 P2.5 P2.6 P2.7 1 2 3 6 4 5 U1 A B C G1 G2A G2B 74LS138 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 15 14 13 12 11 10 9 7 ALE/P PSEN WR RD P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 N1 +5v 31 EA/VP U2 (3)电路图如下所示: 

P2.5 P2.6 P2.7 8031 +5v PSEN WR RD P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 29 16 17 28 P2.7 27 P2.6 26 P2.525 24 23 22 21 32 33 34 35 36 37 38 39 3 4 7 8 13 14 17 18 11 U4 D0 D1 D2 D3 D4 D5 D6 D7 G Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 OC 2 5 6 9 12 15 16 19 1 6 4 5 G1 G2A G2B 74LS138 28 N1 27 22 20 2 23 21 24 25 3 4 5 6 7 8 9 10 WE OE CE A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 U3 1 1 2 3 U1 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 15 14 13 12 11 10 9 7 N1 READY 31 30 EA/VP U2 D7 D6 D5 D4 D3 D2 D1 D0 ALE/P 19 18 17 16 15 13 12 11 74LS373 第 9章 MCS­51扩展 I/O接口的设计 

1.I/O 接口和 I/O 端口有什么区别?I/O 接口的功能是什么?

解:I/O 端口简称 I/O 口,常指 I/O 接口电路中具有端口地址的寄存器或缓冲器。I/O 接口是 指单片机与外设间的 I/O 接口芯片。 

I/O 接口功能:一.实现和不同外设的速度匹配;二.输出数据缓存;三.输入数据三态缓冲。 2.常用的 I/O 接口编址有哪两种方式?它们各有什么特点?MCS­51 的 I/O 端口编址采用的 是哪种方式?

解:一.编址方式:编址方式就是 I/O 地址空间和存储器地址空间分开编址。 编址的优点是 I/O 地址空间和存储器地址空间相互,界限分明。但是,却需要设置一套 专门的读写 I/O 的指令和控制信号。二.统一编址方式:这种编址方式是把 I/O 端口的寄存器 与数据存储器单元同等对待,统一进行编址。统一编址的优点是不需要专门的 I/O 指令,直 接使用访问数据存储器的指令进行 I/O 操作,简单、方便且功能强大。MCS­51 单片机使用 的是 I/O 和外部数据存储器 RAM 统一编址的方式。 3.I/O 数据传送有哪几种传送方式?分别在哪些场合下使用?

解:一.同步传送方式:同步传送又称为有条件传送。当外设速度可与单片机速度相比拟时, 常常采用同步传送方式,最典型的同步传送就是单片机和外部数据存储器之间的数据传送。 二.查询传送方式:查询传送方式又称为有条件传送,也称异步传送。单片机通过查询得知 外设准备好后,再进行数据传送。异步传送的优点是通用性好,硬件连线和查询程序十分简 单,但是效率不高。为了提高单片机的工作效率,通常采用中断方式。三.中断传送方式: 中断传送方式是利用 MCS­51 本身的中断功能和 I/O 接口的中断功能来实现 I./O 数据的传 送。单片机只有在外设准备好后,发出数据传送请求,才中断主程序,而进入与外设进行数 据传送的中断服务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。因此, 采用中断方式可以大大提高单片机的工作效率。 

4.编写程序, 采用 8255A的 C 口按位置位/复位控制字, 将 PC7 置 0,PC4  置 1,(已知 8255A 各端口的地址为 7FFCH­7FFFH)。

解:本题主要考察对8255A的 C 口的操作。其方式控制字的高位为 0 时,低四位对 C口进 行置位。由题目我们得到了方式控制字的地址为7FFFH。 

ORG 

MAIN: 

MOV MOV MOVX MOV MOVX END 

5.8255A 的方式控制字和 C 口按位置位/复位控制字都可以写入 8255A 的同一控制寄存器, 8255A是如何区分这两个控制字的?

0000H DPTR,#7FFFH A,#0EH @DPTR,A A,#09H @DPTR,A 

;将 PC4 置 1 

;控制字寄存器地址送DPTR ;将 PC7 置 0 

解:8255A 通过它们的最高位来进行判断,最高位为 1 时,这时 8255A 认为这是方式控制 字,否则认为是 C 口按位置位/复位控制字 

6.由图 9­6 来说明 8255A的 A口在方式 1的选通输入方式下的工作过程。

解: 当外设输入一个数据并送到PA7-PA0上时, 输入设备自动在选通输入线STBA向8255A 发送一个低电平选通信号。8255A 收到选通信号后:首先把 PA7­PA0 上输入的数据存入 A 口的输入数据缓冲/锁存器;然后使输入缓冲器输出线 IBFA变成高电平,以通知输入设备, 8255A 的 A 口已收到它送来的输入数据。8255A 检测到联络线 STBA 由低电平变成了高电 平、IBFA为 1 状态和中断允许触发器 INTEA为 1 时,使输出线 INTRA (PC3)变成高电平, 向 8031 发出中断请求。(INTEA的状态可由用户通过对 PC4 的置位/复位来控制。8031 相应 中断后,可以通过中断服务程序从 A 口的输入数据缓冲/锁存器读取外设发来的输入数据。 当输入数据被 CPU读走后,8255A撤销 INTRA上的中断请求,并使 IBFA变为低电平,以 通知输入外设可以送下一个输入数据。 

7.8155H 的端口都有哪些?哪些引脚决定端口的地址?引脚 TIMERIN 和 TIMEROUT 的作 用是什么?

解:8155H 的端口有以下几种:命令/状态寄存器、A口、B 口、C 口、计数器和 RAM 单元。 引脚 IO/M、A2、A1、A0 决定端口地址。TIMERIN 是计数器输入线,输入的脉冲上跳沿用 于对 8155H 片内的 14 位计数器减一。TIMEROUT 为计数器输入线。当 14 位计数器减为 0 时就可以在该引线上输出脉冲或方波,输出的信号的形状与所选的计数器工作方式有关。 8.判断下列说法是否正确,为什么?

(1)由于 8155H 不具有地址锁存功能,因此在与 8031 的接口电路中必须加地址锁存器。 (2)在 8155H 芯片中,决定端口和 RAM 单元编址的信号线是 AD7­AD0 和WR。 (3)8255A具有三态缓冲器,因此可以直接挂在系统的数据总线上。 (4)8255A的 B 口可以设置成方式 2。 解:(1)8155H 具有地址锁存功能;

(2)引脚 IO/M、A2、A1、A0 决定端口地址和 RAM 单元编址; (3)8255A不具有三态缓冲器;

(4)8255A的 B 口只可以设置成方式 0和方式 1。 

9.现有一片 8031,扩展了一片 8255A,若把 8255A 的 B 口用做输入,B 口的每一位接一个 开关,A 口用作输出,每一位接一个发光二极管,请画出电路原理图,并编写出 B 口某一 位接高电平时,A口相应位发光二极管被点亮的程序。

解:由于电路图比较简单,在这里就画了,大家可以参考图 9­10,A 口每一位接二极管的 正极,二极管的负极接低。B 口每一位接一开关,开关直接接地。这样我们只需要将读到的 B 口的值送给 A口就可以满足题目要求了。 

ORG 

MIAN: 

MOV 

MOV MOVX 

0000H A,#10000010B 

@DPTR,A 

;A口出,B 口入 ;送方式控制字

DPTR,#0FF7FH ;控制地址送 DPTR 

MOV MOVX MOV MOVX END 

DPTR,#0FF7DH ;B 口地址送DPTR A,@DPTR @DPTR,A 

;读开关信息 ;将信息反溃到二极管 

DPTR,#0FF7CH ;A口地址送 DPTR 

10.假设 8155H 的 TIMERIN 引脚输入的频率为 4MHz?问 8155H 的最大定时时间是多少? 解:8155H 记数器的初值范围是:3FFFH­2H。当频率为 4MHz,初值为 3FFFH 时,最大定 时时间为:16383/4E+6=0.00409575S 

11.MCS­51 的并行接口的扩展有多种方式,在什么情况下,采用扩展 8155H 比较合适?什 么情况下,采用扩展8255A比较适合?

解:8255A具有 3个 8 位的并行 I/O 口,3种工作方式,可通过编程改变其功能,因而使用 灵活方便,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。8155H 芯片内 包含有 256B 的 RAM 存储器(静态),2 个可编程的八位并行口 PA 和 PB,1 个可编程的 6 位并行口 PC,以及 1 个 14 位减法定时器/计数器。所以它经常用于单片机的外围接口芯片。 12.假设8155H的TIMERIN引脚输入的脉冲频率为1MHz, 请编写出在8155H的TIMEROUT 引脚上输出周期为 10ms 的方波的程序。

解: 将 1MHz 的脉冲改变为10ms 的方波, 这就让我们想到了在数字电路里面学到的分频器。 计算得出分频前后频率之比为10000:1,这样我们只要将定时器初值设置为 H就可以了。 (假设 I/O 口地址为 7F00H­7F05H) START: 

MOV MOV MOVX INC MOV MOVX MOV MOV MOVX END 

DPTR,#7F04H A,#H @DPTR,A DPTR A,#40H @DPTE,A DPTR,#7F00H A,#0C2H @DPTE,A 

;指向命令/状态口 ;设定控制字 ;启动定时器 

;指针指向定时器低8 位 ;送初值给 A ;初值送给低 8 位 

;指向高 8位 ;定时器方波输出 

第 10章 MCS­51与键盘、显示器、拨盘、打印机接口设计 

1.为什么要消除按键的机械抖动?消除按键的机械抖动的方法有哪几种?原理是什么? 解:在按键的闭合和断开过程中,由于开关的机械特性,导致了按键抖动的产生。如果不消 除按键的机械抖动,按键的状态读取将有可能出现错误。消除按键抖动一般是采用软件或硬 件去抖。软件去抖的原理:在第一次检测到有键按下时,该键所对应的航线是为低电平,执 行一端延时 10ms 的子程序后,确认该行线电平是否仍然为低电平,如果仍为低电平,则确

认为该行确实有键按下。 2.判断下列说法是否正确?

(1)8279 是一个用于键盘和 LED(LCD)显示器的专用芯片。

(2)在单片机与微型打印机的接口中,打印机的 BUSY 信号可作为查询信号或中断请求信 号使用。

(3)为给以扫描发方式工作的 8*8 键盘提供接口电路,在接口电路中只需要提供 2 个输入 口和 1 个输出口。

(4)LED 的字型码是固定不变的。 解:(1)正确; (2)正确 (3)错误 (4)错误 

3.LED 的静态显示方式于动态显示方式有何区别?各有什么优缺点?

解: 静态显示时, 数据是分开送到每一位 LED上的。 而动态显示则是数据是送到每一个 LED 上,再根据位选线来确定是哪一位 LED 被显示。静态显示亮度很高,但口线占用较多。动 态显示则好一点,适合用在显示位数较多的场合。 4.写出表 10­1 中仅显示小数点“.”的段码。 解:80H(共阴极);7FH(共阳极) 5.说明矩阵式键盘按键按下的识别原理。

解:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻 接到+5V上,无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由 与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低;列线的电平如果 为高,则行线的电平亦为高。将行、列线信号配合起来并做适当的处理,才能确定闭合键的 位置。 

6.对于图 10­11 的键盘,采用线反转法原理来编写识别某一按键按下并得到其键号的程序。 解:先对 P1 口高四位送低电平,读取 P1口低四位的值;再对 P1 口低四位送低电平,读取 P1 口高四位的值,将两次读到的值组合在一起就得到了按键的特征码,在根据特征码查找 键值。

KEYIN: 

MOV MOV ANL MOV MOV MOV ANL ORL CJNE 

P1,#0FH A,P1 A,#0FH B,A P1,#0F0H A,P1 A,#0F0H A,B A,#0FFH,KEYIN1

;反转读键 

RET 

KEYIN1:MOV 

MOV MOV 

KEYIN2:INC 

MOV MOVC CJNE MOV RET 

KEYIN3:CJNE 

RET 

KEYCOD: 

DB DB DB DB 

R3 

A,R3 A,@A+DPTR A,B,KEYIN3 

A,R3 B,A 

R3,#0FFH 

;未按键 ;暂存特征码 

DPTR,#KEYCOD ;指向码表 

;顺序码初始化 

;找到,取顺序码 

A,#0FFH,KEYIN2;未完,再查 

;已查完,未找到,以未按键处理 

0E7H,0EBH,0EDH,0EEH 0D7H,0DBH,0DDH,0DEH 0B7H,0BBH,0BDH,0BEH 77H,7BH,7DH,7EH 

7.键盘有哪 3种工作方式,它们各自的工作原理及特点是什么?

解:一.编程扫描方式:当单片机空闲时,才调用键盘扫描子程序,反复的扫描键盘,等待 用户从键盘上输入命令或数据,来响应键盘的输入请求。二.定时扫描工作方式:单片机对 键盘的扫描也可用定时扫描方式,即每隔一定的时间对键盘扫描一次。三.中断工作方式: 只有在键盘有键按下时,才执行键盘扫描程序并执行该按键功能程序,如果无键按下,单片 机将不理睬键盘。 

8.根据图 10­14 的电路,编写在 6个 LED 显示器上轮流显示“1,2,3,4,5,6”的显示程序。 解:本电路图采用的是动态显示。程序如下 

DIR: 

MOV MOV MOV 

LD0: 

MOV MOV INC MOV ADD MOVC 

DIR1: 

MOVX ACALL INC MOV 

R0,#79H R3,#01H A,R3 DPTR,#7F01H @DPTR,A DPTR 

A,@R0 A,#0DH A,@A+PC @DPTR,A DL1MS RO 

R3

;取到笔形码 ;送出显示 

;位选码 

;从 79H 开始里面存放着 ;1,2,3,4,5,6 

JB RL MOV AJMP 

LD1: DSEG: DL1MS: DL: DL6: 

RET DB MOV MOV DJNZ DJNZ RET 

ACC.5,LD1 A 

R3,A LD0 

;是否到最右边的 LED 

;保存位选码 

3FH,06H,5BH,4FH,66H,6DH,7DH 

R7,#02H R6,#0FFH R6,DL6 R7,DL 

;0,1,2,3,4,5,6 

9. 根据图 10­17 的接口电路编写在 8 个 LED 上轮流显示“1,2,3,4,5,6,7,8”的显示 程序,比较一下与上一题显示程序的区别。 解:本电路图采用的是静态显示。程序如下: 

DIR: 

SETB MOV MOV MOV CALL DEC CALL DEC CALL DEC CALL DEC CALL DEC CALL DEC CALL DEC 

OUT: 

MOV MOVC MOV JNB CLR 

TI,$ TIP3.3 

;允许显示 

SCON,#0;工作方式一 DPTR,#TAB ;笔形码 R7,#08H ;初值为 8 OUT 

R7 OUT 

R7 OUT 

R7 OUT 

R7 OUT 

R7 OUT 

R7 OUT 

R7 A,R7 

A,@A+DPTR ;找到对应的笔形码 

SBUF,A 

;送出显示 ;2 ;1 ;3 ;4 ;5 ;6 ;7 ;8 

RET 

TAB: 

DB DB 

0COH,0F9H,0A4H,0B0H,99H 92H,B2H,0F8H,80H 

;0,1,2,3,4 ;5,6,7,8 

10.8279 中扫描计数器有两种工作方式,这 2 种工作方式各应用在什么场合?

解:按编码方式工作时,计数器作二进制计数。4 位计数状态从扫描线 SL0­SL3 输出,经外 部译码器 4线­16线译码后,为键盘和显示器提供 16中取 1 的扫描线。按译码方式工作时, 扫描计数器的最低 2位在 8279内部被译码后,从 SL0­SL3 输出,为键盘和显示器直接提供 了 4 中取 1的扫描线。 

11.简述 TpuP­40A/16A微型打印机的 Centronics 接口的主要信号线的功能。与 MCS­51单片 机相连接时,如何连接这几条控制线?

解:DB0­DB7:数据线,单向传输,由单片机输入给打印机。 

STB(STROBE):数据选通信号。在该信号的上升沿,数据线上的 8 位并行数据被打印机 读入机内锁存。 

BUSY:打印机忙状态信号。当该信号有效(高电平)时,表示打印机正忙于处理数据。此 时,单片机不得使 STB 信号有效,向打印机送入新的数据。 

ACK:打印机的应答信号。低电平有效,表明打印机已取走数据线上的数据。 

ERR:出错信号。当送入打印机的命令格式出错时,打印机立即打印 1 行出错信息,提示出 错。在打印出错信息之前。该信号线出现一个负脉冲,脉冲宽度为 30us。 用一根地址线来控制写选通信号 STB 和读取 BUSY 引脚状态。 

12.如果把图10­30中打印机的 BUSY 线断开,然后与 8031 的 INTO 线相接,请简述电路的 工作原理并编写把以20H 为起始地址的连续 20 个内存单元中的内容输出打印的程序。 解:本程序采用外部中断来进行数据打印,先打印一个数据,当 BUSY 线从高电平变成低 电平时,在打印下一个数据 

ORG LJMP ORG LJMP ORG 

MAIN: 

SETB SETB SETB MOV MOV MOVX MOV MOV MOV 

IT0 EA 

R0,#7FH ;控制口地址 A,#81H @R0,A 

R1,#20H ;数据区首地址 R2,#19 A,@R1 

;计数器 ;打印内容;控制字 

IN 

0030H EX0 

;允许外部中断 

0000H MAIN 

0003H 

MOV MOVX MOV MOV MOVX MOV MOVX SJMP 

IN: 

DJNZ INC MOV MOV MOVX MOV MOV MOVX MOV MOVX 

EX: 

RETI 

R0,#7CH;A口地址 @R0,A 

R0,#7FH A,#0EH @RO,A 

A,#0FH @R0,A R2,EX R1 

A,@R1 R0,#7CH @R0,A 

R0,#7FH A,#0EH @RO,A 

A,#0FH @R0,A 

;PC7=1 

;20 个数据都结束了吗? ;指向下一个数据 ;PC7=0 

13.根据图 10­14,8155H 与 32键的键盘相连接,编写程序实现如下功能:用8155H的定时 器定时,每隔 1S 读 1 次键,并将其读入的键值存入片内 RAM 中 30H 开始的单元中。 解: 

14.采用 8279芯片的键盘/显示器接口方案, 与本章介绍的其他键盘/显示器的接口方案相比, 有什么特点?

解:8279 芯片的具有不断扫描,自动消抖,自动识别出闭合的键并得到键号,能对双键或 N 键同时按下进行处理。

第 11章 MCS­51单片机与 D/A转换器、A/D转换器接口 

1、由运算放大器构成的电流/电压转换电路 2、D/A转换器的主要指标如下: (1) 分辨率 

D/A 转换器的分辨率指输入的单位数字量变化引起的模拟量输出的变化,是对输 入量变化敏感程度的描述。 (2) 建立时间

建立时间是描述 D/A 转换速度快慢的一个参数,用于表明转换速度。其值为从输

入数字量到输出达到终位误差±(1/2)GB(最低有效位)时所需的时间。 (3) 转换精度

理想情况下,精度与分辨率基本一致,位数越多精度越高。严格讲精度与分辨率并 不完全一致。只要位数相同,分辨率则相同.但相同位数的不同转换器精度会有所不同。 当 DAC 为二进制 12位,满量程输出电压为 5V时,分辨率为 1.22 mV 

3、DAC 用作程控放大器,其电压放大倍数可由 CPU 通过程序设定。由图可见,需要放大 的电压 Vin 和反馈输入端 Rfb 相接。运算放大器输出 Vout 还作为 DAC 的基准电压 VREF,数 字量由 CPU送来,其余如图所示。DAC0832 内部 Iout 一边和 T型电阻网络相连,另一边又 通过反馈电阻 Rfb 和 Vin 相通,可得以下方程组: 解上述方程组可得

I out1 = B ·

V REF V out 

= B ·

256 · R 256 · R 

I Rfb + I out = 0 

I Rfb = 

V in R fb 

V REF R 

· · 256 B R fb 

V out = -

V out =-

256 

· V in 

选 R=R6,则上式变为

因此,从最后式子可知,输出电压的放大倍数受B 控制。 4、同步 5、二种方式 

(1) 单缓冲方式。其特点是 DAC0832 内部的两个数据缓冲器有一个处于直通方式,另一个 处于受 MCS—51 控制的锁存方式。适用于只有一路模拟量输出,或虽是多路模拟量输出但 并不要求多路输出同步的情况下。 

(2) 双缓冲方式。其特点是数字量的输入锁存和D/A转换输出是分两步完成的。适用于在 多路 D/A转换中,要求同步进行D/A转换输出的情况下。 6、A/D 转换器的两个最重要指标: (1) 转换时间和转换速率

转换时间 A/D 完成一次转换所需要的时间。转换时间的倒数为转换速率。 

(2)分辨率 

A/D 转换器的分辨率习惯上用输出二进制位数或 BCD 码位数表示。 7、量化误差是由于有限位数字且对模拟量进行量化而引起的;0.195%; 

8、目前应用较广泛的主要有以下几种类型:逐次逼近式转换器、双积分式转换器、∑—△ 式 A/D 转换器和 V/F 转换器。

逐次逼近型 A/D转换器:在精度、速度和价格上都适中,是最常用的 A/D转换器件。 双积分 A/D 转换器:具有精度高、抗干扰性好、价格低廉等优点,但转换速度慢,近年来 在单片机应用领域中也得到广泛应用。 

∑—△式 A/D 转换器:它具有积分式与逐次逼近式 ADC 的双重优点,它对工业现场的串 模干扰具有较强的抑制能力,不亚于双积分 ADC,它比双积分 ADC 有较高的转换速度。与 逐次逼近式 ADC 相比,有较高的信噪比,分辨率高,线性度好,不需要采样保持电路。 9、对 DAC 来说,分辨率反映了输出模拟电压的最小变化量。而对于 ADC 来说,分辨率表 示输出数字量变化一个相邻数码所需输入模拟电压的变化量。量化误差是由 ADC 的有限分 辨率而引起的误差,但量化误差只适用于 ADC,不适用于 DAC。精度与分辨率基本一致, 位数越多精度越高。严格讲精度与分辨率并不完全一致。只要位数相同,分辨率则相同,但 相同位数的不同转换器精度会有所不同。 10、程序如下: 

MAIN:MOV R0,#20H 

MOV MOV 

R1,#00H R2,#00H 

MOV    R3,#50 MOV    R8,#08H 

LOOP: MOV    DPTR,#7FF8H LOOP1:MOVX   @DPTR,A 

MOV    R6,#0AH 

DELAY:NOP 

NOP NOP 

DJNZ    R6,DELAY MOVX   A,@DPTR INC       DPTR MOV     R2,DPL MOV     DPH,R0 MOV     DPL,R1 MOVX    @DPTR,A INC     DPTR MOV     R0,DPH

MOV     R1,DPL MOV     DPH,#7FH MOV     DPL,R2 DJNZ    R7,LOOP1 LCALL   DELAY1M DJNZ    R3,LOOP … 

;延时 1 分钟 

11、程序如下: 

MIAN: MOV    R1,#10 

MOV    R2,#40H MOV    R0,#7CH MOVX   @R0,A 

LOOP: NOP LOOP1: NOP 

JB 

P3.2,LOOP1 

MOVX   A,@R0 MOV    @ R2,A INC      R2 MOV     R0,#7DH MOVX    A,@R0 MOV     @R2,A INC      R2 DJNZ     R1,LOOP 

12、(A)× 

(B)√ 

(C)×     (D) √ 

第 12章 

1、P0 口的每位可驱动 8 个 LSTTL 输人,P1、P2、P3 口的每一位只能驱动 4 个 LSTTL 输 人;低电平;

2、在 MCS—51 单片机应用系统中.当需用单片机控制各种各样的高压、大电流负载,这 些大功率负载如电动机、 电磁铁、 继电器、 灯泡等, 则不能用单片机的 I/O 线来直接驱动. 而 必须通过各种驱动电路和开关电路来驱动。此外,为了隔离和抗干扰,有时需加接光电耦合 器。 

3、常用的开关型驱动器件有光电耦合器、继电器、晶闸管、功率 MOS 管、集成功率电子 开关、固态继电器等。 

4、常用电子开关有功率 MOS 管、晶闸管、集成功宰电子开关、固态继电器等等;电子开 关器件的通病是存在通态压降和断态漏电流。 

5、开关速度快、工作频率高、无噪声、无触点,工作可靠、寿命长,适用于那些需要抗潮 湿、抗腐蚀和防爆场合以及高频和高速系统中。 

6、以负载电源类型分类:可分为直流型(DC—SSR)和交流型(AC—SSR)两种。直流型固态 电子继电器是以功率晶体管作为开关元件的, 交流型固态屯子继电器足以可控硅作为开关元 件的,分别用来接通和断开直流或交流负载。

以开关触点形式分类:可分为常开式和常闭式。常开式的功能是输入端施加信号时,固态继 电器输出端才接通;而常闭式是仅当输入端施加信号时,固态继电器的输出端才被关断,而 输入端没有信号时,固态继电器的输出端始终处于闭合状态。

以控制触发信号的形式分类:可分为过零型和非过零型;非过零型在输人信号时,不管负载 电源电压相位如何,负载端立即导通。而过零型必须在负载电源电压接近零且输入控制信号 有效时,输出端负载电源才导通。 7、使用注意事项: 

(1) 要考虑这两项参数通态压降和断态漏电流。 

(2) 当使用温度较高时,选用的 SSR 必须留有一定的余量。 (3) 当负载为感性时,输出端必须加接压敏电阻。 (4) 输出端负载短路会造成 SSR 损坏,应特别注意避免。

第 13章 

1、抗干扰性差,传输距离短。 

2、由于调制解调器就是在发送时把数字信号转换成模拟信号,送到通信线路上,再把从通 讯线路收到的模拟信号转换成数字信号。 这样能克服公用电话网频带有限、 不能进行二进制 数字量的传输缺点。 

3、为了起到隔离、抗干扰的作用。 

4、RS­422A 仅仅是一种电气标准,规定了差分平衡的电气接口,它采用平衡驱动和差分接 收的方法;可数传速率、通讯距离、接口处信号产生串扰等性能; 

5、RS­232 异步串行通讯中应用最广的标准总线,适用于短距离或带调制解调器的通讯场 合,但数传速率低、通讯距离短、接口处信号容易产生串扰等;RS—422A能在长距离、高 速率下传输数据;RS­485 对于互连是十分方便的,干扰抑制性好,阻抗低,无接地问题;

电流环串行接口最大特点是低阻传输线对电气噪声不敏感,而且,易实现光电隔离。 6、不能

第 14章 

1、空间干扰、供电系统干扰、供电系统干扰 

2、以消除直流电源和地线中的脉冲电流所造成的干扰;2;5­10uF 的电解电容和一个 0.01­1.0uF 的电容 

3、能有效抑制尖峰脉冲以及各种噪声干扰,从而使过程通道上的信噪比大大提高;A/D、 D/A与单片机之间的隔离和开关量隔离 

4、并联二极管和稳压管或由电阻和电容组成抑制电路 

5、在低频电路中,布线和元件间的电感较小,而接地电路形成的环路,对于扰的影响却很 大,因此应应一点接地。 

6、电源去耦就是在每个印制板人口处的电源线与地线之间并接退耦电容,集成芯片去耦就 是每个集成芯片都应安置一个0.1uF 的陶瓷电容器。 

7、不要在印制板上留下空白铜箔层,因为它们可以充当发射天线或接收天线;走线不要有 分支,这可避免在传输高频信号导致反射干扰或发生谐波干扰。 

8、算术平均滤波法,适用于对一般具有随机干扰的信号进行滤波;滑动平均滤波法,适用 于高频振荡系统;中位值滤波法,适用于被测参数如温度、液位等变化缓慢的场合;防脉冲 干扰平均值滤波法,适用于脉冲干扰比较严重的场合; 

9、指令冗余便是采用单字节指令,并在关键的地方人为地插人一些单字节指令(NOP),或 将有效单字节指令重复书写;软件陷阱.就是一条引导指令,强行将捕获的程序引向一个指 定的地址,在那里有一段专门对程序出错进行处理的程序。 

10、“看门狗”技术就是不断监视程序循环运行时间,若发现时间超过已知的循环设定时间, 则认为系统陷入了“死循环”,然后强迫程序返回到 0000H 入口,在 0000H 处安排一段出错 处理程序,使系统运行纳入正规。 

11、当发生电源掉电的意外情况,一些重要的数据可能丢失,这时要求系统应首先检测到电 源的变化,然后通过切换电路把备用电池接入系统,以保护 RAM 中的数据不丢失。

第 15章 

1、设计一个单片机测控系统,一般可分为四个步骤: (1) 需求分析,方案论证和总体设计阶段。 

(2) 器件选择,电路设计制作,数据处理,软件的编制阶段。 (3) 整个系统的设计与性能测定。 (4)文件编制阶段。 2、C51 最小应用系统

3、数据采集系统一般由信号调理电路、多路切换电路、采样保持电路、模—数转换、基本 的单片机系统; 

1)信号调理电路:信号调理电路是传感器与 A/D 之间的桥梁,也是测控系统中里要组 成部分。信号调理的主要功能是:非电量的转换、信号形式的变换、放大、滤波、共模抑制 及隔离等等。 

2)多路切换电路: 模拟多路开关的选择主要考虑导通电阻的要求,截止电阻的要求和速 度要求。 

3)采样保持电路:采样保持电路是为了保证模拟信号高精度转换为数字信号的电路。采 样保持器的选择要综合考虑捕获时间,孔隙时间、保持时间、下降率等参数。 

4)模—数转换:计算机同外界交换信息所必须的接口器件。选择 ADC 需主要考虑的指 标有:分辨率、转换时间、精度、电源、输入电压范围、工作环境、数字输出特性、价格等。 5)基本的单片机系统 

4、单片机集成了微处理器、存储器和各种输入、输出接口等等,主要应用于测控领域,用 以实现各种测试和控制功能。 5、开发系统大致分为四类。 (1)通用型单片机开发系统 (2)软件模拟开发系统 (3)普及型开发系统 (4)通用机开发系统 6、不能 7、有 4 步骤

第一步.建立用户源程序。

第二步,在开发系统机上,利用汇编软件对第一步输入的用户源程序进和汇编,变为可执 行的目标代码。

第三步,动态在线调试。

第四步,将调试完毕的用户程序通过编程器,固化在 ROM 中。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo8.com 版权所有 湘ICP备2023022238号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务