单片机教案(第1章组成原理)

上传人:xt****7 文档编号:102205698 上传时间:2022-06-06 格式:DOC 页数:28 大小:337.50KB
收藏 版权申诉 举报 下载
单片机教案(第1章组成原理)_第1页
第1页 / 共28页
单片机教案(第1章组成原理)_第2页
第2页 / 共28页
单片机教案(第1章组成原理)_第3页
第3页 / 共28页
资源描述:

《单片机教案(第1章组成原理)》由会员分享,可在线阅读,更多相关《单片机教案(第1章组成原理)(28页珍藏版)》请在装配图网上搜索。

1、第二章 MCS-51单片机组成原理(初识单片机) MCS-51系列单片机是美国Intel公司生产的高档8位机,在这个系列中常用的、最典型的有下列三种产品:1、8031单片机;2、8051单片机;3、8751单片机。2-1 MCS-51单片机的内部结构框图: 一、 中央处理器CPU(8位机)由运算器和控制器组成,是单片机的核心:(1) 运算器ALU:完成二进制的算术运算和逻辑运算功能;(2) 控制器:在时钟脉冲的作用下,对指令进行译码,控制单片机系统的各部件协调有序的工作。二、 片内ROM主要用于存放程序、原始数据和表格等内容,也称为:程序存储器或片内ROM。(在MCS-51系列中:8031单片

2、机,片内无ROM;8051单片机,片内有4KB的掩膜ROM;8751单片机,片内有4KB的EPROM)。三、片内RAM(256个字节单元)(1) 高128个的字节单元组成了21个特殊功能的寄存器SFR,其功能已有专门规定,用户不能乱用;(2) 低128个的字节单元,作随机存取单元,供用户使用。(有时指片内RAM为128B就是这个意思)四、 定时器/计数器(216位)片内有2个16位的定时/计数器(T0,T1),并能以其定时或计数的结果对系统进行控制。五、并行I/O接口(48位)片内有4个8位并行I/O接口(P0,P1,P2,P3)。它们可双向使用。(1) P0口通常用作8位数据总线或低8位的地

3、址总线的信息传送;(2) P1口一般作通用数据I/O接口使用;(3) P2口通常用作高8位地址总线的信息传送;(4) P3口常用于以第2功能(有8种)的输入或输出的形式。六、 串行接口片内有2个1位的串行接口,TXD为输出口,RXD为输入口,它们还可编程为一个全双工(双向同步信息传送)的通用异步串行接口模式(UART)。七、 中断控制系统MCS-51有5个中断源:(1)2个外部中断源;(2)2个定时器/计数器中断源;(3)1个串行中断源。八、 重要功能(1)可以寻址64KB的片外ROM和64KB的片外RAM;(2)具有位操作功能(逻辑处理)的位寻址功能。2-2 CPU的结构 CPU是单片机的核

4、心,它由两大部分所组成:运算器和控制器。一、运算器1、 算术/逻辑部件:(1) 完成算术运算。如:加、减、乘、除运算;(2) 完成逻辑运算。如:与、或、非、异或等;(3) 将运算结果的特征量,作为下一步操作指令的依据。2、 累加器A:(8位寄存器)(1) 在算/逻运算中用于存放操作数或结果(2) 与外部存储器交换信息时要经过A;(3) 与I/O接口交换信息时也要经过A。3、 寄存器B:(8位寄存器)(1) 做乘法运算时,用来寄存乘数或积的高位字节;(2) 做除法运算时,用来寄存除数或余数;(3) 不做上述运算时,可做通用寄存器使用。4、 程序状态标志寄存器PSW:(8位寄存器)(1) 进位标志

5、位Cy(D7位):做加、减运算时,若运算结果在最高位有进位或借位时,Cy被硬件自动置“1”,反之则自动置“0”。(2) 辅助进位标志位AC:(半进位标志位,D6位) 做加、减运算时,若低4位有向高4位进位或借位时,AC被硬件自动置“1”,反之则自动置“0”。 CPU常根据AC的状态对BCD码的运算结果进行调整。(3) 用户标志位F0(D5位):用户可用软件对F0位,置“1”或置“0”,以决定程序的走向。(4) 工作寄存器组选择标志位RS1、RS0(D4、D3位):用户通过软件改变RS1和RS0的组合内容,来选择片内RAM中4组工作寄存器组之一。RS1RS0选定的当前使用的工作寄存器组(区)片内

6、RAM地址通用寄存器名称00第0组00H07HR0R701第1组08H0FHR0R710第2组10H17HR0R711第3组18H1FHR0R7(5) 溢出标志位OV(D2位): 当运算的结果超过8位二进制数的允许范围时,OV由硬件自动置“1”,反之置“0”。(6) 空缺位(D1位):此位未定义。(7) 奇偶校验标志位P(D0位):MCS-51采用偶校验,当A累加器中1的个数为奇数时,P被硬件置为“1”,反之被置为“0”。二、控制器控制器主要由定时控制逻辑电路和各种控制寄存器组成,它们严格按照定时电路的各种译码指令完成规定的操作。1、 指令寄存器IR和指令译码器ID(8位)IR主要用于寄存指令

