单片微型计算机 徐惠民版.docx

上传人:b****7 文档编号:23717552 上传时间:2023-05-20 格式:DOCX 页数:105 大小:86.11KB
下载 相关 举报
单片微型计算机 徐惠民版.docx_第1页
第1页 / 共105页
单片微型计算机 徐惠民版.docx_第2页
第2页 / 共105页
单片微型计算机 徐惠民版.docx_第3页
第3页 / 共105页
单片微型计算机 徐惠民版.docx_第4页
第4页 / 共105页
单片微型计算机 徐惠民版.docx_第5页
第5页 / 共105页
点击查看更多>>
下载资源
资源描述

单片微型计算机 徐惠民版.docx

《单片微型计算机 徐惠民版.docx》由会员分享,可在线阅读,更多相关《单片微型计算机 徐惠民版.docx(105页珍藏版)》请在冰豆网上搜索。

单片微型计算机 徐惠民版.docx

单片微型计算机徐惠民版

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

解:

MCS-51单片机是个完整的单片微型计算机。

具体包括CPU、存贮器和接口部分。

存贮器的配置和芯片的型号有关,有三种情况,即片内无ROM,片内有掩模型ROM以及片内有EPROM。

而随即存贮器RAM则每一种芯片都有。

接口部分包括4个8位I/O口,两个16位定时/计数器和一个主要用于异步通信的串行接口。

此外,它们还都内含时钟产生电路。

1-28051单片机有多少个特殊功能寄存器?

它们可以分为几组?

完成什么主要功能?

解:

8051单片机内部有21个特殊功能寄存器,它们可以分成6组:

用于CPU控制和运算的有6个,即ACC,B,PSW,SP和DPTR(16位寄存器,算2个8位寄存器);有4个用作并行接口,即P0,P1,P2和P3;有2个用于中断控制,即IE和IP;有6个用于定时/计数器,它们是TMOD,TCON及两个16位寄存器T0和T1;还有3个寄存器用于串行口,即SCON,SBUF和PCON。

当然其中有些寄存器的功能不只是一种,也可以有另外的分组方法。

如电源控制寄存器PCON除了用于串行口通信外,还可用于供电方式的控制。

1-3决定程序执行顺序的寄存器是哪个?

它是几位寄存器?

它是不是特殊功能寄存器?

解:

决定程序执行顺序的寄存器是程序计数器PC。

它是一个16位寄存器,但它不属于特殊功能寄存器。

1-4DPTR是什么寄存器?

它的作用是什么?

它是由哪几个寄存器组成?

解:

DPTR是数据存贮器指针。

因为在MCS-51系列单片机中,指令存贮器和数据存贮器是完全分开的,因此,当向数据存贮器读写数据时,就需要有一个寄存器来存放数据存贮器的地址,这个寄存器就是数据指针DPTR。

它是一个16位寄存器,由DPH和DPL两个寄存器组成。

可以通过指令直接把16位地址送给DPTR,也可以把高8位地址送给DPH,把低8位地址送到DPL。

1-5MCS-51单片机引脚中有多少I/O线?

它们和单片机对外的地址总线和数据总线有什么关系?

地址总线和数据总线各是几位?

解:

MCS-51单片机芯片的引脚中有32条I/O线,因为有4个8位并行口,共32条。

51系列单片机没有独立的数据总线和地址总线,而是和一部分I/O线复用。

具体来说,P0口的8条分时用作地址总线低8位和8位数据总线,而P2口8条线用作地址总线高8位。

所以是16位地址总线和8位数据总线。

1-6什么叫堆栈?

堆栈指示器SP的作用是什么?

8051单片机堆栈的容量不能超过多少字节?

解:

堆栈是数据寄存器的一部分,这一部分数据的存取是按照先入后出、后入先出的原则进行的。

堆栈指针SP在启用堆栈之前是用来决定堆栈的位置。

如在8051芯片复位后,SP的值为07H,则决定了堆栈从08H开始设置。

修改SP值可以使堆栈设置在内部RAM的其它部分。

在堆栈启用之后,SP指向堆栈顶部,即由SP来决定数据读出和存入堆栈的地址。

