您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 单片机教案(第1章 组成原理)
单片机原理及应用(第二章MCS-51单片机的组成原理)第1页共28页第二章MCS-51单片机组成原理(初识单片机)MCS-51系列单片机是美国Intel公司生产的高档8位机,在这个系列中常用的、最典型的有下列三种产品:1、8031单片机;2、8051单片机;3、8751单片机。2-1MCS-51单片机的内部结构框图:一、中央处理器CPU(8位机)由运算器和控制器组成,是单片机的核心:(1)运算器ALU:完成二进制的算术运算和逻辑运算功能;(2)控制器:在时钟脉冲的作用下,对指令进行译码,控制单片机系统的各部件协调有序的工作。二、片内ROM主要用于存放程序、原始数据和表格等内容,也称为:程序存储器或片内ROM。(在MCS-51系列中:8031单片机,片内无ROM;8051单片机,片内有4KB的掩膜ROM;8751单片机,片内有4KB的EPROM)。三、片内RAM(256个字节单元)单片机原理及应用(第二章MCS-51单片机的组成原理)第2页共28页(1)高128个的字节单元组成了21个特殊功能的寄存器SFR,其功能已有专门规定,用户不能乱用;(2)低128个的字节单元,作随机存取单元,供用户使用。(有时指片内RAM为128B就是这个意思)四、定时器/计数器(2×16位)片内有2个16位的定时/计数器(T0,T1),并能以其定时或计数的结果对系统进行控制。五、并行I/O接口(4×8位)片内有4个8位并行I/O接口(P0,P1,P2,P3)。它们可双向使用。(1)P0口通常用作8位数据总线或低8位的地址总线的信息传送;(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-2CPU的结构单片机原理及应用(第二章MCS-51单片机的组成原理)第3页共28页CPU是单片机的核心,它由两大部分所组成:运算器和控制器。一、运算器1、算术/逻辑部件:(1)完成算术运算。如:加、减、乘、除运算;(2)完成逻辑运算。如:与、或、非、异或等;(3)将运算结果的特征量,作为下一步操作指令的依据。2、累加器A:(8位寄存器)(1)在算/逻运算中用于存放操作数或结果(2)与外部存储器交换信息时要经过A;(3)与I/O接口交换信息时也要经过A。3、寄存器B:(8位寄存器)(1)做乘法运算时,用来寄存乘数或积的高位字节;(2)做除法运算时,用来寄存除数或余数;(3)不做上述运算时,可做通用寄存器使用。4、程序状态标志寄存器PSW:(8位寄存器)(1)进位标志位Cy(D7位):做加、减运算时,若运算结果在最高位有进位或借位时,Cy被硬件自动置“1”,反之则自动置“0”。(2)辅助进位标志位AC:(半进位标志位,D6位)①做加、减运算时,若低4位有向高4位进位或借位时,AC被硬件自动置“1”,反之则自动置“0”。②CPU常根据AC的状态对BCD码的运算结果进行调整。单片机原理及应用(第二章MCS-51单片机的组成原理)第4页共28页(3)用户标志位F0(D5位):用户可用软件对F0位,置“1”或置“0”,以决定程序的走向。(4)工作寄存器组选择标志位RS1、RS0(D4、D3位):用户通过软件改变RS1和RS0的组合内容,来选择片内RAM中4组工作寄存器组之一。RS1RS0选定的当前使用的工作寄存器组(区)片内RAM地址通用寄存器名称00第0组00H~07HR0~R701第1组08H~0FHR0~R710第2组10H~17HR0~R711第3组18H~1FHR0~R7(5)溢出标志位OV(D2位):当运算的结果超过8位二进制数的允许范围时,OV由硬件自动置“1”,反之置“0”。(6)空缺位(D1位):此位未定义。(7)奇偶校验标志位P(D0位):MCS-51采用偶校验,当A累加器中1的个数为奇数时,P被硬件置为“1”,反之被置为“0”。二、控制器控制器主要由定时控制逻辑电路和各种控制寄存器组成,它们严格按照定时电路的各种译码指令完成规定的操作。1、指令寄存器IR和指令译码器ID(8位)IR主要用于寄存指令代码,并通过ID将指令代码译出由控制电路产生相应的控制信号。2、程序计数器PC单片机原理及应用(第二章MCS-51单片机的组成原理)第5页共28页是一个十六位的寄存器,专门用于寄存CPU将要执行的指令地址(即下一条指令的地址),所以PC会自动加1。PC可寻址64KB范围的ROM。注意PC本身没有地址,因此用户无法对其进行读写,但可以通过相应的指令改变其内容,实现程序的转移。3、堆栈指针(寄存器)SP(8位)堆栈:只有一个数据进/出端口且按照“先进后出”原则管理的存储器。栈底:堆栈存储器的底部。此时的堆栈指针为SP。栈顶:存储器的数据入口处。空栈时,栈顶的地址等于栈底的地址(两者重合)。随着数据的不断进栈,栈顶的地址也不断的增加(上浮)。数据进栈的操作:首先SP+1,送入SP,然后再向堆栈存储器写入数据;数据出栈的操作:首先从堆栈存储器读出数据,然后SP-1,送入SP。堆栈指针(寄存器)SP:就是专门用于寄存指示堆栈存储器地址的寄存器。4、数据指针(地址)寄存器DPTR(16位)是一个十六位的专用寄存器,它由两个8位的寄存器DPH(高8位)和DPL(低8位)组成。专门用来寄存片外RAM及扩展I/O口进行数据存取用的地址。三、寄存器和特殊功能寄存器R1、工作寄存器MCS-51共有32个工作寄存器(在片内RAM的00H~1FH的地址单元中),分为四个组(区),每个组(区)有8个寄存器,分别用R0、R1、R2、R3、R4、R5、R6、R7表示。(由前面的表中可以看出)每个时刻只有一个区工作,而且由程序状态标志寄存器RS1、RS0来决定。当RS1RS0=00时,选定的当前的工作器组为第0组(区),它们的地址分别为00H~07H,对应的通用寄存器的名称分别为R0~R7。注意:R0、R1不仅做工作寄存器用外,还经常用于做间接寻址的地址指针。单片机原理及应用(第二章MCS-51单片机的组成原理)第6页共28页2、特殊功能寄存器SFR(专用寄存器)MCS-51共有21个特殊功能寄存器(除PC外),离散地分布在片内RAM的80H~0FFH的地址单元中,共占据了128个存储单元,构成了SFR存储块。将其地址由大到小排列如下(关于寻址方式将在下一章讨论)特殊功能寄存器功能名称地址单元内复位后初态是否可以位寻址B寄存器F0H00H可以A累加器E0H00H可以PSW程序状态D0H00H可以标志寄存器IP中断优先级B8HXXX00000B可以控制寄存器P3P3口数据寄存器B0HFFH可以IE中断允许A8H0XX00000B可以控制寄存器P2P2口数据寄存器A0HFFH可以SBUF串行口发送/接收99H不定不可以数据缓冲寄存器SCON串行口控制寄存器98H00H可以P1P1口数据寄存器90HFFH可以TH1T1计数器8DH00H不可以高8位寄存器TH0T0计数器8CH00H不可以高8位寄存器TL1T1计数器8BH00H不可以低8位寄存器单片机原理及应用(第二章MCS-51单片机的组成原理)第7页共28页TL0T0计数器8AH00H不可以低8位寄存器TMOD定时器/计数器89H00H不可以方式控制寄存器TCON定时器控制寄存器88H00H可以PCON电源控制寄存器87H00H不可以DPH地址寄存器高8位83H00H不可以DPL地址寄存器低8位82H00H不可以SP堆栈指针寄存器81H07H不可以P0P0口数据寄存器80HFFH可以以上21个特殊功能寄存器,它们的地址能被8整除的都可以位寻址。上面已介绍了B、A、PSW、SP及DPTR,其它的将在以后的章节中分别读者讨论。2—3MCS-51单片机存储器半导体存储器1.几个基本概念1.数的本质和物理现象。我们知道,计算机可以进行数学运算,这可令我们非常的难以理解,计算机吗,我们虽不了解它的组成,但它总只是一些电子元器件,怎么可以进行数学运算呢?我们做数学题如37+45是这样做的,先在纸上写37,然后在下面写45,然后大脑运算,最后写出结果,运算的原材料:37、45和结果:82都是写在纸上的,计算机中又是放在什么地方呢?为了解决这个问题,先让我们做一个实验:这里有一盏灯,我们知道灯要么亮,要么不亮,就有两种状态,我们可以用’0’和’1’来代替这两种状态,规定亮为’1’,不亮为’0’。现在放上两盏灯,一共有几种状态呢?我们列表来看一下:状态表达00011011请大家自已写上3盏灯的情况000001010011100101110111单片机原理及应用(第二章MCS-51单片机的组成原理)第8页共28页我们来看,这个000,001,101不就是我们学过的的二进制数吗?本来,灯的亮和灭只是一种物理现象,可当我们把它们按一按的顺序排更好后,灯的亮和灭就代表了数字了。让我们再抽象一步,灯为什么会亮呢?看电路1,是因为输出电路输出高电平,给灯通了电。因此,灯亮和灭就可以用电路的输出是高电平还是低电平来替代了。这样,数字就和电平的高、低联系上了。(请想一下,我们还看到过什么样的类似的例子呢?(海军之)灯语、旗语,电报,甚至红、绿灯)2.位的含义:通过上面的实验我们已经知道:一盏灯亮或者说一根线的电平的高低,可以代表两种状态:0和1。实际上这就是一个二进制位,因此我们就把一根线称之为一“位”,用BIT表示。3.字节的含义:一根线可以表于0和1,两根线可以表达00,01,10,11四种状态,也就是可以表于0到3,而三根可以表达0-7,计算机中通常用8根线放在一起,同时计数,就可以表过到0-255一共256种状态。这8根线或者8位就称之为一个字节(BYTE)。不要问我为什么是8根而不是其它数,因为我也不知道。(计算机世界是一个人造的世界,不是自然界,很多事情你无法问为什么,只能说:它是一种规定,大家在以后的学习过程中也要注意这个问题)1.存储器的工作原理:1、存储器构造存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。图2图3让我们看图2。这是一个存储器的示意图:一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进单片机原理及应用(第二章MCS-51单片机的组成原理)第9页共28页来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就象是水,那就好理解了。存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。有了这么一个构造,我们就可以开始存放数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看图3)。可是问题出来了,看图2,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因此,要在结构上稍作变化,看图2,在每个单元上有个控制线,我想要把数据放进哪个单元,就给一个信号这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了,而其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制不同单元的控制线,就可以向各单元写入不同的数据了,同样,如果要某个单元中取数据,也只要打开相
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:单片机教案(第1章 组成原理)
链接地址:https://www.777doc.com/doc-3355408 .html