7、代码,并通过ID将指令代码译出由控制电路产生相应的控制信号。2、 程序计数器PC是一个十六位的寄存器,专门用于寄存CPU将要执行的指令地址(即下一条指令的地址),所以PC会自动加1。PC可寻址64KB范围的ROM。注意PC本身没有地址,因此用户无法对其进行读写,但可以通过相应的指令改变其内容,实现程序的转移。3、 堆栈指针(寄存器)SP(8位)堆栈:只有一个数据进/出端口且按照“先进后出”原则管理的存储器。栈底:堆栈存储器的底部。此时的堆栈指针为SP。栈顶:存储器的数据入口处。空栈时,栈顶的地址等于栈底的地址(两者重合)。随着数据的不断进栈,栈顶的地址也不断的增加(上浮)。数据进栈的操作:首先

8、SP+1,送入SP,然后再向堆栈存储器写入数据;数据出栈的操作:首先从堆栈存储器读出数据,然后SP-1,送入SP。堆栈指针(寄存器)SP:就是专门用于寄存指示堆栈存储器地址的寄存器。4、 数据指针(地址)寄存器DPTR(16位)是一个十六位的专用寄存器,它由两个8位的寄存器DPH(高8位)和DPL(低8位)组成。专门用来寄存片外RAM及扩展I/O口进行数据存取用的地址。三、寄存器和特殊功能寄存器R1、工作寄存器MCS-51共有32个工作寄存器(在片内RAM的00H1FH的地址单元中),分为四个组(区),每个组(区)有8个寄存器,分别用R0、R1、R2、R3、R4、R5、R6、R7表示。(由前面

9、的表中可以看出)每个时刻只有一个区工作,而且由程序状态标志寄存器RS1、RS0来决定。当RS1RS0=00时,选定的当前的工作器组为第0组(区),它们的地址分别为00H07H,对应的通用寄存器的名称分别为R0R7。注意:R0、R1不仅做工作寄存器用外,还经常用于做间接寻址的地址指针。2、特殊功能寄存器SFR(专用寄存器)MCS-51共有21个特殊功能寄存器(除PC外),离散地分布在片内RAM的80H0FFH的地址单元中,共占据了128个存储单元,构成了SFR存储块。 将其地址由大到小排列如下(关于寻址方式将在下一章讨论)特殊功能寄存器 功能名称 地址 单元内复位后初态 是否可以位寻址B 寄存器

10、 F0H 00H 可以A 累加器 E0H 00H 可以PSW 程序状态 D0H 00H 可以标志寄存器 IP 中断优先级 B8H XXX00000B 可以 控制寄存器P3 P3口数据寄存器 B0H FFH 可以IE 中断允许 A8H 0XX00000B 可以 控制寄存器P2 P2口数据寄存器 A0H FFH 可以SBUF 串行口发送/接收 99H 不定 不可以 数据缓冲寄存器SCON 串行口控制寄存器 98H 00H 可以P1 P1口数据寄存器 90H FFH 可以TH1 T1计数器 8DH 00H 不可以 高8位寄存器 TH0 T0计数器 8CH 00H 不可以 高8位寄存器 TL1 T1计

11、数器 8BH 00H 不可以 低8位寄存器TL0 T0计数器 8AH 00H 不可以 低8位寄存器 TMOD 定时器/计数器 89H 00H 不可以 方式控制寄存器TCON 定时器控制寄存器 88H 00H 可以PCON 电源控制寄存器 87H 00H 不可以DPH 地址寄存器高8位 83H 00H 不可以DPL 地址寄存器低8位 82H 00H 不可以SP 堆栈指针寄存器 81H 07H 不可以P0 P0口数据寄存器 80H FFH 可以以上21个特殊功能寄存器,它们的地址能被8整除的都可以位寻址。上面已介绍了B、A、PSW、SP及DPTR,其它的将在以后的章节中分别读者讨论。23 MCS-

12、51单片机存储器半导体存储器1. 几个基本概念 1. 数的本质和物理现象。 我们知道,计算机可以进行数学运算,这可令我们非常的难以理解,计算机吗,我们虽不了解它的组成,但它总只是一些电子元器件,怎么可以进行数学运算呢?我们做数学题如37+45是这样做的,先在纸上写37,然后在下面写45,然后大脑运算,最后写出结果,运算的原材料:37、45和结果:82都是写在纸上的,计算机中又是放在什么地方呢?为了解决这个问题,先让我们做一个实验:这里有一盏灯,我们知道灯要么亮,要么不亮,就有两种状态,我们可以用0和1来代替这两种状态,规定亮为1,不亮为0。现在放上两盏灯,一共有几种状态呢?我们列表来看一下:状