8051单片机内部用作数据区的RAM的容量为128个字节,前8个字节要用来作为工作寄存器R0-R7。

堆栈可以从08H开始设置直到7FH,共120个字节。

但这只是最大可能的容量。

一般情况下,内部RAM还要分出一部分作一般的数据区,或者还要用其中的位寻址区来用于位操作,等等。

所以,8051的堆栈区是比较小的,使用时要注意到这个限制。

1-78051单片机的内部数据存贮器可以分为几个不同区域?

各有什么特点?

解:

8051单片机内部数据存贮器的容量为256个字节(地址为00H-FFH)。

它可以分为两大部分,各占128个字节。

前128个字节为读写数据区,地址为00H-7FH。

后128个字节为特殊功能寄存器区,21个特殊功能寄存器分散地分布在这个区域,各有自己特定的地址。

这个区域中,没有被特殊功能寄存器占用的单元也不能当作一般的RAM单元用

00H-7FH的RAM单元,都可按它们的直接地址来读写数据。

而其中的前32个单元,即00H-1FH单元又称为工作寄存器区,安排了4组工作寄存器,每组8个,都用R0-R7来表示,并通过PSW寄存器中RS1和RS0来选组。

通过工作寄存器R0-R7来对这部分数据单元读写数据,不仅速度快而且指令字节数也少。

另一个区域为位寻址区,占用20H-2FH共16个单元,这16个单元的每一位都可以独立进行操作,共有128个可独立操作的位。

而30H-7FH这80个单元则只能按它们的直接地址来操作。

1-8MCS-51单片机寻址范围是多少?

8051单片机可以配置的存贮器最大容量是多少?

而用户可以使用最大容量有是多少?

解:

MCS-51单片机的指令存贮器寻址范围为64KB,数据存贮器也有64KB寻址范围,地址都是从0000H-FFFFH,共有2×64KB的寻址范围。

8051可以配置的外部存贮器就是2×64KB容量。

但8051片内还配有存贮器,包括4KB容量的只读存贮器和256个字节的数据存贮器,总共容量为132.25KB。

但用户可以使用的容量只有2×64KB再加上256个字节的数据存贮器。

1-98051单片机对外有几条专用控制线?

其功能是什么?

解:

一般的说法是8051单片机有4条专用控制线。

它们是复位信号线RST,高电位有效,当有复位信号从此线输入时,使单片机复位。

访问外部存贮器控制信号

,低电平有效,当此控制线为低电平时,单片机全部使用外部指令存贮器,而当此控制线为高电平时,先使用片内的4KB指令存贮器(0000H-FFFFH),在4KB范围之外,才使用指令存贮器(地址为1000H-FFFFH)。

另有两条输出控制:

外部程序存贮器的读选通信号

和外部地址锁存器允许信号ALE。

前者是低电平有效,在读外部程序存贮器时使用。

后者是高电平有效,在锁存P0口输出的低8位地址时使用。

1-10什么叫指令周期?

什么叫机器周期?

MCS-51的一个机器周期包括多少时钟周期?

解:

完成一条指令的执行所需的时间叫作指令周期。

对不同的指令,指令周期的长短是不一定相同的。

机器周期则是指计算机完成某种基本操作所需的时间,一个指令周期由一个或几个机器周期组成,一个机器周期则包括若干个时钟周期。

MCS-51单片机的一个机器周期包括12个时钟周期。

但对有些微处理器来说,不同的机器周期所包含的时钟周期可能是不相同的。

1-11为什么要了解CPU的时序?

解:

了解CPU的时序就是了解在执行不同类型指令时CPU发出的控制信号有什么不用。

了解CPU时序至少有两个目的,其一是掌握不同的指令或操作使用不同的控制信号后,便于CPU对外部设备的连接而不至于发生错误。

其二是知道不同指令需要不同的机器周期后,可以选用功能相同而机器周期较少的指令,以减少程序的执行时间。

当然,也可以有一些其他的作用。

1-12在读外部程序存贮器时,P0口上一个指令周期中出现的数据序列是什么?

在读外部数据存贮器时,P0口上出现的数据序列又是什么?

解:

读外部程序存贮器(ROM)时,有两种情况:

