单片微型计算机原理及接口技课后习题答案

更新时间:2024-06-21 19:14:01 阅读量: 综合文库 文档下载

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

习题二

2-1 试述8051单片机主要由哪几个部分构成?

1. 一个8位微处理器CPU

2. 数据存储器RAM和特殊功能寄存器 3. 内部程序存储器ROM 4. 两个定时/计数器

5. 四个8位可编程的I/O并行端口 6. 一个串行端口 7. 中断控制系统 8. 内部时钟电路

2-2 MCS-51单片机的片外总线是怎样构成的?试画出其结构示意图。

1. 片外总线构成: 1)地址总线AB 2)数据总线DB 3)控制总线CB 2. 结构示意图

2-3 MCS-51单片机四组并行I/O口在使用时各有什么特点?

1. P0口特点:

1) 作输出口使用时,由于输出驱动为漏极开路式,需外接上拉电

阻,阻值一般为5~10K.

2) 作输入口使用时,在输入数据时,应先向端口写入”1”,使引脚 处于悬浮状态,再读入数据.

3) 扩展ROM和(或)RAM时,作为地址/数据总线使用(地址A7~A0,数据D7~D0) 2. P1口特点:

1) 作输出口使用时,无需外接上拉电阻(内部有上拉电阻)

2) 作输入口使用时,在输入数据时,应先向端口写入”1”,使引脚处于悬浮状态,再读入数据. 3. P2口特点:

1) 作输出口使用时,无需外接上拉电阻(内部有上拉电阻)

2) 作输入口使用时,在输入数据时,应先向端口写入”1”,使引脚处于悬浮状态,再读入数据.

3) 扩展ROM和(或)RAM时,作为地址/数据总线使用(地址A15~A8,数据D15~D8) 4. P3口特点:

1) 作输出口使用时,无需外接上拉电阻(内部有上拉电阻)

2) 作输入口使用时,在输入数据时,应先向端口写入”1”,使引脚处于悬浮状态,再读入数据. 3) 第二功能如下表

2-4 MCS-51单片机的存储器有几个存储空间?各自的地址范围和容量是多少?使用时各有什么特点?

四个存储空间:(不同的单片机有所不同)

1. 片内RAM,地址范围:00H~FFH,共256个字节

1) 00H~1FH为通用寄存器区,共分四组

(0组 1组 2组 3组,由PSW的RS1 RS0决定,复位时自动选中0组) 每组8个寄存器R0~R7

2) 20H~2FH为位寻址区,共128位(16*8) 3)30H~7FH为通用RAM区,共64个字节

4)80H~FFH为特殊功能寄存器(SFR)区,共128个字节

并行口 串行口 中断系统 定时/计数器 等功能单元和状态寄存器等共21个单元离散的分布在这个区中,其他空闲单元不能使用

2. 片外RAM,地址范围:0000H~FFFFH,共64K字节

3. 片内ROM(EA=1),地址范围:0000H~0FFFH,共4K字节 4. 片外ROM(EA=0),地址范围:0000H~FFFFH,共64K字节

2-5 在单片机内RAM中哪些字节有位地址?哪些字节没有位地址?特殊功能寄存器中安排位地址的作用何在?

有位地址的字节:20H~2FH 80H 88H 90H 98H A0H A8H B0H B8H D0H E0H F0H

SFR安排地址位的作用:可按位访问,方便使用

2-6 什么叫振荡周期、时钟周期、机器周期和指令周期?

振荡周期----为单片机提供时钟信号的振荡源的周期

时钟(状态)周期----振荡源信号经二分频后形成的时钟脉冲信号 机器周期-----完成一个基本操作所需的时间,由6个时钟(状态)周期组成

指令周期----CPU执行一条指令所需的时间 时钟(状态)周期=2振荡周期

机器周期=6时钟(状态)周期=12振荡周期 指令周期=1个或2个或4个机器周期

2-7 若单片机使用的晶振为6MHz,那么振荡周期、机器周期和指令周期分别是多少?

fosc=6MHZ

T振荡=1/fosc=0.167μs

T机器=12* T振荡=2μs T指令=(1~4) T机器=2~8μs

2-8 当单片机使用的晶振为12MHz时,执行一条指令所需的最长时间为多少?

fosc=12MHZ T指令=1~4μs TMAX指令<=4μs

2-9 说出单片机复位后,各特殊功能寄存器的初始化状态是什么 各特殊功能寄存器的初始化状态如表

特别SP=07H,P0~P3=FFH

注意: 复位后要先给SP赋值(30H~7FH), P0~P3置初值

习题三

3-1 说明下列各条指令划线部分的寻址方式,并用图说明指令实现的操作。

(1)ADD A,30H ;直接寻址

(2)MOVX A,@DPTR ;寄存器间接寻址 (3)MOVC A,@A+PC ;变址寻址