13、态 表达 0 0 0 1 1 0 1 1 请大家自已写上3盏灯的情况000 001 010 011 100 101 110 111我们来看,这个000,001,101 不就是我们学过的的二进制数吗?本来,灯的亮和灭只是一种物理现象,可当我们把它们按一按的顺序排更好后,灯的亮和灭就代表了数字了。让我们再抽象一步,灯为什么会亮呢?看电路1,是因为输出电路输出高电平,给灯通了电。因此,灯亮和灭就可以用电路的输出是高电平还是低电平来替代了。这样,数字就和电平的高、低联系上了。(请想一下,我们还看到过什么样的类似的例子呢?(海军之)灯语、旗语,电报,甚至红、绿灯)2. 位的含义: 通过上面的实验我们已经

14、知道:一盏灯亮或者说一根线的电平的高低,可以代表两种状态:0和1。实际上这就是一个二进制位,因此我们就把一根线称之为一“位”,用BIT表示。3. 字节的含义: 一根线可以表于0和1,两根线可以表达00,01,10,11四种状态,也就是可以表于0到3,而三根可以表达0-7,计算机中通常用8根线放在一起,同时计数,就可以表过到0-255一共256种状态。这8根线或者8位就称之为一个字节(BYTE)。不要问我为什么是8根而不是其它数,因为我也不知道。(计算机世界是一个人造的世界,不是自然界,很多事情你无法问为什么,只能说:它是一种规定,大家在以后的学习过程中也要注意这个问题)1. 存储器的工作原理:

15、 1、存储器构造存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。图2图3让我们看图2。这是一个存储器的示意图:一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就象是水,那就好理解了。存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。有了这么一个构造,我们就可以开始存放

16、数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看图3)。可是问题出来了,看图2,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因此,要在结构上稍作变化,看图2,在每个单元上有个控制线,我想要把数据放进哪个单元,就给一个信号这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了,而其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制

17、不同单元的控制线,就可以向各单元写入不同的数据了,同样,如果要某个单元中取数据,也只要打开相应的控制开关就行了。2、存储器译码那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元元的控制线都引到集成电路的外面不就行了吗?事情可没那么简单,一片27512存储器中有65536个单元,把每根线都引出来,这个集成电路就得有6万多个脚?不行,怎么办?要想法减少线的数量。我们有一种方法称这为译码,简单介绍一下:一根线可以代表2种状态,2根线可以代表4种状态,3根线可以代表几种,256种状态又需要几根线代表?8种,8根线,所以65536种状态我们只需要16根线就可以代表了。图43、存储器的选片及

18、总线的概念至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件,如图4所示。这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就不好了,比如这个存储器单元中的数值是0FFH另一个存储器的单元是00H,那么这根线到底是处于高电平,还是低电平?岂非要打架看谁历害了?所以我们要让它们分离。办法当然很简单,当外面的线接到集成电路的引脚进来后,不直接接到各单元去,中间再加一组开关(参考图4)就行了。平时我们让开关打开着,如果确实是要向这个存

19、储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。这组开关由三根引线选择:读控制端、写控制端和片选端。要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。注意图4,读和写信号同时还接入到另一个存储器,但是由于片选端不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。那么会不同时选中两片芯片呢?只要是设计好的系统就不会,因为它是由计算控制的,而不是我们人来控制的,如果真的出现同时出现选中两片的情况,那就是电路出了故障了,这不在我们的讨论之列。从

20、上面的介绍中我们已经看到,用来传递数据的八根线并不是专用的,而是很多器件大家共用的,所以我们称之为数据总线,总线英文名为BUS,总即公交车道,谁者可以走。而十六根地址线也是连在一起的,称之为地址总线。2. 半导体存储器的分类 按功能可以分为只读和随机存取存储器两大类。所谓只读,从字面上理解就是只可以从里面读,不能写进去,它类似于我们的书本,发到我们手回之后,我们只能读里面的内容,不可以随意更改书本上的内容。只读存储器的英文缩写为ROM(READ ONLY MEMORY)所谓随机存取存储器,即随时可以改写,也可以读出里面的数据,它类似于我们的黑板,我可以随时写东西上去,也可以用黑板擦擦掉重写。随

21、机存储器的英文缩写为RAM(READ RANDOM MEMORY)这两种存储器的英文缩写一定要记牢。注意:所谓的只读和随机存取都是指在正常工作情况下而言,也就是在使用这块存储器的时候,而不是指制造这块芯片的时候。否则,只读存储器中的数据是怎么来的呢?其实这个道理也很好理解,书本拿到我们手里是不能改了,可以当它还是原材料白纸的时候,当然可以由印刷厂印上去了。顺便解释一下其它几个常见的概念。PROM,称之为可编程存储器。这就象我们的练习本,买来的时候是空白的,可以写东西上去,可一旦写上去,就擦不掉了,所以它只能用写一次,要是写错了,就报销了。EPROM,称之为紫外线擦除的可编程只读存储器。它里面的