一种是单纯地取指令,这时P0口上先送出指令所在地址低8位,然后从ROM中取回指令码。

按照指令字节数的不同,这个数据序列可能重复若干次。

另一种情况,则是执行从外部ROM中读取固有数据的指令,这时,P0口上先送出地址低8位,再从ROM中取回指令码,然后开始执行指令,接着从P0口上送出ROM数据单元地址低8位,再读回ROM中的数据。

而再读外部数据存贮器(RAM)时,P0口上先送出指令地址低8位,然后读回指令码,再送出数据存贮单元地址低8位,再读回数据单元的内容。

1-13为什么外扩存贮器时,P0口要外接地址锁存器,而P2口却不接?

解:

这是因为在读写外部存贮器时,P0口上先送出低8位地址只是维持很短的时间,然后P0口就要当作数据总线用。

为了使对外在整个读写外部存贮器期间,都存在有效的低8位地址信号,P0口就要外接一个地址锁存器,再从这个存贮器对外送出低8位地址。

而P2口只用作高8位地址线,并在整个读写期间不变,所以不必外接地址锁存器。

1-14在使用外部程序存贮器时,MCS-51单片机还有多少条I/O线可用?

在使用外部数据存贮器时,还有多少条I/O线可用?

解:

在使用外部程序存贮器时,原则上说,P0口和P2口要用作数据总线和地址总线,所以只有P1口和P3口可用作I/O口,共16条I/O线。

在使用外部数据存贮器时,除了占用P0口和P2口之外。

还需用

控制线,而这两条线就是P3口中的两条:

P3.6和P3.7,所以这是只有14条I/O线可用了。

当然,取决于所配置的外部程序存贮器的容量,P2口的8条线并不一定全部占用,有时还有几条没用,但即使如此,这几条线也不能再用作I/O线,而只能留作系统扩展时再用。

1-15程序存贮器和数据存贮器的扩展有何相同点及不同点?

试将8031芯片外接一片2716EPROM和一片2128RAM组成一个扩展后的系统,画出扩展后的连接图。

解:

两者的相同点是,都借用P0口和P2口作为数据总线和地址总线,也就是说,地址线和数据线的连接方法是相同的,地址范围都是在0000H-FFFFH之间。

两者的不同点是,所用的读写选通信号不同,扩展程序存贮器时用控制线

,而扩展数据存贮器时使用读写控制线

当然每块芯片具体需要几条地址线是由芯片的容量来决定的,容量大的芯片需要借用P2的I/O线的数量多。

而数据线则都是8条。

2716是2K×8的EPROM,2128是2K×8的RAM,两者都只需11条地址线。

由于题目中没有规定地址范围,故可按最简单的方式来连接,即只用

来控制EPROM的读出,用

控制RAM的读写,两块芯片的片选都固定接地,连接图如图1-1所示。

这种连接方式可以省去地址译码器。

但它有一个缺点,那就是系统的扩充能力很差,因此,在实用时还是考虑使用译码器好。

1-168051芯片需要外扩4KB程序存贮器,要求地址范围为1000H-1FFFH,以便和内部4KB程序存贮器地址相衔接。

所用芯片除了地址线和数据线外,还有一个片选控制端

画出扩展系统的连接图。

解:

由于题目没有规定芯片的容量,为简单起见,设所用芯片容量为4KB的EPROM。

芯片本身所需要地址线为12条,除了P0口8条外,还占用P2.0、P2.1、P2.2和P2.3。

P2口的高4位经过或门产生片选信号,连接图如图1-2所示,此时高4位只有为0001时才选中此芯片。

1-17在题1-15的连接图中,若因某种原因,将P2.2、P2.1、P2.0分别误接为P2.5、P2.4、P2.3,问这时图中所接的存贮器的寻址范围是如何分布的?

解:

误接后,相当于存贮器的地址线A10、A9、A8分别与P2.5、P2.4、P2.3相连。

由此可求出地址区:

P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7-P0.0地址区

××000×××0……00000-00FFH

1……1

××001×××0……00800-08FFH

1……1

××010×××0……01000-10FFH

1……1

××011×××0……01800-18FFH

1……1