(4)ORL 60H,#22H ; 直接寻址 立即寻址 (5)MOV @R1,A ; 寄存器间接寻址 3-2 查附录写出下列各条指令的机器码。 ACALL 0100H ;3100

LCAlL 0300H ;120300 AJMP 0100H ;2100 LJMP 0300H ;D20300 SJMP —5 ;80FB SJMP $十5 ;8003

3-3 设R0=7EH,DPTR=10FEH,片内RAM中7EH、7FH单元内容

为0AAH、0BBH,试分析下列每条指令、增加注释并写出其执行结果。

INC @R0 ;(7EH)+1 7EH, (7EH)=0ABH 1NC R0 ;R0+1 R0, (R0)=7FH

1NC @R0 ;(7FH)+1 7FH, (7FH)=0BCH

1NC DPTR;DPTR+1 DPTR DPTR=10FFH

3-4 若A=80H,R0=17H,(17H)=34H,执行下段程序后,A=? ANL A,#17H;A=0

ORL 17H,A ;A=0 (17H)=34H XRL A, @R0;A=34H

CPL A ;A=0CBH

3-5 说明下段程序执行过程中,SP的内容以及堆栈中内容的改变过程。

MOV SP,#20H;SP=20H MOV A,#20H ;A=20H MOV B,#30H ;B=30H

PUSH ACC ;SP+1 SP=21H,(21H)=20H PUSH B ; SP+1 SP=22H,(22H)=30H POP ACC ;(22H) A,SP-1 SP=21H

POP B ;(21H) B,B=20H,SP-1 SP=20H 3-6有程序如下:

CLR RS1;位操作 RS1=0 CLR RS0;位操作 RS0=0

MOV A,#38H;字节操作 A=38H MOV R0,A ; 字节操作R0=38H MOV 29H,R0;字节操作 (29H)=38H

LJMP START ORG 0100H

START : MOV DPTR, #1000H ACALL AGI SJMP $

ORG 0200H

AGI: MOVC A, @DPTR

XRL DPH, #30H;调整DPTR1000H 2000H MOVX @DPTR, A;传送

XRL DPH, #30H;调整DPTR2000H 1000H INC DPTR; 调整DPTR MOV A, DPL

CJNE A, NUM,AGI;DPL

4-9 用位操作指令实现下面的逻辑方程。

(1)P1.2=ACC.1·P1.4·PSW.1+20H·21H

(2)PSW.1=(PSW.2+20H+P3.3)·ACC.3+P1.2·P2.1 (1) ORG 0100H

MOV C, ACC.1 ANL C, P1.4 ANL C, /PSW.1

MOV 22H, C;暂存结果 MOV C, 20H ANL C, 21H ORL C, 22H

MOV P1.2, C;结果输出 SJMP $

(2) ORG 0100H

MOV C, /PSW.2 ORL C, 20H ORL C, P3.3 ANL C, ACC.3

MOV 21H, C;暂存结果 MOV C, P1.2 ANL C, P2.1 ORL C, 21H CPL C

MOV PSW.1, C SJMP $

习题五

5-1 8031单片机内设有几个定时/计数器?它们是由哪些专用计时器构成,其地址分别是多少?

8031单片机内设有2个定时/计数器T0,T1 T0由TH0和TL0组成 T1由TH1和TL1组成 TH0地址:8CH TL0地址:8AH TH1地址:8DH TL1地址:8BH

5-2 试说明定时器方式寄存器TMOD中GATE位的作用。如何用

GATE位测量外部脉冲的宽度? GATE位的作用:

GATE=0时,由TRX 控制TX启停,常用.

GATE=1时,只有TRX和INTX都为1,才可启动TX.

测量外部脉冲宽度方法:使GATE=1,TRX=1, 外部脉冲接于INTX引脚,当INTX由0变1时,TX开始计数(方式0或1), 当INTX由1变0时,TX停止计数(设初值TC=0 即THX=0,TLX=0),检测TX常数的变化量(ΔTC,即THX,TLX).

脉冲宽度=ΔTC*T机器

5-3 设单片机的ΦcLK=12MHz,要求用T0定时150μs,分别计算采用

定时方式0、定时方式1和定时方式2的定时初值。 ΦcLK=12MHz, T机器=1μs

方式0:TC=213-150/1=8192-150=8042=1F6DH=11111011 01101B TH0 TL0低5位

所以初值TH0=FBH,TL0=0DH

方式1:TC=216-150/1=65536-150=65386=FF6AH 所以初值TH0=FFH,TL0=6AH 方式2:TC=28-150/1=256-150=106=6AH 所以初值TH0=TL0=6AH 5-4 单片机ΦCLK=6MHz,问定时器处于不同工作方式时,最大定时范

围分别是多少?

ΦcLK=6MHz, T机器=12/6MHz =2μs, Tmin=2μs 方式0:Tmax=213*2μs=16.384ms 方式1: Tmax=216*2μs=131.072ms