22、内容写上去之后,如果觉得不满意,可以用一种特殊的方法去掉后重写,这就是用紫外线照射,紫外线就象“消字灵”,可以把字去掉,然后再重写。当然消的次数多了,也就不灵光了,所以这种芯片可以擦除的次数也是有限的几百次吧。FLASH,称之为闪速存储器,它和EPROM类似,写上去的东西也可以擦掉重写,但它要方便一些,不需要光照了,只要用电学方法就可以擦除,所以就方便许多,而且寿面也很长(几万到几十万次不等)。再次强调,这里的所有的写都不是指在正常工作条件下。不管是PROM、EPROM还是FLASH ROM,它们的写都要有特殊的条件,一般我们用一种称之为“编程器”的设备来做这项工作,一旦把它装到它的工作位置,

23、就不能随便改写了。存储器是存放程序和数据的器件。MCS-51单片机一共有四个物理存储器: 内/外程序存储器统一编址,片外地址从0000H0FFFFH有64KB,片内地址从0000H0FFFH有4KB,重叠处由信号来控制。 当时,从0000H0FFFFH片内到片外; 当时,内部地址无效,外部地址从0000H0FFFFH。 0000H为系统复位后程序的入口地址; 0000H0002H内存放一条无条件转移指令,转至主程序的入口地址; 0003H002AH单元均匀分为5段(每段8个单元),存放5个中断源入口地址及对应的中断服务程序; 从0003H开始存放外部中断0()地址; 从000BH开始存放定时器

24、0溢出中断地址; 从0013H开始存放外部中断1()地址; 从001BH开始存放定时器1溢出中断地址; 从001BH开始存放串行中断口地址。 从002BH以后开始存放主程序;1、内部程序存储器(ROM);2、外部程序存储器(ROM);3、内部数据存储器;(独立编址) 片内数据存储空间区:地址00H7FH,共有128B个存储单元:分配如下 工作寄存器组(区):地址00H1FH,共有四个组(区),每个组(区)8个单元; 位寻址区:地址20H2FH,共有16个单元,每个单元又有8位,每一位都有一个位地址,共有128个位地址。(见教材P11的128位地址单元分配表) 用户RAM区(数据缓冲区):地址3

25、0H7FH,共有80个单元,主要用于存放随机数据、运算的中间结果和作堆栈工作区。 专用寄存器区(特殊功能寄存器SFR):地址80H0FFH,共有12B个存储单元。主要存放21个特殊功能的寄存器组成SFR块。(前面已讲述) 4、外部数据存储器。(独立编址)由于单片机内部数据存储器不够用,则在片外扩展数据存储器,地址从0000H0FFFFH,共有64KB个存储单元。 内/外数据存储器的地址有重叠,但由于操作的指令不同,因此单片机可以正确地访问内/外数据存储器; 访问片内的数据存储器用MOV指令; 访问片外的数据存储器用MOVX指令; 外部存储器的16位地址,用数据指针寄存器DPTR来寄存。(前面已

26、讲述)24 时钟电路及时序时序分析:先提一个问题:我们学校里什么是最重要的。(铃声)校长可以出差,老师可以休息,但学校一日无铃声必定大乱。整个学校就是在铃声的统一指挥下,步调一致,统一协调地工作着。这个铃是按一定的时间安排来响的,我们可以称之为“时序��时间的顺序”。一个由人组成的单位尚且要有一定的时序,计算机当然更要有严格的时序。事实上,计算机更象一个大钟,什么时候分针动,什么时候秒针动,什么时候时针动,都有严格的规定,一点也不能乱。计算机要完成的事更复杂,所以它的时序也更复杂。我们已知,计算机工作时,是一条一条地从ROM中取指令,然后一步一步地执行,我们规定:计算机访问一次存储

27、器的时间,称之为一个机器周期。这是一个时间基准,好象我们人用“秒”作为我们的时间基准一样,为什么不干脆用“秒”,多好,很习惯,学下去我们就会知道用“秒”反而不习惯。一个机器周期包括12个时钟周期。下面让我们算一下一个机器周期是多长时间吧。设一个单片机工作于12M晶振,它的时钟周期是1/12(微秒)。它的一个机器周期是12*(1/12)也就是1微秒。(请计算一个工作于6M晶振的单片机,它的机器周期是多少)。MCS-51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较慢,得要2个机器周期,还有两条指令要4个机器周期才行。这也不难再解,不是吗?我让你扫地的执行要完成总

28、得比要你完成擦黑板的指令时间要长。为了恒量指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条指令的时间。INTEL对每一条指令都给出了它的指令周期数,这些数据,大部份不需要我们去记忆,但是有一些指令是需要记住的,如DJNZ指令是双周期指令。 单片机本身就是一个复杂的同步时序电路,为了确保同步工作方式的执行,电路应在唯一的时钟信号的控制下严格地按时序进行工作。一、时钟电路、XTAL1端和XTAL2端将晶振、电容C1和C2与内部的反相放大器连接起来组成并联谐振电路;、振荡频率范围在212MHz,一般常用6MHz或12MHz;、C1、C2取31PF,对频率有微调作用;、产生