××100×××0……02800-28FFH

1……1

××110×××0……03000-30FFH

1……1

××111×××0……03800-38FFH

1……1

所以存贮器的寻址范围分别为8个不连续的区域,每块地址区有256个字节。

这在实际使用时当然很不方便,所以要注意地址线不要接错。

1-18现有1K×8位的RAM芯片可供选用。

若用线选法组成8031系统的外部数据存贮器,有效的寻址范围最大时多少kB?

若用3-8译码器来产生片选信号,则有效的寻址范围最大又是多少?

若要将寻址范围扩展到64kB,应选用什么样的译码器来产生片选信号?

解:

1k×8位的RAM芯片由10条地址线。

8031的地址线为16条,所以还有6条地址线可以用来作片选信号。

当采用线选法时,每条高位地址线只能选中一片芯片,所以有效地址范围最大可为6kB。

当用3-8译码器来产生片选信号时,一片3-8译码器可以产生8个片选信号,有效寻址范围可扩大为8kB。

若使用多片3-8译码器,则寻址范围还可以扩大。

若要将寻址范围扩展到64kB,必须涓埃女冠高6位线进行全译码以产生64个片选信号。

由于现在尚无现成的6-64译码器可用,故可选用多个3-8译码器,通过两级译码来产生64个片选信号,共需9个3-8译码器。

或者用1个2-4译码器和4个4-16译码器通过两级译码,也可以得到所需的64个片选信号。

1-19什么是地址重迭区,它对存贮器扩展有何影响?

若有1k×8位RAM并采用74LS138译码器来产生片选信号,图1-3中的两种接法的寻址范围各是多少kB?

地址重迭区有何差别?

图中G1、G2A和G2B为译码器的使能端。

解:

所谓地址重迭,其表现就是若干个地址都可选中同一存贮器芯片的同一单元,即一个单元有多个地址。

地址重迭区即是指有哪些地址区可以选中同一芯片的存贮单元。

由于地址重迭区的存在,影响了地址区的有效使用,限制了存贮器的扩展。

图1-3中的两种接法,都能产生8个片选信号,选用1kBRAM时,寻址范围都是8kB。

但是左图有地址重迭区。

高3位地址A13、A14和A15不论为何值,只要低13位地址相同,都能选中同一芯片的同一单元。

故共有8个地址区。

对于Y0输出选中的芯片地址为:

0000H-03FFH,2000H-23FFH,4000H-43FFH,6000H-63FFH,8000H-03FFH,8000H-03FFH,A000H-A3FFH,C000H-C3FFH,E000H-E3FFH。

而右图的接法没有地址重迭区。

8片RAM所占用的地址为2000H-23FFH,其它的地址都选不中这些RAM的存贮单元。

1-20从系统扩展的角度来看,图1-3中的两种接法右什么差别?

解:

图1-3左图可以接8片1kBRAM,而每片RMA又有8kB地址重迭区,所以64kB地址区全部用完。

这个系统只能接8片1kBRAM,不能再扩展。

而图1-3右图中由于不存在地址重迭区,如果再增加译码器和控制门,就可以获得更多的片选信号。

只要连接得当,系统最大可以扩展64kB存贮器。

所以地址重迭区的存在将限制存贮器的扩展。

1-21某单片机系统需要配置一个4k×8位的静态外部RAM。

试问:

用几片2114(1k×4位)组成该存贮器?

用线选法如何构成这个存贮器?

试画出连接简图,并注明各芯片所占用的存贮空间。

解:

需用(4k×8)/(1k×4)=8,即8片2114来组成。

系统连接如图1-4所示。

8片2114芯片分为四组,每组有相同的线选信号,即有相同的地址,存贮空间的分布可决定如下:

A15A14A13A12A11A10A9-A0地址区

Ⅰ、Ⅱ片××11100……03800H-3BFFH

1……1

Ⅲ、Ⅳ片××11010……03400H-37FFH

1……1

Ⅴ、Ⅵ片××10110……02C00H-2FFFH

1……1

Ⅶ、Ⅷ片××01110……01C00H-1FFFH

1……1

由于A15,A14两条地址线没有使用,所以在如图的连接方式下,每组存贮器都有4kB地址重迭区。