方式2.3: Tmax=28*2μs=0.512ms

5-5 什么叫中断源?MCS-51有哪些中断源?各有什么特点? 中断源---中断请求的来源

MCS-51有5个中断源:2个外部中断源INT0,INT1 3个内部中断源T0,T1,TI/RI

特点: INT0,INT1由P3.2,P3.3端口引入,低电平或下降沿引起中断 T0,T1定时/计数器中断,由T0,T1回零溢出引起中断

TI/RI串行I/O中断,串行端口一帧字符发送/接收后引起中断 这些中断由中断允许寄存器IE(A8H)和中断优先寄存器IP(B8H)控制 复位后,IP清零,自然的中断优先顺序: INT0 T0 INT1 T1 TI/RI 中断服务程序入口地址分别为: 0003H 000BH 0013H 001BH 0023H 5-6 什么叫中断嵌套?什么叫中断系统?中断系统的功能是什么?

中断嵌套就是在中断响应的过程中又有更高一级的中断申请到来,则在中断响应的过程中再响应中断(中断中套中断)

中断系统:为了实现中断功能而设置的各种硬件和软件的统称 中断系统的功能:1. 实现中断及返回

2. 实现优先权排队

3. 高级中断源能中断低级中断源的中断处理

5-7 8031的五个中断标志位代号是什么?位地址是什么?它们在什么

情况下被置位和复位?

五个中断标志位代号是: IE0 TF0 IE1 TF1 RI/TI 位地址是: 89H 8DH 8BH 8FH 98H/99H 有中断申请时中断标志位被置位,CPU响应中断后,一般

IE0(INT0) TF0(T0) IE1(INT1) TF1(T1)可被自动复位,但当INT0,INT1为低电平触发时,不能自动复位,此种情况应保证在中断服务程序结束之前将低电平触发信号变为高电平,否则将再次响应中断.RI/TI中断标志也不能自动复位.

5-8 中断允许寄存器IE各位定义是什么?请写出允许T1定时器溢出

中断的指令?

中断允许寄存器IE各位定义: EA ES ET1 EX1 ET0 EX0 全局 串口 T1 INT1 T0 INT0 相应各位为”1”时,开相应中断, 为”0”时, 关相应中断 允许T1定时器溢出中断: MOV IE, #88H 或:SETB EA SETB ET1

5-9 MCS-51响应中断是有条件的,请说出这些条件是什么?中断响应

的全过程如何?

响应中断条件:无下列条件时,中断将被响应 1. CPU正在执行一个同级或高一级的中断服务程序 2. 当前执行的那条指令还未执行完 3. 当前执行的指令是RETI或IE IP寄存器读/写指令,执行这

些指令后,至少再执行一条指令,才会响应中断。 中断响应的全过程:中断响应后,一般自动清除中断请求标志(串口中断请求标志,要用软件清除),由硬件自动将PC内容(断点地址)压入栈中保护,然后将对应的中断矢量装入PC,使程序转向中断矢量地址单元去,执行中断服务程序,中断服务程序执行完成,断点地址出栈装入PC,从断点继续执行程序。 5-10 在MCS-51中,哪些中断可以随着中断被响应而自动撤除?那些中

断需要用户来撤除?撤除的方法是什么?

一般T0 T1 INT0 INT1中断可以随着中断被响应而自动撤除,串行中断RI/TI不能自动撤除,需要用户来撤除,撤除的方法是在中断服务程序中清RI或TI

5-11 试写出INT0为边沿触发方式的中断初始化程序。 SETB IT0;下降沿触发

SETB EA;也可MOV IE, #81H;开中断

SETB EX0 ;

5-12 若8031单片机的ΦCLK =6MHz,请利用定时器TO定时中断的方

法,使P1.0输出如下图所示的矩形脉冲

1ms 2ms

T0方式1 定时1ms T机器=12/6MHz =2μs TC=216-1ms/2μs=65536-500=FE0CH ORG 0000H LJMP MAIN ORG 000BH LJMP TOINT

MAIN: MOV TMOD, #01H;T0 方式1 MOV TH0, 0FEH

MOV TL0, #0CH;定时1ms MOV IE, #82H;开T0中断 MOV R0, #00H;计数初值 SETB TR0;启动T0 SJMP $

TOINT: MOV TH0, #0FEH

MOV TL0, #0CH;重置初值 MOV C, P1.0

JC LOW; 测出”1”, 则置”0”

INC R0; 测出”0”, 则计数值加1

CJNE R0,#01H,RR; 计数值为1,则”0”持续, 为2,则变为”1” AJMP RRR; ”0”持续 RR: SETB P1.0; 变为”1”

MOV R0, #00H AJMP RRR

LOW: CLR P1.0; 置”0” RRR: RETI

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

Top