29、的振荡信号送入内部的时钟电路再二分频构成了单片机的时钟;、最后向CPU提供P1、P2两相时钟信号。1、 内部方式时钟电路:晶振倒相器2、 外部方式时钟电路:(8051型单片机)、由外部振荡器产生振荡信号;、经电平转换电路接至XTAL2端;、XTAL1端接低电平。外部振荡器二、时序 CPU在执行指令时,各控制信号在时间顺序上的关系称时序。CPU发出的时序信号有两类: 一类是用于片内各功能部件的控制,基本与用户无关;(不讨论) 另一类用于片外存储器、扩展的I/O端口的控制,非常重要。(要掌握)1、基本概念: 振荡周期晶体振荡器直接产生的振荡信号的周期。 时钟周期(状态周期)S 一个时钟周期等于两个

30、振荡周期,换句话说就是对振荡频率进行2分频的振荡信号。一个时钟周期S分为P1和P2两个节拍: P1节拍完成算术逻辑运算; P2节拍完成内部寄存器间数据的传送。 机器周期 完成一个基本操作所需的时间称为机器周期。一个机器周期由6个时钟周期(分别用S1S6来表示)即12个振荡周期(分别用S1P1、S1P2、S2P1、S2P2、S3P1、S6P2)组成。 指令周期执行一条指令所需的全部时间称为指令周期。MCS-51单片机的指令周期一般需要14个机器周期。例 已知晶振频率分别为:6MHz、12MHz,试计算出它们的机器周期和指令周期。解:当晶振频率为6MHz时: 振荡周期=1/振荡频率=1/6(s)

31、时钟周期=2振荡周期=2/6(s) 机器周期=6时钟周期=2(s) 指令周期=(14)机器周期=28(s)当晶振频率为12MHz时:振荡周期=1/振荡频率=1/12(s) 时钟周期=2振荡周期=2/12(s) 机器周期=6时钟周期=1(s) 指令周期=(14)机器周期=14(s)由此可见:单片机在晶振频率为12MHz时,执行一条指令最多需要14(s)。2、几种典型的MCS-51单片机 取指/执行时序单片机的每条指令的执行过程都要包括两个阶段,即取指阶段和执行阶段。、指令存放在内部ROM区域,指令本身是访问内部RAM的时序 地址锁存信号ALE(单片机的输出信号)在每一个机器周期内有效两次。即:S

32、1P2S2P1、S4P2S5P1,有效宽度为一个S状态周期(图中第四行波形)。ALE信号每有效一次,单片机就进行一次读指令的操作。(图中第2行波形) 单字节单机器周期指令如:INC A(这是一条累加器A加1指令)属于单字节指令,所以只进行一次取指操作,其完整过程是:当ALE第一次有效(即S1)时,从ROM中读出上指令并送至指令寄存器IR中开始执行,在执行过程中CPU一方面在第二次ALE有效(即S4)时封锁PC加1,使第二次读操作成为假读,另一方面完成指令的执行。(图中第3行波形) 双字节单机器周期指令 如:ADD A, #data(这是一条将累加器A中的内容与data数据相加的加法指令)属于双

33、字节指令,其对应ALE的两次取指操作都是有效的,其完整过程是: 第一次读指令的操作码,经译码器译码后得知是双字节指令,CPU一方面使PC+1,继续第二次读指令的操作数,另一方面等两个字节全读出后,便完成了指令的执行。(图中第4行波形) 单字节双机器周期指令 如:INC DPTR(这是一条数据指针DPTR加1指令)属于单字节指令,但用了两个机器周期,共进行了4次读指令操作。其完整过程是:当第一次读指令的操作码后,经译码器译码得知是单字节双机器周期指令,CPU一方面自动封锁后面的读操作(PC不加1),使后3次读操作全成为假读,另一方面在第2个机器周期结束时完成指令的执行。(图中第5行波形)、指令存

34、放在内部ROM区域,指令本身是访问外部RAM的时序如:MOVX A,DPTR(这也是一条单字节的数据传送指令),只要是访问外部RAM的指令都是双机器周期指令,它与前述的单字节双机器周期指令不同。其完整的过程如下: 在第一个机器周期中第一次ALE有效时(即S1)读操作码,在第二次ALE有效(即S4)时封锁PC加1,使第二次读操作成为假读,在S5的状态开始时送出外部RAM单元的地址,进行数据的读写;在第二个机器周期中,因CPU在读/写数据,所以ALE信号全部丢失,在S1、S4时不产生取指操作,在S6P2时完成指令的全部执行。(图中第6行波形)25 输入/输出端口MCS-51单片机有32条I/O线,