但如果把A15和A14也用作线选信号,则这个系统还可以再扩充2kB容量的存贮器(设仍使用2114芯片)。

1-22某系统的存贮器配置如图1-5所示。

所用芯片为1k×8位静态RAM,试确定每块芯片的地址范围。

图中C为译码器高位输入,A为低位输入。

Y0对应于输入组合000,Y7对应于输入组合111。

每片RAM地址重迭区有多大?

解:

各芯片的地址区可确定如下:

A15A14A13A12A11A10A9-A0地址区

Ⅰ、片××000×0……00000H-03FFH

1……1

Ⅱ、片××001×0……00800H-0BFFH

1……1

Ⅲ、片××010×0……01000H-13FFH

1……1

Ⅳ、片××011×0……01800H-1BFFH

1……1

由于有3条地址线A15、A14和A10没有连接和使用,所以每片RAM都有23=8kB地址重迭区。

1-23用4片1k×8位RAM,一片2-4译码器,一片4-16译码器来构成4k×8位容量的存贮器,画出存贮器的连接图。

并要求:

1)每一存贮单元的地址范围是唯一确定的,不存在地址重迭区;2)给出所画的连接图中每块芯片的寻址范围;3)存贮器应具有扩展能力,即能扩展到64k×8位的存贮容量。

问:

若要扩展到最大容量,除了增加存贮器芯片外,还要增添什么器件?

解:

按照第一个要求,必须通过全译码来产生片选信号。

即每个片选信号必须由6个高位地址线的组合来产生。

由于提供了两种不同的译码器,产生这种片选信号并不难。

但连接的方式不止一种,而且不同的连接方式各个存贮器芯片的地址区也可以不同。

图1-6是两种可能出现的方案。

在第一种方案中,4片RAM的地址为:

Ⅰ片:

0000H-03FFH;

Ⅱ片:

0400H-07FFH;

Ⅲ片:

0800H-0BFFH;

Ⅳ片:

0C00H-0FFFH;

第二种方案的意图是以地址线A10来控制4-16译码器Y0的输出是为1还是为0:

当A14A13A12A11A10=00000时Y0=0;当A14A13A12A11A10=00001时Y0=1。

再加上A15的控制,可以得到4个片选信号,从而确定4片RAM的地址为:

Ⅰ片:

0000H-03FFH;

Ⅱ片:

0400H-07FFH;

Ⅲ片:

8000H-83FFH;

Ⅳ片:

8400H-87FFH;

但是,这个方案并不能满足题目中第一个要求,即每片RAM的地址区并不是唯一的。

因为4-16译码器的Y0=1可能出现的机会很多,实际上,只要A14A13A12A11A10≠00000时,都可以使Y0=1。

所以这个方案并不能用。

若要把存贮容量扩展到64kB,则除了增加1kBRAM芯片的数量外,还要通过全译码方法产生64个片选信号。

由于已经有1片4-16译码器和1片2-4译码器,所以只需要再增加3片4-16译码器就可以实现:

即用2-4译码器的4个输出控制4片4-16译码器的4个使能端,就可以在4片4-16译码器的输出端,获得64个片选信号。

1-24某系统的存贮器中配备有两种芯片:

容量为2k×8的ROM和容量为1k×8的RAM。

系统采用74LS138译码器来产生片选信号。

