单片机 第二章.ppt
第第2 2章章 MCS-51MCS-51单片机的基本结构及单片机的基本结构及工作原理工作原理任务一任务一 单灯闪烁单灯闪烁2.1 MCS-51 2.1 MCS-51 系列单片机的结构及引脚系列单片机的结构及引脚2.2 2.2 中央处理单元中央处理单元CPUCPU2.3 MCS-51 2.3 MCS-51 存储器结构存储器结构2.4 2.4 并行并行I/OI/O端口端口2.5 2.5 时钟和时钟和CPUCPU时序时序2.6 2.6 复位、低功耗及最小系统复位、低功耗及最小系统任务一任务一 单灯闪烁单灯闪烁本任务以一个会闪光的灯来介绍最简单的单片机电路,通过本任务以一个会闪光的灯来介绍最简单的单片机电路,通过本任务的练习,读者可了解一个最简单的单片机应用电路的本任务的练习,读者可了解一个最简单的单片机应用电路的组成。组成。任务目的任务目的 1.1.了解单片机最小系统了解单片机最小系统 2.2.了解了解I/OI/O端口的偷出功能端口的偷出功能 3.3.了解汇编语言与机器语言了解汇编语言与机器语言任务描述任务描述 1.1.组装单片机实验板组装单片机实验板 2.2.控制控制1 1个发光二极管个发光二极管(LED)(LED)闪光闪光1.1.硬件电路原理图硬件电路原理图 单片机实验板电路原理图如单片机实验板电路原理图如图图2-12-1所示。所示。下一页返回任务一任务一 单灯闪烁单灯闪烁2.2.实训的程序清单实训的程序清单单片机必须写入程序,只有执行不同的程序单片机才能完成单片机必须写入程序,只有执行不同的程序单片机才能完成不同的功能。本任务的程序清单如下不同的功能。本任务的程序清单如下:ORG 0000H ;ORG 0000H ;定位伪指令,指定下一条指令的地址定位伪指令,指定下一条指令的地址 L1:CPL P0.0 ;P0.0L1:CPL P0.0 ;P0.0取反取反 MOV R7MOV R7,#0FFH#0FFH L2:MOV R6 L2:MOV R6,#0FFH#0FFH L3:NOP R6 L3:NOP R6,L3L3 DJNZ R7 DJNZ R7,L2L2 DJNZ L1 ;DJNZ L1 ;转移至转移至L1L1,循环执行程序,循环执行程序 SJMPSJMP END ;END ;结束结束上一页 下一页返回任务一任务一 单灯闪烁单灯闪烁3.3.实训内容与步骤实训内容与步骤 (1)(1)按照电路原理图安装、焊接实验板。按照电路原理图安装、焊接实验板。(2)(2)检查无误,把事先已经存储厂程序的检查无误,把事先已经存储厂程序的8955189551安装到安装到ICIC插座插座中,上电运行,观察运行结果。中,上电运行,观察运行结果。(3)(3)按下复位按键,观察结果,并分析原因。按下复位按键,观察结果,并分析原因。(4)(4)分析是哪一条指令使分析是哪一条指令使LE DLE D闪光的。闪光的。上一页返回2.1 MCS-51 2.1 MCS-51 系列单片机的结构及系列单片机的结构及引脚引脚2.1.1 MCS-512.1.1 MCS-51单片机的内部结构单片机的内部结构MCS-51MCS-51系列单片机是在一个芯片上集成了系列单片机是在一个芯片上集成了CPLCPL、RAMRAM、ROMROM、定、定时器、时器、I/0I/0接口等基本功能部件的一台计算机接口等基本功能部件的一台计算机MCS-51MCS-51系列单系列单片机的典型产品有片机的典型产品有:8031:8031、80518051、87518751、89CSl89CSl。80318031片内片内无无PROMPROM程序存储器;程序存储器;80518051片内有片内有4KBROM4KBROM程序存储器程序存储器;8751;8751片内片内有有4KBROM4KBROM程序存储器;程序存储器;89C5189C51片内有片内有4KBFLASH EEPROM4KBFLASH EEPROM程序存程序存储器。除此之外,四者的内部结构及引脚完全相同。储器。除此之外,四者的内部结构及引脚完全相同。下一页返回2.1 MCS-51 2.1 MCS-51 系列单片机的结构及系列单片机的结构及引脚引脚1.MCS-511.MCS-51的核心电路的核心电路如图如图2-22-2是是80518051单片机的核心电路,它包含如下功能部件单片机的核心电路,它包含如下功能部件:(1)(1)一个一个8 8位微处理器。位微处理器。(2)(2)振荡器和时钟电路。振荡器和时钟电路。(3)4 KB(3)4 KB的片内程序存储器的片内程序存储器(ROM/PROM)(ROM/PROM)。(4)128(4)128字节片内数据存储器字节片内数据存储器(RAM)(RAM)。(5)(5)可寻址可寻址64 KB64 KB的外部程序存储器和数据存储器。的外部程序存储器和数据存储器。(6)(6)两个两个1616位定时器位定时器/计数器。计数器。(7)32(7)32个可编程并行个可编程并行I/OI/O口。口。(8)(8)一个可编程全双工串行一个可编程全双工串行I/OI/O口。口。(9)(9)二十多个特殊功能寄存器。二十多个特殊功能寄存器。各个功能部分通过内部系统总线连接在一起。各个功能部分通过内部系统总线连接在一起。2.MCS-512.MCS-51的结构框图的结构框图 MCS-51MCS-51系列单片机典型芯片系列单片机典型芯片80518051结构框图结构框图如图如图2-32-3所示。所示。上一页 下一页返回2.1 MCS-51 2.1 MCS-51 系列单片机的结构及系列单片机的结构及引脚引脚2.1.2 MCS-512.1.2 MCS-51引脚功能说明引脚功能说明80518051单片机的外形采用单片机的外形采用4040条引脚双列直插封装。引脚图如条引脚双列直插封装。引脚图如图图2-42-4所示。所示。MCS-51MCS-51引脚数日有限,有许多引脚具有双功能。各引脚功能引脚数日有限,有许多引脚具有双功能。各引脚功能简要说明如下简要说明如下:(1)(1)主电源引脚主电源引脚VCCVCC和和VSSVSS:VCCVCC:+5 V+5 V电源。电源。VSS:VSS:地线。地线。(2)(2)时钟振荡电路引脚时钟振荡电路引脚XTAL1XTAL1和和XTAL2XTAL2:XTAL1XTAL1和和XTAL2XTAL2分别用做晶体振荡电路的反相器输人和输出端。分别用做晶体振荡电路的反相器输人和输出端。当使用外部振荡器时,外部振荡信号应直接加到当使用外部振荡器时,外部振荡信号应直接加到XTAL1XTAL1,而,而XTAL2XTAL2悬空。悬空。上一页 下一页返回2.1 MCS-51 2.1 MCS-51 系列单片机的结构及系列单片机的结构及引脚引脚(3)(3)复位信号线复位信号线RSTRST:RST/VPD(9RST/VPD(9脚脚):RST):RST即为即为RESET,VPDRESET,VPD为为备用电源。该引脚为单片机的上电复位或掉电保护端。当单备用电源。该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。平,就可实现复位操作,使单片机回复到初始状态。(4)ALE/PROG(30(4)ALE/PROG(30脚脚):):地址锁存有效信号输出端。地址锁存有效信号输出端。ALEALE在每个在每个机器周期内输出两个脉冲。在访问片外程序存储器期间,下机器周期内输出两个脉冲。在访问片外程序存储器期间,下降沿用于控制锁存降沿用于控制锁存POPO输出的低输出的低8 8位地址位地址;在不访问片外程序存在不访问片外程序存储器期间,可作为对外输出的时钟脉冲或用于定时目的。但储器期间,可作为对外输出的时钟脉冲或用于定时目的。但要注意,在访问片外数据存储器期间,要注意,在访问片外数据存储器期间,ALEALE脉冲会跳空一个,脉冲会跳空一个,此时作为时钟输出就不妥了。对于片内含有此时作为时钟输出就不妥了。对于片内含有EPROMEPROM的机型,在的机型,在编程期间,该引脚用作编程脉冲编程期间,该引脚用作编程脉冲PROGPROG的输入端。的输入端。上一页 下一页返回2.1 MCS-51 2.1 MCS-51 系列单片机的结构及系列单片机的结构及引脚引脚(5)PSEN(29(5)PSEN(29脚脚):):片外程序存储器读选通信号输出端,低电片外程序存储器读选通信号输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机平有效。当从外部程序存储器读取指令或常数期间,每个机器周期该信号两次有效,以通过数据总线器周期该信号两次有效,以通过数据总线P0P0口读回指令或常口读回指令或常数。在访问片外数据存储器期间,数。在访问片外数据存储器期间,PSENPSEN信号将不出现。信号将不出现。(6)EA/VPP(31(6)EA/VPP(31脚脚):EA):EA为片外程序存储器选用端。该引脚有为片外程序存储器选用端。该引脚有效效(低电平低电平)时,只选用片外程序存储器,否则单片机上电或时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。对于片内含有复位后选用片内程序存储器。对于片内含有EPROMEPROM的机型,在的机型,在编程期间,此引脚用作编程期间,此引脚用作21 V21 V编程电源编程电源VPPVPP的输入端。的输入端。上一页 下一页返回2.1 MCS-51 2.1 MCS-51 系列单片机的结构及系列单片机的结构及引脚引脚(7)4(7)4个个8 8位位I/0I/0端口端口P0P0、P1P1、P2P2、P3P3P0P0口口(39(39 3232脚脚):P0.0):P0.0一一P0.7P0.7统称为统称为P0P0口。在不接片外存储口。在不接片外存储器与不扩展器与不扩展I/0I/0口时,可作为准双向输入口时,可作为准双向输入/输出口。在接有片输出口。在接有片外存储器或扩展外存储器或扩展I/OI/O口时,口时,P0P0口分时复用为低口分时复用为低8 8位地址总线和位地址总线和双向数据总线。双向数据总线。P1P1口口(1(18 8脚脚):P1.0):P1.0P1.7P1.7统称为统称为P1P1口,可作为准双向口,可作为准双向I/OI/O口口使用。使用。P2P2口口(21(212828脚脚):P2.0):P2.0P2.7P2.7统称为统称为P2P2口,一般可作为准双口,一般可作为准双向向I/OI/O口使用口使用;在接有片外存储器或扩展在接有片外存储器或扩展I/OI/O口且寻址范围超过口且寻址范围超过256256字节时,字节时,P2P2口用作高口用作高8 8位地址总线。位地址总线。P3P3口口(10 17(10 17脚脚):P3.0):P3.0P3.7P3.7统称为统称为P3P3口。除作为准双向口。除作为准双向I/OI/O口使用外,还可以将每一位用于第二功能,而且口使用外,还可以将每一位用于第二功能,而且P3P3口的每口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。一条引脚均可独立定义为第一功能的输入输出或第二功能。详见详见表表2-12-1。上一页返回2.2 2.2 中央处理单元中央处理单元CPUCPUMCS-51MCS-51单片机内有一个单片机内有一个8 8位位CPUCPU,它是单片机的核心,主要功,它是单片机的核心,主要功能是运算和控制整个系统协调工作。它由运算器和控制器两能是运算和控制整个系统协调工作。它由运算器和控制器两部分组成。部分组成。2.2.1 2.2.1 运算器运算器运算器主要实现对数据的算术运算和逻辑运算以及位处理操运算器主要实现对数据的算术运算和逻辑运算以及位处理操作。其本身是一复杂的数字时序逻辑电路。作。其本身是一复杂的数字时序逻辑电路。运算器由运算器由8 8位算术逻辑运算单元位算术逻辑运算单元ALU (Arithmetic Logic ALU (Arithmetic Logic Unit)Unit)、8 8位累加器位累加器ACC (Accumulator)ACC (Accumulator)、8 8位寄存器位寄存器B B、程序、程序状态字寄存器状态字寄存器PSW (Program Status Word)PSW (Program Status Word)、8 8位暂存寄存位暂存寄存器器TMP1TMP1和和TMP2TMP2、位操作电路等组成。如、位操作电路等组成。如图图2-32-3所示。其中,部所示。其中,部分寄存器介绍如下。分寄存器介绍如下。下一页返回2.2 2.2 中央处理单元中央处理单元CPUCPU1.1.算术逻辑单元算术逻辑单元ALUALU 对对8 8位二进制数据进行算术位二进制数据进行算术/逻辑运算逻辑运算 算术运算、加算术运算、加1 1和减和减1 1运算、十进制调整、逻辑操作运算、十进制调整、逻辑操作2.2.暂存器暂存器TMP1TMP1、TMP2TMP2 用于存放参与运算的数据,用户不可以直接使用。用于存放参与运算的数据,用户不可以直接使用。3.3.累加器累加器ACC/AACC/A ACC ACC是一个是一个8 8位寄存器,是位寄存器,是CPUCPU中使用最频繁的寄存器。指令中使用最频繁的寄存器。指令系统中用系统中用A A作为累加器的助记符。进入作为累加器的助记符。进入ALUALU作算术和逻辑运算作算术和逻辑运算的操作数多来自于的操作数多来自于A A,运算结果也常送回,运算结果也常送回A A保存。保存。4.4.寄存器寄存器B B 寄存器寄存器B B是为是为ALUALU进行乘除法运算而设置的。若不作乘除运算进行乘除法运算而设置的。若不作乘除运算时,则可作为通用寄存器使用。时,则可作为通用寄存器使用。在乘、除运算中,与累加器在乘、除运算中,与累加器A A配合使用,存放第二操作数。配合使用,存放第二操作数。上一页 下一页返回2.2 2.2 中央处理单元中央处理单元CPUCPU5.5.程序状态字程序状态字PSWPSW 程序状态字寄存器是一个程序状态字寄存器是一个8 8位专用寄存器,用于寄存或存贮当位专用寄存器,用于寄存或存贮当前机器指令在执行后操作结果的特征状态,以供程序查询和前机器指令在执行后操作结果的特征状态,以供程序查询和判别。其格式如下判别。其格式如下:上一页 下一页返回2.2 2.2 中央处理单元中央处理单元CPUCPU(1)(1)进位标志位进位标志位Cy(PSW7):Cy(PSW7):在执行某些算术操作类、逻辑操作在执行某些算术操作类、逻辑操作类指令时,可被硬件或软件置位或清零。它表示运算结果是类指令时,可被硬件或软件置位或清零。它表示运算结果是否有进位或借位。如果在最高位有进位否有进位或借位。如果在最高位有进位(加法时加法时)或有借位或有借位(减减法时法时),则,则C=1C=1,否则,否则C=0C=0。在位操作中。在位操作中CYCY用于位累加器。用于位累加器。(2)(2)辅助进位辅助进位(或称半进位或称半进位)标志位标志位AC(PBW.6):AC(PBW.6):它表示两个它表示两个8 8位位数运算,低数运算,低4 4位有无进位有无进(借借)位的状况。当低位的状况。当低4 4位相加位相加(或相减或相减)时,若时,若D3D3位向位向D4D4位有进位位有进位(或借位或借位),则,则AC=1AC=1,否则,否则AC=0AC=0。在在BCDBCD码运算的十进制调整中要用到该标志位。码运算的十进制调整中要用到该标志位。上一页 下一页返回2.2 2.2 中央处理单元中央处理单元CPUCPU(3)(3)用户自定义标志位用户自定义标志位F0(PSW.5):F0(PSW.5):用户可根据自己的需要对用户可根据自己的需要对F0F0赋予一定的含义,通过软件置位或清零,并根据赋予一定的含义,通过软件置位或清零,并根据F0=1F0=1或或0 0来来决定程序的执行方式,或反映系统某一种工作状态。决定程序的执行方式,或反映系统某一种工作状态。(4)(4)工作寄存器组选择位工作寄存器组选择位RS1,RSO (PSW.4,PSW.3:RS1,RSO (PSW.4,PSW.3:可用可用软件置位或清零,用于选定当前使用的软件置位或清零,用于选定当前使用的4 4个工作寄存器组中的个工作寄存器组中的某一组某一组 RS1RS1、RSO=00RSO=000 0区区(00 H(00 H07H)07H)RS1 RS1、RSO=O1RSO=O11 1区区(08 H(08 H0FH)0FH)RS1 RS1、RSO=10RSO=102 2区区(10H(10H17H)17H)RS1 RS1、RSO=11RSO=113 3区区(18H(18H1FH)1FH)单片机复位时单片机复位时RS1,RSORS1,RSO状态为状态为00,00,即选择第即选择第0 0组工作寄存器。组工作寄存器。上一页 下一页返回2.2 2.2 中央处理单元中央处理单元CPUCPU(5)(5)溢出标志位溢出标志位OV(PSW.2):OV(PSW.2):做加法或减法时,由硬件置位或做加法或减法时,由硬件置位或清零,以指示运算结果是否溢出。清零,以指示运算结果是否溢出。OV=1OV=1反映运算结果超出反映运算结果超出厂有符号数的数值范围厂有符号数的数值范围(以补码形式表示一个有符号数的范围以补码形式表示一个有符号数的范围为为-128-128+127+127。进行加法时,如最高位、次高位之一有进位,或做减法时,进行加法时,如最高位、次高位之一有进位,或做减法时,如最高位、次高位之一有借位,如最高位、次高位之一有借位,OVOV被置位,即被置位,即OVOV的值为最高的值为最高位进位和次高位进位的异或位进位和次高位进位的异或(C7 C6)(C7 C6)。执行乘法指令执行乘法指令MUL ABMUL AB也会影响也会影响OVOV标志,积标志,积255255时时OV=1OV=1,否,否则则OV=0OV=0。执行除法指令执行除法指令DIV ABDIV AB也会影响也会影响OVOV标志,如标志,如B B中所放除数为中所放除数为0,0,OV=1,OV=1,否则否则OV=0OV=0。(6)(6)未使用位未使用位Fl(PSW.1);PSWFl(PSW.1);PSW中唯一一个无作用的位,用中唯一一个无作用的位,用户也不可以对其使用。户也不可以对其使用。上一页 下一页返回2.2 2.2 中央处理单元中央处理单元CPUCPU(7)(7)奇偶标志位奇偶标志位P(PSW.0):P(PSW.0):在执行指令后,单片机根据累加在执行指令后,单片机根据累加器器A A中中1 1的个数的奇偶自动给该标志置位或清零。若的个数的奇偶自动给该标志置位或清零。若A A中中1 1的个的个数为奇数,则数为奇数,则P=1P=1,否则,否则P=0P=0。该标志对串行通信的数据传输。该标志对串行通信的数据传输非常有用,通过奇偶校验可检验传输的可靠性。非常有用,通过奇偶校验可检验传输的可靠性。6.6.布尔处理机布尔处理机 布尔处理机布尔处理机(即位处理即位处理)是是MCS-51MCS-51单片机单片机ALUALU所具有的一种功能。所具有的一种功能。单片机指令系统中的位处理指令集单片机指令系统中的位处理指令集(17(17条位操作指令条位操作指令),存储,存储器中的位地址空间,以及借用程序状态寄存器器中的位地址空间,以及借用程序状态寄存器PSWPSW中的进位标中的进位标志志CYCY作为位操作作为位操作“累加器累加器”,构成了,构成了MCS-51MCS-51单片机内的布尔单片机内的布尔处理机。它可对直接寻址的位处理机。它可对直接寻址的位(hit)(hit)变量进行位处理,如置位、变量进行位处理,如置位、清零、取反、测试转移以及逻辑清零、取反、测试转移以及逻辑“与与”、“或或”等位操作,等位操作,使用户在编程时可以利用指令完成原来单凭复杂的硬件逻辑使用户在编程时可以利用指令完成原来单凭复杂的硬件逻辑所完成的功能,并可方便地设置标志等。所完成的功能,并可方便地设置标志等。上一页 下一页返回2.2 2.2 中央处理单元中央处理单元CPUCPU2.2.2 2.2.2 控制器控制器控制部件是单片机的神经中枢,它包括主要由程序计数器控制部件是单片机的神经中枢,它包括主要由程序计数器Pc,Pc,指令寄存器指令寄存器IR,IR,指令译码器指令译码器IDID、堆栈指针、堆栈指针SPSP、数据指针、数据指针DPTRDPTR、时钟发生器及定时控制逻辑等。它先以主振频率为基准发出时钟发生器及定时控制逻辑等。它先以主振频率为基准发出CPUCPU的时序,对指令进行译码,然后发出各种控制信号,完成的时序,对指令进行译码,然后发出各种控制信号,完成一系列定时控制的微操作,用来协调单片机内部各功能部件一系列定时控制的微操作,用来协调单片机内部各功能部件之间的数据传送、数据运算等操作,并对外发出地址锁存之间的数据传送、数据运算等操作,并对外发出地址锁存ALEALE、外部程序存储器选通外部程序存储器选通PSENPSEN,以及通过,以及通过P3.6P3.6和和P3.7P3.7发出数据存发出数据存储器读储器读RDRD、写、写WRWR等控制信号,并且接收处理外接的复位和外等控制信号,并且接收处理外接的复位和外部程序存储器访问控制部程序存储器访问控制EAEA信号。信号。1.1.指令寄存器指令寄存器IRIR、指令译码器、指令译码器IDID指令寄存器用于存放指令代码。指令寄存器用于存放指令代码。CPUCPU执行指令时,由程序存储执行指令时,由程序存储器中读取的指令代码送人指令存储器,经译码器译码后再由器中读取的指令代码送人指令存储器,经译码器译码后再由定时与控制电路发出相应的控制信号,完成指令所指定的操定时与控制电路发出相应的控制信号,完成指令所指定的操作。指令的内容由操作码和地址码两部分构成,操作码送到作。指令的内容由操作码和地址码两部分构成,操作码送到指令译码器,经其译码后便确定了要执行的操作。指令的地指令译码器,经其译码后便确定了要执行的操作。指令的地址码送到操作数地址形成电路,以便形成实际的操作数地址。址码送到操作数地址形成电路,以便形成实际的操作数地址。上一页 下一页返回2.2 2.2 中央处理单元中央处理单元CPUCPU指令译码器用于分析指令功能,根据操作码产生相应操作的指令译码器用于分析指令功能,根据操作码产生相应操作的控制信号。例如,控制信号。例如,8 8位操作码经指令译码器译码后,可以转换位操作码经指令译码器译码后,可以转换为为256256种操作控制信号,其中每一种控制信号对应一种特定的种操作控制信号,其中每一种控制信号对应一种特定的操作功能。操作功能。2.2.程序计数器程序计数器PC (Program Counter)PC (Program Counter)程序计数器程序计数器PCPC是一个是一个1616位的有自动加位的有自动加1 1功能的计数器。功能的计数器。1616位位PCPC中的内容总是中的内容总是CPUCPU将要执行的那条指令所存放的存储单元的首将要执行的那条指令所存放的存储单元的首地址。地址。在单片机复位时,在单片机复位时,PCPC中的内容为中的内容为0000H0000H,指向第,指向第1 1条要执行的条要执行的指令的首地址,在指令的首地址,在CPUCPU从存储单元取指令的过程中,每取从存储单元取指令的过程中,每取1 1个个字节的内容,程序计数器字节的内容,程序计数器PCPC就自动加就自动加1 1,在取完这条指令后,在取完这条指令后,PCPC中的内容就是下一条要执行的指令所存放的存储单元的首中的内容就是下一条要执行的指令所存放的存储单元的首地址。地址。上一页 下一页返回2.2 2.2 中央处理单元中央处理单元CPUCPU在实际应用中,有时在实际应用中,有时CPUCPU还要执行程序的转移、子程序的调用还要执行程序的转移、子程序的调用和中断响应等操作,那时和中断响应等操作,那时PCPC中的内容不再是上述情况中简单中的内容不再是上述情况中简单的加的加1 1,而是根据不同的情况自动地被置入或修改成新的日的,而是根据不同的情况自动地被置入或修改成新的日的地址,从而改变程序的执行顺序。地址,从而改变程序的执行顺序。PCPC没有地址,是不可寻址的,因此用户不能对它进行读写。没有地址,是不可寻址的,因此用户不能对它进行读写。3.3.数据指针寄存器数据指针寄存器DPTRDPTR 数据指针寄存器数据指针寄存器DPTRDPTR是一个是一个1616位专用寄存器。它主要用来存位专用寄存器。它主要用来存放片外数据存储器或放片外数据存储器或I/OI/O口地址,也可以分成口地址,也可以分成DPHDPH、DPLDPL两个两个8 8位来使用。位来使用。4.4.堆找指针堆找指针SPSP 堆栈指针堆栈指针SPSP是一个是一个8 8位专用寄存器。单片机复位时寄存器的值位专用寄存器。单片机复位时寄存器的值为为07 H07 H,它用来存放当前堆栈操作的位置即地址,它用来存放当前堆栈操作的位置即地址,SPSP始终指始终指向堆栈栈顶,每压人向堆栈栈顶,每压人8 8位数据进入堆栈,位数据进入堆栈,SPSP自动加自动加1 1,每弹出,每弹出8 8位数据,位数据,SPSP自动减自动减1 1。数据在堆栈中遵循。数据在堆栈中遵循“先进后出先进后出”的原则。的原则。上一页 下一页返回2.2 2.2 中央处理单元中央处理单元CPUCPU5.5.定时与控制电路定时与控制电路 定时与控制逻辑由时序部件和微操作控制部件构成。用于控定时与控制逻辑由时序部件和微操作控制部件构成。用于控制取指令、执行指令、存取操作数或运算结果等操作,向其制取指令、执行指令、存取操作数或运算结果等操作,向其他部件发出各种微操作控制信号,协调各部件的工作。它是他部件发出各种微操作控制信号,协调各部件的工作。它是单片机的心脏。单片机的心脏。指令执行的基本过程指令执行的基本过程:(1)(1)单片机在工作前,首先必须在存储器中装入程序。所谓程单片机在工作前,首先必须在存储器中装入程序。所谓程序,就是为了完成某项工作,将一系列指令有序地组合,而序,就是为了完成某项工作,将一系列指令有序地组合,而指令则是要求单片机执行某种操作的命令。指令则是要求单片机执行某种操作的命令。(2)(2)指令分为操作码和地址码两个部分,操作码部分规定了单指令分为操作码和地址码两个部分,操作码部分规定了单片机操作类型,而地址码部分一般是直接或间接地给出了参片机操作类型,而地址码部分一般是直接或间接地给出了参与操作的数据的存放地址,所以地址码也可以直接称为操作与操作的数据的存放地址,所以地址码也可以直接称为操作数。数。上一页 下一页返回2.2 2.2 中央处理单元中央处理单元CPUCPU(3)(3)单片机完成每项工作,必须有序地执行一系列指令。单片单片机完成每项工作,必须有序地执行一系列指令。单片机执行一条指令一般分为取指令、分析指令和执行指令。机执行一条指令一般分为取指令、分析指令和执行指令。从存储器中取出指令,并且对指令进行译码,以明确该指令从存储器中取出指令,并且对指令进行译码,以明确该指令执行何种操作,以及操作数的存放地址执行何种操作,以及操作数的存放地址(即操作数存放在哪一即操作数存放在哪一个单元中个单元中),再根据这个地址获取操作数,这是取指令和分析,再根据这个地址获取操作数,这是取指令和分析指令阶段。按操作码指明的操作类型对获取的操作数进行操指令阶段。按操作码指明的操作类型对获取的操作数进行操作作(也可称为运算也可称为运算),这是执行指令阶段。,这是执行指令阶段。上一页返回2.3 MCS-51 2.3 MCS-51 存储器结构存储器结构单片机存储器结构有两种类型单片机存储器结构有两种类型:一种程序存储器和数据存储器一种程序存储器和数据存储器统一编址,属于普林斯顿结构,另一种是程序存储器和数据统一编址,属于普林斯顿结构,另一种是程序存储器和数据存储器分开编址的哈佛结构。存储器分开编址的哈佛结构。MCS-51MCS-51系列单片机采用的是哈系列单片机采用的是哈佛结构。佛结构。MCS-51MCS-51存储结构如存储结构如图图2-52-5所示。所示。MCS-51MCS-51单片机的存储器在物理结构上可以分为片内程序存储单片机的存储器在物理结构上可以分为片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。器、片外程序存储器、片内数据存储器、片外数据存储器。而在逻辑结构上,分为而在逻辑结构上,分为3 3个逻辑地址空间个逻辑地址空间:片内片外统一编址片内片外统一编址的的64 KB64 KB程序存储器地址空间程序存储器地址空间;片内独立编址的片内独立编址的256 B256 B数据存储数据存储器地址空间器地址空间;片外独立编址的片外独立编址的64 KB64 KB数据存储器地址空间。即数据存储器地址空间。即访问这访问这3 3个不同的逻辑空间,要采用不同形式的指令。个不同的逻辑空间,要采用不同形式的指令。存储器的最小空间可以存放存储器的最小空间可以存放1 1位二进制数,位二进制数,MCS-51MCS-51单片机把单片机把8 8位位2 2进制数所存放的空间成为进制数所存放的空间成为1 1个单元,即一个字节。为了区个单元,即一个字节。为了区分不同的单元用二进制编制的符号称为单元地址,简称地址。分不同的单元用二进制编制的符号称为单元地址,简称地址。用地址来描述存储器的空间结构方便了对存储器单元数据的用地址来描述存储器的空间结构方便了对存储器单元数据的读写。读写。下一页返回2.3 MCS-51 2.3 MCS-51 存储器结构存储器结构2.3.1 2.3.1 程序存储器程序存储器ROMROM 程序存储器用于存放程序及表格常数。程序存储器用于存放程序及表格常数。1.1.程序存储器由内、外两部分组成程序存储器由内、外两部分组成 80518051片内有片内有4 K4 K字节的程序存储器,其编址为字节的程序存储器,其编址为0000H0000H0FFFH0FFFH,外部外部EPROMEPROM也从也从0000H0000H开始编址。在地址开始编址。在地址0000 H0000 H0FFFH0FFFH内,地内,地址有重叠,由址有重叠,由EAEA信号来控制内、外程序存储器的选择。信号来控制内、外程序存储器的选择。(1)EA=1(1)EA=1时,当时,当PCPC值在值在0000 H 0FFFH0000 H 0FFFH范围内,范围内,CPUCPU访问内部存访问内部存储器储器;当当PCPC值大于值大于0FFFH0FFFH范围时,范围时,CPUCPU访问外部存储器。访问外部存储器。(2)EA=0(2)EA=0时,不管时,不管PCPC值的大小,值的大小,CPUCPU总是访问外部程序存储器。总是访问外部程序存储器。上一页 下一页返回2.3 MCS-51 2.3 MCS-51 存储器结构存储器结构对于对于80318031单片机,由于内部没有程序存储器,必须外接单片机,由于内部没有程序存储器,必须外接EPROMEPROM,所以,所以EAEA必须接地,即必须接地,即EA=0EA=0。外部程序存储器从。外部程序存储器从0000 H0000 H开始编址,寻址范围开始编址,寻址范围64 KB 64 KB。2.2.程序存储器以计数器程序存储器以计数器PCPC作为地址指针。程序计数器作为地址指针。程序计数器PCPC为为1616位的寄存器,它决定厂位的寄存器,它决定厂MCS-51MCS-51单片机可寻址的最大范围单片机可寻址的最大范围为为64 K64 K字节,即字节,即0000 H0000 H0FFFFH0FFFFH。3.3.程序存储器也存放程序所需的常数表程序存储器也存放程序所需的常数表 访问程序存储器还是数据存储器在指令上有所不同,访问程序存储器还是数据存储器在指令上有所不同,MOVCMOVC指令用于访问程序存储器。指令用于访问程序存储器。程序存储器的程序存储器的0000H0000H002AH002AH共共4343个单元用作存储特定程序个单元用作存储特定程序的入口地址。的入口地址。0000H0002H0000H0002H这这3 3个单元是系统的启动单元个单元是系统的启动单元;0003H0003H002AH002AH共共4040个单元是中断服务程序地址区,它被分个单元是中断服务程序地址区,它被分为五段,每段为五段,每段8 8个单元,分别分配给个单元,分别分配给5 5个中断源个中断源:上一页 下一页返回2.3 MCS-51 2.3 MCS-51 存储器结构存储器结构 0003H0003H000AH000AH外部中断外部中断0 0中断服务程序地址区中断服务程序地址区;000BH 000BH0012H0012H定时定时/计数器。中断服务程序地址区计数器。中断服务程序地址区;0013H 0013H001AH001AH外部中断外部中断1 1中断服务程序地址区中断服务程序地址区;001BH 001BH0022 H0022 H定时定时/计数器计数器1 1中断服务程序地址区中断服务程序地址区;0023H 0023H002AH002AH串行口中断服务程序地址区。串行口中断服务程序地址区。其中,一组特殊单元是其中,一组特殊单元是0000 H0000 H0002H0002H。系统复位后,。系统复位后,(PC)(PC)=0000 H=0000 H,单片机从,单片机从0000 H0000 H单元开始取指令执行程序。如果单元开始取指令执行程序。如果程序不从程序不从0000 H0000 H单元开始,应在这三个单元中存放一条无条单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。件转移指令,以便直接转去执行指定的程序。中断响应后,按中断种类,自动转到各中断区的首地址去执中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。但通行程序,因此在中断地址区中理应存放中断服务程序。但通常情况下,常情况下,8 8个单元难以存下一个完整的中断服务程序,因此个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。实际入口地址。上一页 下一页返回2.3 MCS-51 2.3 MCS-51 存储器结构存储器结构2.3.22.3.2数据存储器数据存储器RAMRAMMCS-51MCS-51单片机数据存储器用于暂存程序执行过程,单片机数据存储器用于暂存程序执行过程,1 1,产生的,产生的数据和运算结果等。数据和运算结果等。MCS-51MCS-51单片机数据存储器也可以分为片内数据存储器和片外单片机数据存储器也可以分为片内数据存储器和片外数据存储器。当片内数据存储器不够用时,可扩展片外数据数据存储器。当片内数据存储器不够用时,可扩展片外数据存储器。一般情况下,片外数据存储器的容量不超过存储器。一般情况下,片外数据存储器的容量不超过64 KB64 KB。与内、外部的程序存储器不同,内部和外部数据存储器空间与内、外部的程序存储器不同,内部和外部数据存储器空间存在重叠存在重叠(内部内部RAMRAM的地址范围为的地址范围为00H00H07 FH07 FH,外部,外部RAMRAM的地址的地址范围为范围为0000 H0000 H0 FFFFH0 FFFFH,通过不同指令来区别。当访问内部,通过不同指令来区别。当访问内部RAMRAM时,用时,用MOVMOV类指令类指令;当访问外部当访问外部RAMRAM时,则用时,则用MOVXMOVX类指令,类指令,所以地址重叠不会造成操作混乱。所以地址重叠不会造成操作混乱。上一页 下一页返回2.3 MCS-51 2.3 MCS-51 存储器结构存储器结构1.1.外部数据存储器外部数据存储器 外部数据存储器一般用来存放相对来讲使用不太频繁的数据,外部数据存储器一般用来存放相对来讲使用不太频繁的数据,其中的数据不能直接进行处理,要进