35、分属于4个(P0、P1、P2、P3)8位I/O双向并行接口,每个接口均由锁存器、输出驱动电路和输入缓冲器组成。并行口结构分析: 1、输出结构先看P1口的一位的结构示意图(只画出了输出部份):从图中可以看出,开关的打开和合上代表了引脚输出的高和低,如果开关合上了,则引脚输出就是低,如果开关打开了,则输出高电平,这个开关是由一根线来控制的,这根数据总线是出自于CPU,让我们回想一下,数据总线是一根大家公用的线,很多的器件和它连在一起,在不同的时候,不同的器件当然需要不同的信号,如某一时刻我们让这个引脚输出高电平,并要求保持若干时间,在这段时间里,计算机当然在忙个不停,在与其它器件进行联络,这根控制

36、线上的电平未必能保持原来的值不变,输出就会发生变化了。怎么解决这个问题呢?我们在存储器一节中学过,存储器中是可以存放电荷的,我们不妨也加一个小的存储器的单元,并在它的前面加一个开关,要让这一位输出时,就把开关打开,信号就进入存储器的单元,然后马上关闭开关,这样这一位的状态就被保存下来,直到下一次命令让它把开关再打开为止。这样就能使这一位的状态与别的器件无关了,这么一个小单元,我们给它一个很形象的名字,称之为“锁存器”。2、输入结构这是并行口的一位的输出结构示意图,再看,除了输出之外,还有两根线,一根从外部引脚接入,另一根从锁存器的输出接出,分别标明读引脚和读锁存器。这两根线是用于从外部接收信号

37、的,为什么要两根呢?原来,在51单片机中输入有两种方式,分别称为读引脚和读锁存器,第一种方式是将引脚作为输入,那是真正地从外部引脚读进输入的值,第二种方式是该引脚处于输出状态时,有时需要改变这一位的状态,则并不需要真正地读引脚状态,而只是读入锁存器的状态,然后作某种变换后再输出。请注意输入结构图,如果将这一根引线作为输入口使用,我们并不能保证在任何时刻都能得到正确的结果(为什么?)参考图2输入示意图。接在外部的开关如果打开,则应当是输入1,而如果闭合开关,则输入0,但是,如果单片机内部的开关是闭合的,那么不管外部的开关是开还是闭,单片机接受到的数据都是0。可见,要让这一端口作为输入使用,要先做

38、一个准备工作,就是先让内部的开关断开,也就是让端口输出1才行。正因为要先做这么一个准备工作,所以我们称之为“准双向I/O口”。以上是P1口的一位的结构,P1口其它各位的结构与之相同,而其它三个口:P0、P2、P3则除入作为输入输出口之外还有其它用途,所以结构要稍复杂一些,但其用于输入、输出的结构是相同的。看图()。对我们来说,这些附加的功能不必由我们来控制,所以我们就不去关心它了。一、 P0口P0口有8位,每1位由一个锁存器、两个三态输入缓冲器、控制电路和驱动电路组成。(见下图)1、P0口作通用I/O口 P0口既可作输入口,也可作输出口(每1位都可以作),其工作原理如下: P0口作输入口: 在

39、地址/数据和控制信号的作用下,使MUX接端; 为保证数据正确输入,必须使T2管处于截止状态,因此应先对锁存器写“1”,然后再写入数据; 外部信号通过P0.X进入2号三态缓冲器,三态缓冲器打开,数据输入到内部总线。 锁存器一方面通过端到MUX控制T2的状态,另一方面通过1号三态缓冲器维持输入的状态。 P0口作输出口: 在地址/数据和控制信号的作用下,使MUX接端; 内部数据通过内部总线并在写脉冲的控制下写入锁存器; 内部信号通过端到MUX控制T2的状态,使T2的输出保持与内部数据的同相; P0口的I/O是分时使用,所以称它为准双向口。2、作分时复用的地址/数据总线(第二功能) MCS-51单片机

40、没有单独的地址/数据总线。当接RAM时,它的16位地址和8位数据分别由P0口和P2口共同完成,P2口负责传送高8位地址,P0口负责传送低8位地址和8位双向数据。(这就是所谓分时复用技术)其工作原理如下: 从P0口输出地址或数据: 在地址/数据(假若为“1”)和控制信号的作用下,使MUX接上面的触点,此时T1导通,T2截止,输出为“1”,完成了地址/数据信号的正确传送; 在地址/数据(假若为“0”)和控制信号的作用下,使MUX接上面的触点,此时T1截止,T2导通,输出为“0”,完成了地址/数据信号的正确传送。 从P0口输入数据:输入数据直接通过2号三态缓冲器进入内部总线,无需先对锁存器写“1”,