Y0,Y1和Y2直接接到三片ROM(片选信号#1,#2和#3);Y4和Y5则通过一组门电路产生4个片选信号接到4片RAM(片选信号#4,#5,#6和#7)。

连接的简图如图1-7所示。

试确定每一片存贮器的寻址范围。

各存贮器的片选信号都是低电平有效。

解:

各存贮器芯片的地址区可按一般的方法确定如下:

A15A14A13A12A11A10A9-A0地址区

#1片1000000……08000H-87FFH

11……1

#2片1000100……08800H-8FFFH

11……1

#3片1001000……09000H-97FFH

11……1

#4片1010000……0A000H-A3FFH

11……1

#5片1010010……0A400H-A7FFH

11……1

#6片1010100……0A800H-ABFFH

11……1

#7片1010110……0AC00H-AFFFH

11……1

1-25MCS-51的I/O口在用作输入时,为什么要先置1?

解:

因为输入端子和输出电路是连接在一起的,更具体地说是和输出MOS管的漏极连一起的。

若在上次操作中使输出MOS管处于导通状态(输出0),则使引脚端子对地呈低阻抗。

此时若要输入1,则对地的低阻抗将使逻辑电平变低,使得读引脚的结果与实际引脚状态不一致,即引脚状态为1,读入的结果却是0。

若是先给输出口置1,实际上是使输出级MOS管截止,电源通过上拉电阻(除P0口)对外输出高电位。

此时再去读引脚,则因为输出级MOS管为截止状态,无论引脚上的信号是1还是0都不会受影响,从而可以正确地读入。

1-26MCS-51单片机有5个中断源,但只能设置两个中断优先级,因此在中断优先级安排上受到一定的限制。

试问以下几种中断优先顺序的安排(级别由高到低)是否可能?

若可能,则应如何设置中断源的中断级别?

否则,请简述不可能的理由。

(1)定时器0,定时器1,外中断0,外中断1,串行口中断;

(2)串行口中断,外中断0,定时器0溢出中断,外中断1,定时器1溢出中断;

(3)外中断0,定时器1溢出中断,外中断1,定时器0溢出中断,串行口中断;

(4)外中断0,外中断1,串行口中断,定时器0溢出中断,定时器1溢出中断;

(5)串行口中断,定时器0溢出中断,外中断0,外中断1,定时器1溢出中断;

(6)外中断0,外中断1,定时器0溢出中断,串行口中断,定时器1溢出中断;

(7)外中断0,定时器1溢出中断,定时器0溢出中断,外中断1,串行口中断;

解:

(1)可以安排。

可设置定时器0和定时器1溢出中断为高级中断,其余为低级中断。

再依据内部同级查询次序,得到所需中断优先级顺序。

(2)可以安排。

只需将串行口中断设置为高级中断,其余的中断源都为低级中断。

(3)不能安排。

若把外中断0和定时器1溢出中断安排为高级中断,则这两个中断的优先顺序可以满足,但对其余3个中断,外中断1的级别不能高于定时器0溢出中断。

所以,总的优先顺序不能实现。

(4)可以安排。

可安排外中断0,外中断1和串行口中断为高级中断,其余两个定时器中断为低级中断。

(5)不能安排。

虽然可以单独设置串行口中断为高级中断,但其余4个中断的优先顺序只能按内部查询次序来定。

这时,定时器0溢出中断不能优先于外中断0。

(6)不能安排。

这时最接近的一个安排是将定时器1溢出中断设为低级中断,其余4个中断都为高级中断。

但是外中断1的查询次序再定时器0溢出中断之后,所以,不能满足所要求的优先顺序。

(7)可以安排。

只须使外中断0和定时器1溢出中断为高级中断,其余均为低级中断,就可满足所要求的优先顺序。

1-27单片机8031的时钟频率为6MHz,若要求定时值分别为0.1ms,1ms和10ms,定时器0工作在方式0、方式1和方式2时,其定时器初值各应为多少?

解:

时钟频率为6MHz,相应的定时时钟周期为2μs。

定时器初值和定时值的关系为

2n-定时器初值=定时值/定时周期

其中n由工作方式决定,可为13,16或8。

当定时值为0.1ms时:

2n-定时器初值=0.1ms/2μs=50

亦即需要50个定时时钟周期。

所以工作方式0,1,2都可选用。

方式0时,n=13,所以

213-x==50

x=8192-50=8142=(1111111001110)2

定时器初值为TH0=FEH,TL0=0EH。

方式1时,n=16

x=65536-50=65486=(1111111111001110)2

定时器初值为TH0=FFH,TL0=CEH。

方式2时,n=8

x=256-50=206=(11001110)2

定时器初值为TH0=CEH,TL0=CEH。

当定时值为1ms时:

2n-x=1ms/2μs=500

这时,方式2已不能使用,因为它只能提供256个定时时钟周期。

而工作方式0和方式1是可以采用的。

方式0,n=13,所以

x=8192-500=7692

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1