41、此工作由CPU自动完成。是一个真正的双向端口。二、P1口 P1口是一个专用的准双向I/O口,每1位都由一个锁存器、两个三态输入缓冲器和驱动电路组成。(见下图) 它与P0口有两点不同:1、没有电子开关MUX,所以工作时必须先对该位的锁存器写“1”,然后再输入数据;2、在驱动电路部分,用内部的上拉电阻取代了场效应管。 其工作原理与P0口相同,只是不能复用(无第二功能),是一个准双向口。三、P2口P2口是一个8位的准双向口,每1位由一个锁存器、两个三态输入缓冲器、控制电路和驱动电路组成。(见下图)1、作通用I/O口,与P0口的功能类似;2、可以作扩展系统的高8位地址总线,然后与P0口传送的低8位地址

42、一起组成16位地址总线。(第二功能)四、P3口P3口也是一个8位准双向口,每1位都由一个锁存器、两个三态输入缓冲器和驱动电路组成。(见下图)1、P3口作一般输出口使用时与P1口的功能类同,均可以作为通用的I/O口使用。注意:第二功能输出端(与非门的输入端)要保持高电平,以维持锁存器到输出端的数据畅通。2、P3口最重要的功能是第二功能。当P3工作在第二功能时,锁存器的Q端要保持高电平,以维持第二功能(与非门的另一端)输出的数据畅通。在P3口工作在第二功能时,它的每1位都具有不同的功能。(见下表)P3口引脚第 二 功 能P3-0RXD串行数据输入口P3-1TXD串行数据输出口P3-2外部中断0P3

43、-3外部中断1P3-4T0定时/计数器0外部计数脉冲输入端P3-5T1定时/计数器1外部计数脉冲输入端P3-6片外RAM写选通信号输出端P3-7片外RAM读选通信号输出端五、P0口P3口有使用中的特点1、 P0口的输出级的每一位可驱动8个TTL门,但它驱动NMOS门时需外加上拉电阻;而作地址/数据总线(复用)时,无须外接上拉电阻。2、 P1口P3口输出级的每一位可驱动4个TTL门,无须外接上拉电阻。3、 P0口P3口若是由CMOS电路组成,当它驱动普通晶体管的基极时,应在端口和晶体管之间串入一个电阻,来限制高电平的输出电流。4、 P0口一般可用作8位的数据总线的输入/输出。5、 P0口在第二功

44、能时和P2口构成16位地址总线中的低8位。6、 P1口通常用于数据的输入/输出。(无第二功能)7、 P2口一般可用作8位的数据总线的输入/输出。8、 P2口在第二功能时和P0口构成16位地址总线中的高8位。9、 P3口可以用作8位的数据总线的输入/输出。10、P3口通常用于第二功能的输入/输出。11、系统复位后,P0口P3口的32个管脚均输出高电平(0FFH)。(注意与外设的配合)12、可以规定并行口的一部分管脚为输入脚,另一部分脚为输出脚,没有使用的脚可以悬空。26 MCS-51单片机的引脚功能 MCS-51型系列单片机是具有40个引脚的双列直插式封装的器件,其中许多引脚具有第二功能,一共分

45、为四大类。(不同的芯片略有不同)见下引脚图:一、电源类引脚1、 (40脚):芯片工作电源的输入端,+5V。2、 (20脚):电源的接地端。二、时钟振荡电路引脚XTAL1(19脚)和XTAL2(18脚)的内部是一个振荡电路。1、当使用内部振荡电路时,在这两个管脚上外接石英晶体和微调电容;2、当使用外部时钟时,XTAL2接外部振荡信号,XTAL1接低电平。三、输入/输出引脚1、 P0口(3239脚):是一个8位漏极开路型的双向I/O口;访问外部RAM时,分时提供低8位地址,并用作8位数据总线。2、 P1口(18脚):是一个带内部提升电阻的8位准双向I/O口。3、 P2口(2128脚):是一个带内部

46、提升电阻的8位准双向I/O口;访问外部RAM时,分时提供高8位地址。4、 P3口(1017脚):是一个带内部提升电阻的8位准双向I/O口。四、控制类引脚1、 (9脚,两功能) RST为复位信号输入端:只要给RST端两个机器周期的高电平,就可以复位; 为内部的备用电源(+5V)的输入端:若突然掉电,可保护内部RAM的信息不丢失。2、 (30脚,两功能) ALE地址锁存信号输出端:(a) 在访问外部RAM时,ALE用来锁存P0的扩展地址低8位;(b) 不访问外部RAM时,ALE以时钟频率的1/6的固定频率输出;(给外部定时用)(c) ALE能驱动8个TTL逻辑门。 编程脉冲输入端:仅用于8751型

47、单片机内部EPROM编程的脉冲输入(低电平有效)。3、 (29脚)外部程序ROM的读选通信号输出端:当访问外部程序ROM时,定时产生一个负脉冲作选通信号,即每个机器周期内的效两次。注意:若访问外部RAM或片内的ROM,不会有输出(为高电平)。4、 (31脚,两功能) 访问内/外程序存储器的控制信号输出端:(a) 当时,限定访问外部的程序ROM,地址从0000HFFFFH;若某单片机(如:8031型)无内部程序ROM,则应将端接地。(b) 当时,先访问片内的程序ROM(有4KB),若超出时自动切换到外部RAM去访问。 编程电压(+21V)输入端:当对8751型单片机内部的程序ROM(即4KB的E

48、PROM)进行程序固化时,在此端应接入+21V的编程电压。27 MCS-51单片机的工作方式 MCS-51有三种工作方式:即复位、程序执行、节电工作方式。一、复位方式 系统开始运行和重新启动靠复位电路来实现,这种工作方式为复位方式。1、 单片机复位后的工作状态当单片机RST输入了复位信号后,芯片回到初始状态,但不影响内部RAM中的内容。 程序计数器PC的值回复到0000H,复位后各特殊功能寄存器的初始状态如下表所示:特殊功能寄存器内容初始状态特殊功能寄存器内容初始状态特殊功能寄存器内容初始状态B00HSBUF不定TMOD00HA 00HSCON00HTCON00HPSW00HTL100HPCO

49、N00HIPXXX00000BTL000HDPL00HP0,P1,P2,P3FFHTH100HDPH00HIE0XX00000BTH000HSP07H2、 复位电路 接电复位:接入 +5V 的电源,在R上可获得正脉冲,只要保持正脉冲的宽度为10S,就可使单片机可靠复位。 一般 R选 8.2KC选 10F 按键复位:按下按键,电源对C充电,使RST端快速到达高电平;松开按键,C向芯片的内阻放电,恢复为低电平,从而使单片机可靠复位。 接电及按键复位:既可接电复位又可按键复位,原理同上所述。一般 R1选 200 R2选 1KC选 22F 实用接电及按键复位:主要功能有两点:(a) 要保证可靠复位;(

50、b) 要不让干扰信号进入RS端;(c) 要能够与外围芯片的复位信号共用。(电平一致) 二、程序执行方式 这是单片机基本工作方式,它又分为连续执行工作方式和单步执行工作方式。1、 连续执行工作方式 单片机按照程序事先编排后的任务,自动连续地执行下去。 程序走向受程序计数器PC控制,若PC=0000H,则单片机从0000H开始执行,然后PC+1(自动),再执行下一条指令。 如果在PC=0003H地址所指示的单元中,放入一条无条件转移指令,则程序就跳转到相应的入口处地址,然后再按PC+1(自动)规定方式,逐步执行。2、 单步执行工作方式这是用户调试程序的一种工作方式,在单片机开发系统上有一专门的单步

51、按键。按一次,单片机就执行一条指令(仅仅执行一条),这样就可以逐条检查程序,发现问题进行修改。三、节电工作方式节电工作方式是针对CHMOS类芯片而设计的,它是一种低功耗的工作方式。而对于HMOS本身功耗大,不能工作在节电方式,但它有一种掉电保护功能。1、 HMOS单片机的掉电保护 保护功能: 当突然掉电时,备用电源可以维持内部RAM中的数据不丢失。 保护过程: 掉电(或低于下限值) 或发出中断请求 CPU响应 将必需保护的程序送入内部RAM 继续下降/继续增加 当时,由供电。 恢复过程: 来电 继续供电 单片机复位 撤出/供电。2、 CHMOS单片机的节电方式有待机方式和掉电保护方式两种,它们

52、都受电源控制寄存器PCON中相应的位来控制。 电源控制寄存器PCOND7D6D5D4D3D2D1D0地址(87H)SMODGF1GF0PDIDL IDL待机方式控制位:为“1”时,单片机进入待机工作方式。 PD掉电方式控制位: 为“1”时,单片机进入掉电工作方式。上面同时为“1”,则进入掉电工作方式,同时为“0”,则工作在正常运行状态。 GF0、GF1通用标志位:描述中断是来自正常运行还是来自待机方式,用户可通 过指令设定它们的状态。 SMOD波特率倍增位:用于串行通信。 待机工作方式将IDL位置为1(用指令),则,见下图所示: 封锁了进入CPU的时钟,CPU进入待机状态,所以功耗很小。 中断

53、系统、串行口、定时/计数器,仍有时钟信号,继续工作。 因为CPU的时钟被封住,换句话说就是原地踏步,所以与之相关的寄存器也处于“冻结”状态。(ALE、均为高电平) 退出待机状态有两种工作方式:(a) 中断退出:由于中断系统仍在工作,所以一但中断请求有效时,IDL自动清零,机器执行中断服务程序,完毕后返回待机时的下一条指令去执行。(b) 硬件复位退出: 按复位键,迫使IDL清零。 掉电工作方式1、 将PD置“1”,可使单片机进入掉电工作方式。此时只有片内的RAM和SFR中的数据保持不变,而包括中断系统在内的全部电路都将处于停止工作状态。2、使用掉电工作方式时,需关闭所有外设,以保持整个系统的低功耗。3、 要想退出掉电工作方式,只能采用硬件复位,不能用中断唤醒的方法。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!