ch2单片机硬件结构

上传人:夏** 文档编号:568012139 上传时间:2024-07-23 格式:PPT 页数:82 大小:1.30MB
返回 下载 相关 举报
ch2单片机硬件结构_第1页
第1页 / 共82页
ch2单片机硬件结构_第2页
第2页 / 共82页
ch2单片机硬件结构_第3页
第3页 / 共82页
ch2单片机硬件结构_第4页
第4页 / 共82页
ch2单片机硬件结构_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《ch2单片机硬件结构》由会员分享,可在线阅读,更多相关《ch2单片机硬件结构(82页珍藏版)》请在金锄头文库上搜索。

1、第第2 2章章 MCS-51 MCS-51系列单片机的硬件结构系列单片机的硬件结构2.1 MCS-51单片机的逻辑结构及信号引脚单片机的逻辑结构及信号引脚2.2 MCS-51单片机的时钟电路与时序单片机的时钟电路与时序2.3 MCS-51单片机的工作方式单片机的工作方式2.4 MCS-51单片机的单片机的存储器存储器1MCS-51MCS-51单单片片机机属于高档单片机,1980年推出,是Intel公司的8位系列单片机,包括51和52两个子系列。52子系列与51子系列的不同之处在于:片内RAM增至256字节;片内ROM增至8 KB (8032无);有3个16位定时/计数器,6个中断源。其它性能均

2、与51子系列相同。2系列系列片内存储器(字节)片内存储器(字节)定时器定时器计数器计数器并行并行I/OI/O串行串行I/OI/O中中断断源源片内片内ROMROM片内片内RAMRAM无无有有ROMROM有有EPROMEPROMIntelIntelMCS-51MCS-51子系列子系列8031803180C3180C318051805180C5180C51(4K(4K字节字节) )8751875187C5187C51(4K(4K字节字节) )128128字节字节2x162x164x84x8位位1 15 5IntelIntelMCS-52MCS-52子系列子系列8032803280C3280C3280

3、52805280C5280C52(8K(8K字节字节) )8752875287C5287C52(8K(8K字节字节) )256256字节字节3x163x164x84x8位位1 16 6ATEMLATEML89C89C系列系列( (常用型常用型) )1051(1K)/ 2051(2K)/ 1051(1K)/ 2051(2K)/ 4051(4K)4051(4K)(2020条引脚条引脚DIPDIP封装)封装)1281282 215151 15 589C51(4K)/ 89C52(8K)89C51(4K)/ 89C52(8K)(4040条引脚条引脚DIPDIP封装)封装)128/128/2562562

4、/32/332321 15/65/6MCS-51MCS-51系列单片机配置一览表系列单片机配置一览表32.1 MCS-512.1 MCS-51单片机的逻辑结构及信号引脚单片机的逻辑结构及信号引脚42.1.1 MCS-512.1.1 MCS-51单片机的结构框图单片机的结构框图 MCS-51MCS-51单片机主要部件按功能分有单片机主要部件按功能分有8 8个,通过片内总线连接而成个,通过片内总线连接而成: :中央处中央处理器(理器(CPUCPU)、数据存储器()、数据存储器(RAMRAM)、程序存储器()、程序存储器(ROM/EPROMROM/EPROM)、并行)、并行输入输入/ /输出口(输出

5、口(P0P0口口- P3- P3口)、串行口、定时口)、串行口、定时/ /计数器、中断系统及特计数器、中断系统及特殊功能寄存器。殊功能寄存器。5P0口驱动器口驱动器P2口驱动器口驱动器RAM地址地址寄存器寄存器RAMP0口口 寄寄存器存器P2口口寄寄存存器器ROM/EPROMB寄存器寄存器程序地址寄存器程序地址寄存器缓冲器缓冲器PC递增器递增器程序计数器程序计数器PCDPTR指针指针VCCVssP1.0P1.7堆栈指针堆栈指针SPACCTMP2PSWP3锁存器锁存器P1口锁存器口锁存器P1口驱动器口驱动器P3口驱动器口驱动器TMP1SCON TMODPCONTCONTL0TH1TH0TL1IE

6、SBUF(TX/RX)IP中断、串行口和定时器逻辑中断、串行口和定时器逻辑振荡器振荡器P3.0P3.7RSTALEPSENXTAL2XTAL1ALU(+5V)指指令令译译码码器器定时定时和和控制控制逻辑逻辑指指令令寄寄存存器器图图2-2 MCS-51片内逻辑结构框图片内逻辑结构框图P0.0P0.7P2.0P2.7EA61.1.CPU CPU CPU CPU由运算器、控制器组成。由运算器、控制器组成。(1 1)运算器运算器 具有一般微机所不具备的位处理功能,用于实具有一般微机所不具备的位处理功能,用于实现算术运算和逻辑运算。现算术运算和逻辑运算。 由由8位算术逻辑运算单元位算术逻辑运算单元ALU

7、(Arithmetic Logic Unit)、)、8位累加器位累加器ACC(Accumulator)、)、8位寄存器位寄存器B、程序状态字寄存、程序状态字寄存器器PSW(Program Status Word)、)、8位暂存寄存器位暂存寄存器TMP1和和TMP2等组成等组成。7( 2 2) 控控 制制 器器 组组 成成 : 程程 序序 计计 数数 器器 PC( Program Counter) 、 指指 令令 寄寄 存存 器器 IR( Instruction Register) 、 指指 令令 译译 码码 器器 ID( Instruction Decoder)、堆堆栈栈指指针针SP、数数据据

8、指指针针DPTR、定定时时控制逻辑和振荡器控制逻辑和振荡器OSC等电路。等电路。功能:功能:CPU根据根据PC中的地址将欲执行指令的指令码中的地址将欲执行指令的指令码从存储器中取出,存放在从存储器中取出,存放在IR中,中,ID对对IR中的指令码中的指令码进行译码,定时控制逻辑在进行译码,定时控制逻辑在OSC配合下对配合下对ID译码译码后的信号进行分时,以产生执行本条指令所需的全后的信号进行分时,以产生执行本条指令所需的全部信号。部信号。 82.内部数据存储器内部数据存储器存放随机存取数据及运算结果,包括存放随机存取数据及运算结果,包括RAM(128B)和和RAM地址地址寄存器等寄存器等3.内部

9、程序存储器内部程序存储器用于存放程序、原始数据和表格内容,包括用于存放程序、原始数据和表格内容,包括ROM(4KB)和程序和程序地址寄存器地址寄存器4.定时器定时器/计数器计数器8051型单片机共有型单片机共有2个个16位的定时器位的定时器/计数器,用于实现定时计数器,用于实现定时或计数功能,并可用定时计数结果对单片机以及系统进行或计数功能,并可用定时计数结果对单片机以及系统进行控制。控制。5.并行并行IO口口8051型单片机共有型单片机共有4个个8位的并行位的并行IO口(口(P0、P1、P2、P3),以实现数据的并行输入与输出。),以实现数据的并行输入与输出。96.串行通信口串行通信口805

10、1型单片机有一个全双工的串行口,以实现单片机与其它型单片机有一个全双工的串行口,以实现单片机与其它数据设备之间的串行数据传递。数据设备之间的串行数据传递。7.中断控制系统中断控制系统8051型单片机共设有五个中断源,其中外部中断型单片机共设有五个中断源,其中外部中断2个、定时个、定时/计数中断计数中断2个、串行中断个、串行中断1个,二级优先级,可实现二级中个,二级优先级,可实现二级中断嵌套。断嵌套。8.时钟电路时钟电路8051型单片机芯片内有时钟电路,但石英晶体和微调电容需型单片机芯片内有时钟电路,但石英晶体和微调电容需要外接。要外接。时钟电路产生单片机工作所需要的时钟信号时钟电路产生单片机工

11、作所需要的时钟信号。9.位处理器位处理器亦称布尔处理器,亦称布尔处理器, MCS-51单片机的位处理器以状态寄存器单片机的位处理器以状态寄存器中的进位标志位中的进位标志位CY为累加器。位处理器能对可寻址位进行为累加器。位处理器能对可寻址位进行置位、复位、取反、等于置位、复位、取反、等于“0”转移、等于转移、等于“1”转移且清转移且清“0”以及以及C与可寻址位之间的传送、逻辑与、逻辑或等位与可寻址位之间的传送、逻辑与、逻辑或等位操作。位处理操作也是通过运算器实现的。操作。位处理操作也是通过运算器实现的。10 地址总线地址总线(Address Bus,Address Bus,简写简写ABAB) 地

12、址线地址线A0A0A15 A15 共共1616位,位,P2P2口提供高口提供高8 8位位地址地址A8A8A15A15,P0P0口经地址锁存器提供低口经地址锁存器提供低8 8位位地址地址A0A0A7 A7 。片外存储器可寻址范围达。片外存储器可寻址范围达64KB64KB(即(即=65536=65536个字节)。个字节)。 数据总线数据总线(Data Bus(Data Bus,简写,简写DB)DB) 地址线地址线D0-D7D0-D7共共8 8位,由位,由P0P0口提供,分时口提供,分时输送低输送低8 8位地址(通过地址锁存器锁存)和位地址(通过地址锁存器锁存)和8 8位数据信息。位数据信息。 控制

13、总线控制总线(Control Bus(Control Bus,简写,简写CB)CB) 控制总线由控制总线由P3P3口的第二功能口的第二功能 (P3.6P3.6)、)、 (P3.7) (P3.7)和和3 3根独立的控制根独立的控制线线 、ALEALE和和 组成。组成。10.总线总线所谓总线所谓总线,就是连接单片机与系统中各部件的一组公共的信号线。就是连接单片机与系统中各部件的一组公共的信号线。11P1P1口口P3P3口口P0P0口口P2P2口口 时钟端时钟端 复位端复位端控制信号控制信号 接接VCCVCC(+5V+5V) 接地端接地端2.1.2 MCS-512.1.2 MCS-51单片机的外部引

14、脚单片机的外部引脚HMOS型单片机都采用型单片机都采用40条引脚的双列直插式(条引脚的双列直插式(DIP)封装类型)封装类型12CHMOS型的单片机有的用型的单片机有的用PDIP封装,有的用封装,有的用44个引脚的个引脚的PLCC封装封装13 1电源及源及时钟引脚引脚 VCC (40脚脚):芯片工作:芯片工作电源的源的输入端,入端,+5V。 VSS(20脚脚):电源的接地端。源的接地端。 XTALl( 19脚脚)为反相放大器的反相放大器的输入端,入端,外接石英晶体和微调电容外接石英晶体和微调电容 XTAL2 ( 18脚)脚)为反相放大器的反相放大器的输出端出端。外接石英晶体和微。外接石英晶体和

15、微调电容;容; 2 控制信号引脚控制信号引脚RSTVPD(9脚脚):RST功能功能复位信号复位信号输入端入端 VPD功能功能在在VCC掉掉电情况下接情况下接备用用电源。源。ALE/ (30脚脚):ALE为地址锁存允许输出信号,用于将片外存储为地址锁存允许输出信号,用于将片外存储器的低器的低8位地址锁存到外部地址锁存器中,亦可用作外部时钟信号以及外部位地址锁存到外部地址锁存器中,亦可用作外部时钟信号以及外部定时信号。此引脚的第二功能定时信号。此引脚的第二功能 是作为是作为8751型单片机内部型单片机内部EPROM编程编程/校验时的编程脉冲输入端。校验时的编程脉冲输入端。 VPP(31脚脚): 为

16、访问内为访问内/外部程序存储器控制信号。当向内含外部程序存储器控制信号。当向内含EPROM的的8751型单片机固化程序时,通过该引脚的第二功能型单片机固化程序时,通过该引脚的第二功能VPP外接外接1225V的编程电压。的编程电压。 14单片机单片机锁存器锁存器74LS373P0.0-P0.7ALEPSENP2.0-P2.48D8QOEA8-A12A0-A7D0-D7GEAOECEEPROMEPROM PSEN PSEN (29脚脚) :寻址外部程序存储器时寻址外部程序存储器时读选通信号读选通信号 (OEOE)低有效。低有效。15 3输入输入/ /输出引脚输出引脚 (1 1)P0P0口(口( P

17、0.0 P0.0P0.7 P0.7 ) 8 8位位双双向向三三态态I/OI/O口口,可可作作为为外外部部扩扩展展时时的的数数据据总总线线/ /低低8 8位位地地址址总总线线的的分分时复用口。又可作为通用时复用口。又可作为通用I/OI/O口,每个引脚可驱动口,每个引脚可驱动8 8个个TTLTTL负载。负载。 对对EPROMEPROM型芯片(如型芯片(如87518751)进行编程和校验时,)进行编程和校验时,P0P0口用于输入口用于输入/ /输出数据。输出数据。 (2 2)P1P1口(口(P1.0P1.0P1.7P1.7)8 8位准双向位准双向I/OI/O口口,内部具有上拉电阻,可作为,内部具有上

18、拉电阻,可作为通用通用I/OI/O口。每个引脚可驱动口。每个引脚可驱动4 4个个TTLTTL负载。负载。 (3 3)P2P2口(口(P2.0P2.0P2.7P2.7) 8 8位准双向位准双向I/OI/O口口,内部具有上拉电阻,可作为外部扩展时的高,内部具有上拉电阻,可作为外部扩展时的高8 8位地址总位地址总线。又可作为通用线。又可作为通用I/OI/O口,每个引脚可驱动口,每个引脚可驱动4 4个个TTLTTL负载。负载。 对对EPROMEPROM型芯片(如型芯片(如87518751)进行编程和校验时,用来接收高)进行编程和校验时,用来接收高8 8位地址。位地址。 (4 4)P3P3口(口( P3

19、.0 P3.0P3.7 P3.7 ) 8 8位准双向位准双向I/OI/O口口,内部具有上拉电阻。它是,内部具有上拉电阻。它是双功能复用口双功能复用口,作为通用,作为通用I/OI/O口时,功能与口时,功能与P1P1口相同,常用第二功能。每个引脚可驱动口相同,常用第二功能。每个引脚可驱动4 4个个TTLTTL负载。作为负载。作为第二功能使用时,各位的作用如表所示。第二功能使用时,各位的作用如表所示。P3口引脚口引脚第第 二二 功功 能能P3口引脚口引脚第第 二二 功功 能能P3.0RXD(串行口串行口输入端入端)P3.4T0(定定时器器0外部外部输入入)P3.1TXD(串行口串行口输出端出端)P3

20、.5T1(定定时器器1外部外部输入入)P3.2INT0(外部中断外部中断0输入入)P3.6(外部数据存外部数据存储器写脉冲器写脉冲输出出)P3.3INT1(外部中断外部中断1输入入)P3.7(外部数据存外部数据存储器器读脉冲脉冲输出出)162.2 MCS-512.2 MCS-51单片机的时钟电路与时序单片机的时钟电路与时序v时钟电路是单片机的心脏,用于产生单片机时钟电路是单片机的心脏,用于产生单片机工作所需要的时钟信号。工作所需要的时钟信号。v时序所研究的则是指令执行中各信号之间的时序所研究的则是指令执行中各信号之间的相互时间关系。相互时间关系。CPU的功能就是以不同的方式,通过复杂的时序的功

21、能就是以不同的方式,通过复杂的时序电路执行并完成各种不同指令功能的。电路执行并完成各种不同指令功能的。CPU的控的控制器制器在一定时刻发出一定的控制信号去控制和启在一定时刻发出一定的控制信号去控制和启动一定的逻辑部件动作,完成某种操作,动一定的逻辑部件动作,完成某种操作,这就是这就是CPU的时序。的时序。17 2.2.1 2.2.1 时钟电路时钟电路 时钟电路用于产生单片机工作所需要的时钟信号。时钟电路框图如图时钟电路用于产生单片机工作所需要的时钟信号。时钟电路框图如图2.42.4所示。所示。 单片机芯片内部有一个高增益反向放大器,其输入引脚为单片机芯片内部有一个高增益反向放大器,其输入引脚为

22、XTAL1XTAL1,输出引脚为,输出引脚为XTAL2XTAL2,芯片外部通过这两个引脚接,芯片外部通过这两个引脚接晶体振荡器晶体振荡器CYSCYS和和微调电容器微调电容器C1C1、C2C2形成反馈电路(通常取值在形成反馈电路(通常取值在202030pF30pF),构成稳定的),构成稳定的自激振荡器,振荡频率范围通常是自激振荡器,振荡频率范围通常是1.2MHz1.2MHz12MHz12MHz。振荡脉冲经分频后再。振荡脉冲经分频后再为系统所用。为系统所用。 PD PD是是PCONPCON中的控制位,当中的控制位,当PD=1PD=1时,振荡器停止工作,系统进入低功时,振荡器停止工作,系统进入低功耗

23、工作态。耗工作态。 时钟发生器实质上是一个时钟发生器实质上是一个2 2分频的触发器,其输入来自振荡器,输出分频的触发器,其输入来自振荡器,输出为为2 2相时钟信号,即状态时钟信号,其频率为相时钟信号,即状态时钟信号,其频率为fosc/2fosc/2;状态时钟;状态时钟3 3分频后分频后为为ALEALE信号,其频率为信号,其频率为fosc/6fosc/6;状态时钟;状态时钟6 6分频后为机器周期,其频率为分频后为机器周期,其频率为fosc/12(OSCfosc/12(OSC是是osillatorosillator的缩写的缩写) )。 181.内部时钟方式内部时钟方式的时钟电路MCS-51MCS-

24、51XTALXTAL1 1XTALXTAL2 2V VssssC1、C2为20pF100pFfosc为1.2MHz12MHz19一、HMOS型单片机外部时钟输入接线图8051VCCXTAL2XTAL1外部振荡器信号源TTL门Vss10K2.外部时钟方式20二、二、CHMOSCHMOS型单片机的外部脉冲源接入方法型单片机的外部脉冲源接入方法XTAL2XTAL1悬空悬空NCCMOS门电路门电路外部振荡外部振荡器信号源器信号源Vss对于对于80C5180C51单片机而言,这时外部脉冲信号是经单片机而言,这时外部脉冲信号是经XTAL1XTAL1引脚注引脚注入,而入,而XTAL2XTAL2引脚悬空,对外

25、部信号的占空比没有要求,引脚悬空,对外部信号的占空比没有要求,但高低电平持续的时间不能短于但高低电平持续的时间不能短于20ns20ns。这种方式常用于。这种方式常用于多块芯片同时工作,这样便于同步。多块芯片同时工作,这样便于同步。21表表2.2 单片机外部时钟接法表单片机外部时钟接法表芯片类型芯片类型XTAL1XTAL2HMOS型型接地接地接片外振荡脉冲输入端接片外振荡脉冲输入端(带上拉电带上拉电阻阻)CHMOS型型接片外振荡脉冲输入端接片外振荡脉冲输入端(带上拉电带上拉电阻阻)悬浮悬浮接接 法法222.2.2 2.2.2 指令周期、机器周期、节拍和状态指令周期、机器周期、节拍和状态 所谓时序

26、,是指在执行指令过程中,所谓时序,是指在执行指令过程中,CPUCPU的控制器所发的控制器所发出的一系列特定的控制信号在时间上的相互关系。出的一系列特定的控制信号在时间上的相互关系。 1. 1.节拍节拍:振荡脉冲的周期振荡脉冲的周期(晶振周期)定义为节拍(用(晶振周期)定义为节拍(用“P”“P”表示)。表示)。 2.2.状态状态:振荡脉冲经过两分频后,就是单片机的时钟信振荡脉冲经过两分频后,就是单片机的时钟信号,把号,把时钟信号的周期时钟信号的周期定义为状态(用定义为状态(用“S”“S”来表示)。这来表示)。这样,一个状态包含两个节拍,前半周期为节拍样,一个状态包含两个节拍,前半周期为节拍1 1

27、(P1P1),后),后半周期为节拍半周期为节拍2 2(P2P2)。)。 3. 3.机器周期:机器周期: CPUCPU完成一种基本操作所需要的时间称为完成一种基本操作所需要的时间称为机器周期机器周期TcyTcy。规定。规定一个机器周期为一个机器周期为6 6个状态个状态,相当于,相当于1212个节个节拍,即拍,即1212个振荡脉冲的周期,可分别用个振荡脉冲的周期,可分别用S1S1S6S6来表示状态,来表示状态,S1P1S1P1、S1P2S1P2、S2P1S2P1、S2P2S6P2S2P2S6P2来表示节拍。来表示节拍。 4. 4.指令周期指令周期:执行一条指令所需要的时间称之为指令周期执行一条指令

28、所需要的时间称之为指令周期, ,指令周期以机器周期为单位。指令周期以机器周期为单位。MCS-51的指令可以分为单周的指令可以分为单周期指令、双周期指令和四周期指令三种,它们的执行时间依期指令、双周期指令和四周期指令三种,它们的执行时间依次是次是1个、个、2个和个和4个机器周期。个机器周期。 23单片机各种周期的相互关系 v振荡周期振荡周期=v时钟周期时钟周期=2振荡周期振荡周期=v机器周期机器周期=12振荡周期振荡周期=v指令周期指令周期=若外接晶振为若外接晶振为12MHZ,MCS-51单片机的四个周期单片机的四个周期的具体值为:的具体值为:1/12s;1/6s;1s;14s;242.2.3

29、2.2.3 典型指令的时序典型指令的时序 MCS-51MCS-51单单片片机机共共有有111111条条指指令令,按按指指令令长长度度可可分分为为单单字字节节指指令令(4949条条),双双字字节节指指令令(4545条条)和和三三字字节节指指令令(1717条条)。执执行行这这些些指指令令所所需需的的机机器器周周期数各不相同,分为:期数各不相同,分为: 单字节单机器周期指令单字节单机器周期指令 单字节双机器周期指令单字节双机器周期指令 双字节单机器周期指令双字节单机器周期指令 双字节双机器周期指令双字节双机器周期指令 三字节双机器周期指令三字节双机器周期指令 单字节四机器周期指令单字节四机器周期指令

30、25单字节单周期指令单字节单周期指令例:例:INC A双字节单周期指令双字节单周期指令例:例:ADD A,#DATA单字节双周期指令例:单字节双周期指令例:INC DPTRCPU取指/执行时序26一个机器周期一个机器周期P1 P2P1 P2读操作码(丢弃)读操作码(丢弃)MOVX类指令类指令(单字节双周期指令单字节双周期指令)无取指(无无取指(无ALEALE)地址数据访问外部数据存储器访问外部数据存储器双字节双周期指令双字节双周期指令 例:例:MOV Rn,direct读第二字节操作码读第二字节操作码当当CPU对外部对外部RAM读写时,读写时,ALE不是周不是周期信号期信号27复位操作的作用复

31、位操作的作用 1.复位是复位是单片机的初始化单片机的初始化操作,其目的是使操作,其目的是使CPU及各个寄存器处于一个确定的状态,把及各个寄存器处于一个确定的状态,把PC初始化为初始化为0000H,使单片机从,使单片机从0000H单元单元开始执行程序。在运行中,当单片机的程序开始执行程序。在运行中,当单片机的程序受外界因素干扰陷入死循环或跑飞时,为摆受外界因素干扰陷入死循环或跑飞时,为摆脱困境,可将单片机复位,重新启动。脱困境,可将单片机复位,重新启动。2.复位也可使单片机退出低功耗工作方式而复位也可使单片机退出低功耗工作方式而进入正常工作状态。进入正常工作状态。 2.3 MCS-512.3 M

32、CS-51单片机的工作方式单片机的工作方式2.3.1 2.3.1 复位方式复位方式28vCPU复位操作不影响片内复位操作不影响片内RAM的内容的内容。上电复位电路上电复位电路 按键复位电路按键复位电路 单片机复位后的特殊功能寄存器初片机复位后的特殊功能寄存器初态特殊功能寄存器特殊功能寄存器初初 态特殊功能寄存器特殊功能寄存器初初 态ACC00HTMOD00HB00HTCON00HPSW00HTH000HSP07HTL000HDPL00HTH100HDPH00HTL100HP0 0P30FFHSCON00HIP00000BSBUF不定不定IE000000BPCON0B复位操作使得引脚复位操作使得

33、引脚ALE和和/PSEN变为无效状态,即变为无效状态,即ALE=0,/PSEN=1。29在在80C5180C51单片机的单片机的RSTRST引脚上输入高电平并至少保引脚上输入高电平并至少保持两个机器周期(即持两个机器周期(即2424个振荡周期)以上时,复个振荡周期)以上时,复位过程即可完成。如果位过程即可完成。如果RSTRST引脚持续保持高电平,引脚持续保持高电平,单片机就处于循环复位状态。单片机就处于循环复位状态。RSTRST变为低电平后,变为低电平后,退出复位状态。退出复位状态。302.复位电路复位操作通常有两种基本形式:复位操作通常有两种基本形式:上电自动复位上电自动复位、手动按键复位手

34、动按键复位。上电自动复位操作要求接通电源后自动实现复上电自动复位操作要求接通电源后自动实现复位操作。位操作。31按键手动复位按键手动复位,要求在电源接通的条件下,在单片机运行期间,用按钮,要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位有开关操作使单片机复位有电平方式电平方式和和脉冲方式脉冲方式两种。两种。 电平方式电平方式 脉冲方式脉冲方式323、系统复位RSTCPU至其它至其它I/O电路复位端电路复位端+5V332.3.22.3.2程序执行方式程序执行方式 单片机上电复位后单片机上电复位后, ,从程序存储器的从程序存储器的OOOOHOOOOH单元开始执单元开始执行程序行

35、程序, ,程序执行方式是单片机的基本工作方式。程序执行方式是单片机的基本工作方式。 通常在通常在OOOOHOOOOH单元存放一条无条件转移指令。单元存放一条无条件转移指令。2.3.32.3.3掉电保护方式掉电保护方式 MCS-51MCS-51单片机设置有掉电保护措施,其保护措施是单片机设置有掉电保护措施,其保护措施是: :单单片机系统在运行中突然掉电故障时,先保存重要的数据片机系统在运行中突然掉电故障时,先保存重要的数据(“(“掉电中断掉电中断”)”),然后启用备用电源维持供电。,然后启用备用电源维持供电。34 2.3.4 CHMOS2.3.4 CHMOS工艺的工艺的MCS-51MCS-51单

36、片机的低功耗方式单片机的低功耗方式 80C5180C51单片机有两种功耗节电方式:待机方式(单片机有两种功耗节电方式:待机方式(idle idle modemode)和掉电方式()和掉电方式(power down modepower down mode)。待机方式和掉)。待机方式和掉电方式都是由特殊功能寄存器中的专用控制寄存器电方式都是由特殊功能寄存器中的专用控制寄存器PCONPCON的的有关控制位来控制的,下图为两种节电方式的工作原理图。有关控制位来控制的,下图为两种节电方式的工作原理图。35专用控制寄器专用控制寄器PCONPCON不可位寻址,字节地址为不可位寻址,字节地址为87H87H,其

37、每位的定义如下:,其每位的定义如下:SMOD SMOD 波特率倍增位,在串行通信中应用。波特率倍增位,在串行通信中应用。/ / 保留位。保留位。GF0 ,GF1GF0 ,GF1用户通用标志,描述中断是来自正常运行还是来自用户通用标志,描述中断是来自正常运行还是来自 空闲方式,用户可通过指令设定它们的状态。空闲方式,用户可通过指令设定它们的状态。 。PD PD 掉电方式控制位,掉电方式控制位,PD=1PD=1,单片机进入掉电方式。,单片机进入掉电方式。IDL IDL 空闲方式控制位,空闲方式控制位,IDL=1IDL=1,单片机进入待机方式。,单片机进入待机方式。36 待机(休闲)方式待机(休闲)

38、方式 待机(休闲)状态待机(休闲)状态退出退出 产生中断;(中断服务程序中写产生中断;(中断服务程序中写RETI指令)指令) 复位。复位。 待机(休闲)方式待机(休闲)方式状态状态片内时钟仅向中断源提供,其余被阻断;片内时钟仅向中断源提供,其余被阻断; PC、特殊功能寄存器和片内、特殊功能寄存器和片内RAM状态保持不变;状态保持不变; I/O引脚端口值保持原逻辑值;引脚端口值保持原逻辑值; ALE保持逻辑高电平;保持逻辑高电平; CPU不工作,但中断功能继续存在。不工作,但中断功能继续存在。 待机(休闲)状态待机(休闲)状态进入进入 只要执行一条使只要执行一条使PCON中中IDL位置位置1的指

39、令。的指令。 Eg:MOV PCON,#01H :IDL一137 掉电保护方式掉电保护方式 掉电保护状态掉电保护状态退出退出 掉电保护方式掉电保护方式状态状态片内振荡器停振,所有功能部件停止工作;片内振荡器停振,所有功能部件停止工作;片内片内RAM数据信息保存不变;数据信息保存不变; ALE、PSEN为低电平;为低电平; Vcc可降至可降至2V,但不能真正掉电。,但不能真正掉电。 掉电保护状态掉电保护状态进入进入只要执行一条使只要执行一条使PCON中中PD位置位置1的指令。的指令。Eg:MOV PCON,#02H :PD-1 唯一方法是硬件复位,复位后片内唯一方法是硬件复位,复位后片内RAMR

40、AM数数据不变,特殊功能寄存器内容按复位状态据不变,特殊功能寄存器内容按复位状态初始化。初始化。382.4 MCS-512.4 MCS-51单片机的内部存储器单片机的内部存储器 2.4.1 MCS-51单片机系统的存储器结构特点单片机系统的存储器结构特点 1. 与微机中不同,与微机中不同,MCS-51单片机中存放程单片机中存放程序的序的程序存储器程序存储器和存放数据的和存放数据的数据存储器,在数据存储器,在物理空间上是相互的独立物理空间上是相互的独立哈佛结构。哈佛结构。 2. MCS-51单片机的存储器有内外之分,其单片机的存储器有内外之分,其地址空间、存取指令和控制信号均各有一套。地址空间、

41、存取指令和控制信号均各有一套。 39MCS-51的内存结构的内存结构程程序序存存储储器器ROM数数据据存存储储器器RAM40片外片外RAM片片内内RAM存存储器器片外片外ROM片片内内ROM在物理上分为在物理上分为4个空间个空间4112345678910111213142827262524232221 201918171615EPROM276412345678910111213142827262524232221 201918171615EPROM27641234567891011128192040393837363534333232524242221123456789101112131428

42、27262524232221 201918171615RAM6264 12345678910111213142827262524232221 201918171615RAM6264 80318751805189C51片内片内片内片内RAMRAM片内片内片内片内ROMROM256B(字节)4KB64K64K42MOVCTitle2MOVMOVXRAM(片片内内)逻辑上分为;3个空间存储器逻辑上分为存储器逻辑上分为3个空间个空间RAM(片外片外)ROM(片片内内、外、外)统一编址统一编址(0000HFFFFH)(00HFFH)(0000HFFFFH)控制信号是控制信号是PSEN和和EA控制信号是控

43、制信号是P3口中的口中的RD和和WR。4380518051单片机存储器地址空间单片机存储器地址空间442.4.2 程序存储器程序存储器v 程序存储器(程序存储器(P Program memory)主要用)主要用于存放经调试正确的应用程序和常数表格。于存放经调试正确的应用程序和常数表格。由于由于MCS-51系列单片机采用系列单片机采用16位的程序计位的程序计数器数器PC和和16位的地址总线,因而程序存储器位的地址总线,因而程序存储器可扩展的地址空间为可扩展的地址空间为64KB,并且这,并且这64KB地地址在空间分布范围上是连续和统一的。址在空间分布范围上是连续和统一的。451.程序存储器的分类

44、v单片机应用系统中的程序存储器一般用半导体只单片机应用系统中的程序存储器一般用半导体只读存储器即读存储器即ROM(Read Only Memory)。这种存储)。这种存储器在计算机运行时只能对其执行读操作,即使整机掉器在计算机运行时只能对其执行读操作,即使整机掉电后存于其中的信息也不会丢失,显然适合于存放用电后存于其中的信息也不会丢失,显然适合于存放用户程序、常数和表格等。户程序、常数和表格等。v(1)Mask ROM (1)Mask ROM 型型:掩膜:掩膜ROMROM。其编程只能由制造。其编程只能由制造商通过半导体掩膜技术完成,用户无法改写,所以对商通过半导体掩膜技术完成,用户无法改写,所

45、以对用户而言,它是严格意义的只读存储器。如用户而言,它是严格意义的只读存储器。如80518051中的中的4KB4KB程序存储器就是这一种,这种程序存储器就是这一种,这种ROMROM适用于有固定程适用于有固定程序且大批量生产的产品中。序且大批量生产的产品中。46(2)OTPROM型 一一次次可可编编程程ROM(One Time Programmable ROM)。用用户户可可通通过过专专门门设设备备对对其其一一次次性性写写入入程程序序,此此后后便便不不能能改改写写。这这种种程程序序存存储储器器可可靠靠性性很很高高,适适合合于于存存放放已已调调试试成成功功的的用用户户程程序序,投投入入规规模模生生

46、产产,但但调调试试阶阶段段不不宜宜用用。目目前前,国国内内外外有有很很多多单单片片机机制制选选商商提提供供片片内内集集有有OTPROM的的单单片片机机产产品品,可可供供用用户户选选择择,如如intel 87c196mc 。47(3)EPROM型 可可 擦擦 除除 可可 编编 程程 ROM( Erasable Programmable Rom), ,其其典典型型外外观观标标志志是是芯芯片片上上有有一一个个紫紫外外线线擦擦除除窗窗口口。这这种种存存储储器器编编程程使使用用一一定定的的直直流流电电源源(如如+21V电电压压),而而擦擦除除则则用用紫紫外外线线灯灯光光照照射射芯芯片片窗窗口口(一一般般

47、需需1530分分钟钟),重重新新编编程程后后用用不不透透明明标标签签将将窗窗口口贴贴覆覆遮遮盖盖住住即即可可。目目前前仍仍有有许许多多用用户户在在单单片片机机产产品品开开发发中中使使用用此此类类器器件件,但但由由于于这这种种器器件件不不是是本本质质非非常常易易失失器器件件(阳阳光光或或日日光光灯灯照照射射时时间间足足够够长长也也会会擦擦除除程程序序),编编程程电电压压要要求求高高,且且编编程程时时间间长长等等原原因因,应应用用范范围围正正在在萎萎缩缩,相相信信不不久久即即会会被被新新型型器器件件替替代代。MCS-51系系列列单单片片机机8751的的片片内内ROM以以及及27系系列列存存储储器器

48、芯芯片片都都属属于于此类产品。此类产品。 48(4)E2PROM型 电电可可擦擦除除可可编编程程ROM(Electrically Erasable Programmable ROM)。较较新新型型只只读读存存储储器器,编编程程速速度度较较快快且且可可在在线线改改写写,擦擦除除、写写入入和和读读出出电电压压均均为为+5V。28系列存储器属于此类产品。系列存储器属于此类产品。49(5)Flash ROM型 闪速只读存储器闪速只读存储器: :是最新型的半导体只读存储器,其集是最新型的半导体只读存储器,其集成度、速度和易用性等远非传统成度、速度和易用性等远非传统ROM可比。在可比。在+5V电源下,电源

49、下,改写时无需擦除操作,高端产品擦写速度可达改写时无需擦除操作,高端产品擦写速度可达ns级,已进级,已进入推广阶段。如入推广阶段。如ATMEL公司的公司的AT89系列单片机中均集有容系列单片机中均集有容量不等的量不等的Flash ROM,是产品开发用的理想机种。其唯一,是产品开发用的理想机种。其唯一的缺点是可靠性尚需提高,若设计调试时用的缺点是可靠性尚需提高,若设计调试时用Flash ROM型型产品,投入生产时改用产品,投入生产时改用OTPROM型,在目前应是最佳选择。型,在目前应是最佳选择。专门的专门的Flash ROM器件,有器件,有93系列等。很多大规模可编程系列等。很多大规模可编程逻辑

50、器件(如逻辑器件(如CPLD)在存储性质上与)在存储性质上与Flash ROM一致。一致。 50 MCS51片片内内程程序序存存储储器器为为固固定定的的只只读读存存储储器器ROM。如如8051中中含含有有4KB容容量量的的掩掩膜膜ROM,8751中中含含有有4KB容容量量的的EPROM,89C51中中含含有有4KB容容量量的的Flash ROM。而而8031/8032中中不不设设程程序序存存储储器器,这这种种单单片片机机在在供供应应状状态态上上称称为为ROM Less型器件,使用过程中必须外扩型器件,使用过程中必须外扩ROM。2. MCS51的程序存储器的程序存储器51程序程序存储器存储器00

51、00H0001H0002H(PC)中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断外部中断0定时器定时器0中断中断外部中断外部中断1定时器定时器1中断中断串行口中断串行口中断8位位0FFFH0FFEH内部外部0000HFFFFH(64K)0000H0FFFH(4K)EA=1 EA=0EA=1 EA=0程序程序存储器资源分布存储器资源分布中断入口地址引脚接为高电平时,引脚接为高电平时,CPU可访问内部和外部可访问内部和外部ROM,并且,并且程序自片内程序存储器开始执行,程序自片内程序存储器开始执行,PC值超出片内值超出片内ROM容容量时,会自动转

52、向片外程序存储器中的程序。量时,会自动转向片外程序存储器中的程序。52程序存储器的程序存储器的0000H0000H002AH002AH共共4343个单元用作存储特定个单元用作存储特定程序的入口地址。程序的入口地址。存储器单元存储器单元保留单元目的保留单元目的0000H0002H复位后初始化引导程序复位后初始化引导程序0003H000AH外部中断外部中断0中断服务程序入口地址区中断服务程序入口地址区000BH0012H定时器定时器0溢出中断服务程序入口地址区溢出中断服务程序入口地址区0013H001AH外部中断外部中断1中断服务程序入口地址区中断服务程序入口地址区001BH0022H定时器定时器

53、1溢出中断服务程序入口地址区溢出中断服务程序入口地址区0023H002AH串行端口中断服务程序入口地址区串行端口中断服务程序入口地址区002BH定时器定时器2溢出中断(溢出中断(8052)服务程序入口地址区)服务程序入口地址区53单片机单片机锁存器锁存器74LS373P0.0-P0.7ALEPSENP2.0-P2.48D8QOEA8-A12A0-A7D0-D7GEAOECEEPROMEPROM54l读读外外ROMROM的过程:的过程: CPUCPU从从PCPC( (程序计数器程序计数器) )中取出当前中取出当前ROMROM的的1616位位地址,分别由地址,分别由P0P0口(低口(低8 8位)位

54、)和和P2P2口(高口(高8 8位)位)同同时输出,时输出,ALEALE信号有效时由地址锁存器锁存低信号有效时由地址锁存器锁存低8 8位位地址信号,地址锁存器输出的低地址信号,地址锁存器输出的低8 8位地址信号和位地址信号和P2P2口输出的高口输出的高8 8位地址信号同时加到外位地址信号同时加到外ROM 16ROM 16位地址位地址输入端,输入端,当当PSENPSEN信号有效时信号有效时,外,外ROMROM将相应地址存将相应地址存储单元中的数据送至数据总线(储单元中的数据送至数据总线(P0P0口),口),CPUCPU读入读入后存入指定单元。后存入指定单元。552.4.3 2.4.3 数据存储器

55、数据存储器 MCS-51 MCS-51单片机数据存储器是单片机数据存储器是RAMRAM型存储器,用于存放运型存储器,用于存放运算的中间结果、暂存数据和缓冲、标志位等。算的中间结果、暂存数据和缓冲、标志位等。 MCS-51 MCS-51的的RAMRAM存储器有片内和片外之分:存储器有片内和片外之分:v片内片内RAM 256RAM 256字节(字节(00HFFH00HFFH)v片外片外RAMRAM共有共有64K64K字节(字节(0000HFFFFH0000HFFFFH)MCS-51 RAMMCS-51 RAM的实际存储容量是的实际存储容量是超过超过64KB64KB的,片内、外的的,片内、外的000

56、0H00FFH0000H00FFH是重叠的,通过指令区分片内、外是重叠的,通过指令区分片内、外RAMRAM空间。空间。MOVMOV指令用于指令用于片内片内RAMRAM的寻址的寻址MOVXMOVX指令用于指令用于片外片外64KBRAM64KBRAM的寻址的寻址一般情况下,只有在内一般情况下,只有在内RAM不能满足应用要求时,才外接不能满足应用要求时,才外接RAM。 56一、片外数据存储器一、片外数据存储器v外部数据存储器一般外部数据存储器一般用来存放相对来讲是用不太频繁的数用来存放相对来讲是用不太频繁的数据,据,其中的数据不能直接进行处理,要进行处理前必须提其中的数据不能直接进行处理,要进行处理

57、前必须提前从外部数据存储器送到单片机内部。前从外部数据存储器送到单片机内部。v外部数据存储器地址空间寻址范围为外部数据存储器地址空间寻址范围为64KB,采用采用R0、R1或或DPTR寄存器间址方式访问。当采用寄存器间址方式访问。当采用R0、R1间间址时只能访问址时只能访问00H0FFH的低的低256字节,采用字节,采用DPTR间址可间址可访问整个访问整个64K字节空间。字节空间。高高8位位DPH经经P2口输出口输出低低8位位DPL经经P0口输出口输出v在片外数据存储器中,数据区和扩展的在片外数据存储器中,数据区和扩展的I/O口是统一编址的,口是统一编址的,使用的指令也完全相同,因此,用户在应用

58、系统设计时,使用的指令也完全相同,因此,用户在应用系统设计时,必须合理地进行外部必须合理地进行外部RAM和和I/O端口的地址分配,并保证译端口的地址分配,并保证译码的唯一性。码的唯一性。57 外外RAM 16RAM 16位地址分别由位地址分别由P0P0口(低口(低8 8位)和位)和P2P2口口(高(高8 8位)同时输出,位)同时输出,ALEALE信号有效时由地址锁存器信号有效时由地址锁存器锁存低锁存低8 8位地址信号,地址锁存器输出的低位地址信号,地址锁存器输出的低8 8位地址位地址信号和信号和P2P2口输出的高口输出的高8 8位地址信号同时加到外位地址信号同时加到外RAM RAM 1616位

59、地址输入端,当位地址输入端,当RDRD信号有效时,外信号有效时,外RAMRAM将相应将相应地址存储单元中的数据送至数据总线(地址存储单元中的数据送至数据总线(P0P0口),口),CPUCPU读入后存入指定单元。读入后存入指定单元。l读外读外RAMRAM的过程的过程: l写写外外RAMRAM的过程的过程: 写外写外RAMRAM的过程与读外的过程与读外RAMRAM的过程相同。只是控制的过程相同。只是控制信号不同,信号换成信号不同,信号换成WRWR信号。当信号。当WRWR信号有效时,信号有效时,将数据总线(将数据总线(P0P0口分时传送)上的数据写入外口分时传送)上的数据写入外RAMRAM相相应地址

60、存储单元中。应地址存储单元中。 58 二、片内数据存储器二、片内数据存储器 MCS-51单片机的内部数据存储器空间共计单片机的内部数据存储器空间共计256字节,在功能上有具体分为字节,在功能上有具体分为片内数据存储器与特片内数据存储器与特殊功能寄存器区殊功能寄存器区,它们统一编址,其中片内数据存储,它们统一编址,其中片内数据存储器共有器共有128个字节,是真正的个字节,是真正的RAM区,占用区,占用00H7FH地址范围,特殊功能寄存器区地址范围,特殊功能寄存器区128B,占用占用80H0FFH这段空间。这段空间。v片内数据存储器从功能和用途上分成:片内数据存储器从功能和用途上分成: 1、工作寄

61、存器区、工作寄存器区 2、可位寻址区、可位寻址区 3、通用、通用RAM区区 4、特殊功能寄存器区、特殊功能寄存器区59 00H20H2FH7FH1FH30H80H0FFH特殊功能特殊功能寄存器区寄存器区 通用通用RAM区区位寻址区位寻址区 工作寄存器区工作寄存器区MCS-51单片机的内部数据存储器空间单片机的内部数据存储器空间6000H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH通用通用RAM区区位寻址区位寻址区工作寄存器区工作寄存器区R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器区工作寄存器

62、区3工作寄存器区工作寄存器区2工作寄存器区工作寄存器区1工工作作寄寄存存器器区区00FH10H17H18H 作用作用:有专用于工作寄存器操作的指令,读写速度比一般内有专用于工作寄存器操作的指令,读写速度比一般内RAM要快,指令字节比一般直接寻址指令要短,还具有间址功能,要快,指令字节比一般直接寻址指令要短,还具有间址功能,能给编程和应用带来方便能给编程和应用带来方便 SFR1.工作寄存器区工作寄存器区(00H1FH)61表表2.4 工作寄存器组的选择表工作寄存器组的选择表PSW.4(RS1)PSW.3(RS0)当前使用的工作当前使用的工作寄存器组(寄存器组(R0R7地址)地址)000组组(00

63、H07H)011组组(08H0FH)102组组(10H17H)113组组(18H1FH)在程序运行时,只允许有一个工作寄存器组工作,把这组工作寄存器称为当前工作在程序运行时,只允许有一个工作寄存器组工作,把这组工作寄存器称为当前工作寄存器组,所以每组之间不会因为名称相同而混淆出错。寄存器组,所以每组之间不会因为名称相同而混淆出错。可通过对特殊功能寄存器中的可通过对特殊功能寄存器中的程序状态字寄存器程序状态字寄存器PSW的的D4、D3位位(RS1、RS0)的状的状态态设置设置,来选择哪一组工作寄存器作为来选择哪一组工作寄存器作为当前工作寄存器组当前工作寄存器组。若程序中不需要。若程序中不需要4组

64、,那组,那么其余可用作一般么其余可用作一般RAM单元。单元。 单片机复位时,当前工作寄存器默认为单片机复位时,当前工作寄存器默认为0组。组。62 2. 2. 位寻址区位寻址区注意注意:低:低128BRAM和位寻址区地址都为和位寻址区地址都为00H7FH.区分方法区分方法:位操作位操作指令指令中的地址是位地址中的地址是位地址; 字节操作字节操作指令指令中的地址是字节地址。中的地址是字节地址。片内片内RAMRAM中有中有128128个可按位寻址的位。个可按位寻址的位。作用:作用: 存放各种标志位信息和位数据存放各种标志位信息和位数据 位地址位地址:00H7FH :00H7FH ,分布在分布在20H

65、2FH20H2FH单元单元, ,每一位每一位均有一个位地址,可位寻址、位操作。即按位地址均有一个位地址,可位寻址、位操作。即按位地址对该位进行对该位进行置置1、清清0、求反求反或或判转判转。 位地址的表示形式:位地址的表示形式:表中位地址表中位地址形式,形式,如如03H单元地址单元地址位序位序形式,形式,如如20H.363位寻址区的位地址映象表位寻址区的位地址映象表 字节字节地址地址位位 地地 址址D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D02FH2FH7FH7FH7EH7EH7DH7DH7CH7CH7BH7BH7AH7AH79H79H78H78H2EH2EH77H77H7

66、6H76H75H75H74H74H73H73H72H72H71H71H70H70H2DH2DH6FH6FH6EH6EH6DH6DH6CH6CH6BH6BH6AH6AH69H69H68H68H2CH2CH67H67H66H66H65H65H64H64H63H63H62H62H61H61H60H60H2BH2BH5FH5FH5EH5EH5DH5DH5CH5CH5BH5BH5AH5AH59H59H58H58H2AH2AH57H57H56H56H55H55H54H54H53H53H52H52H51H51H50H50H29H29H4FH4FH4EH4EH4DH4DH4CH4CH4BH4BH4AH4AH4

67、9H49H48H48H28H28H47H47H46H46H45H45H44H44H43H43H42H42H41H41H40H40H27H27H3FH3FH3EH3EH3DH3DH3CH3CH3BH3BH3AH3AH39H39H38H38H26H26H37H37H36H36H35H35H34H34H33H33H32H32H31H31H30H30H25H25H2FH2FH2EH2EH2DH2DH2CH2CH2BH2BH2AH2AH29H29H28H28H24H24H27H27H26H26H25H25H24H24H23H23H22H22H21H21H20H20H23H23H1FH1FH1EH1EH1

68、DH1DH1CH1CH1BH1BH1AH1AH19H19H18H18H22H22H17H17H16H16H15H15H14H14H13H13H12H12H11H11H10H10H21H21H0FH0FH0EH0EH0DH0DH0CH0CH0BH0BH0AH0AH09H09H08H08H20H20H07H07H06H06H05H05H04H04H03H03H02H02H01H01H00H00H64v例如:SETB 10H ;将10H位置1, 即将22H 单元的D0位置1。v又如:MOV 32H,C ;32H进位位Cv ORL C ,32H ;CC32H65 3.3.堆栈和数据缓冲区(用户区)堆栈

69、和数据缓冲区(用户区)v 地址为地址为30H7FHv用户区共有用户区共有80个单元,个单元,用于存放用户数据用于存放用户数据或作堆栈区使用。或作堆栈区使用。v该区域中的单元只能用直接寻址、寄存器该区域中的单元只能用直接寻址、寄存器间接寻址等方式间接寻址等方式按按字节字节存取,存取,而不可位寻而不可位寻址。址。 66堆栈及其存储特性堆栈及其存储特性v堆栈堆栈的概念的概念在在片内片内RAM中,常常要指定一个专门的区域来存放某些特别的数中,常常要指定一个专门的区域来存放某些特别的数据据,它遵循它遵循顺序存取和后进先出顺序存取和后进先出(LIFO/FILO)的原则)的原则,这个这个RAM区叫区叫堆栈堆

70、栈。v作用:作用: 1 1)子程序调用和中断服务时)子程序调用和中断服务时CPUCPU自动将当前自动将当前PCPC值压栈保值压栈保存,返回时自动将存,返回时自动将PCPC值弹栈。值弹栈。 2 2)保护现场)保护现场/ /恢复现场恢复现场 3 3)数据传输)数据传输v堆栈的生成有两种情况堆栈的生成有两种情况,从低地址向高地址方向写入数据从低地址向高地址方向写入数据生成生成的堆栈称为的堆栈称为向上生长型堆栈向上生长型堆栈,反之称为向下生长型堆栈,反之称为向下生长型堆栈,MCS-MCS-5151单片机属于向上生长型堆栈(即向高地址方向生成)。单片机属于向上生长型堆栈(即向高地址方向生成)。67v数据

71、写入堆栈为插入运算(数据写入堆栈为插入运算(PUSHPUSH),通常称为入栈,数据从堆),通常称为入栈,数据从堆栈中读出为删除运算(栈中读出为删除运算(POPPOP),通常称为),通常称为出栈出栈,按堆栈的规定,按堆栈的规定,入栈和出栈只能在栈顶一端进行。入栈和出栈只能在栈顶一端进行。 vMCS-51MCS-51单片机中,用一个称为堆栈指针单片机中,用一个称为堆栈指针SPSP(Stack Pointer)的的特殊功能寄存器来特殊功能寄存器来给出栈顶存储单元的地址给出栈顶存储单元的地址,堆栈指针堆栈指针SPSP中存中存储的总是堆栈栈顶存储单元的地址储的总是堆栈栈顶存储单元的地址,即堆栈指针,即堆

72、栈指针SPSP总是指向堆总是指向堆栈栈顶栈栈顶。v对于向上生长型堆栈,对于向上生长型堆栈,入栈操作规则为:入栈操作规则为:先先SPSP中的内容加中的内容加1 1,后,后写入数据;写入数据;出栈操作规则为:出栈操作规则为:先读出数据,后先读出数据,后SPSP中的内容减中的内容减1 1。v堆栈操作分自动方式和指令方式。自动方式是在调用子程序或堆栈操作分自动方式和指令方式。自动方式是在调用子程序或发生中断时发生中断时CPU自动将断口地址存入或者取出;指令方式是使自动将断口地址存入或者取出;指令方式是使用进出栈指令进行操作。用进出栈指令进行操作。68v堆栈区可以安排在堆栈区可以安排在 RAM RAM区

73、任意位置,一般不安排在工作寄存器区和可区任意位置,一般不安排在工作寄存器区和可按位寻址的按位寻址的RAMRAM区,通常区,通常放在放在RAM区的靠后的位置区的靠后的位置。系统系统复位后复位后,SPSP中的内容为中的内容为07H07H,在程序设计中,常用指令对,在程序设计中,常用指令对SPSP的复位值进行修改,将的复位值进行修改,将堆栈开辟在通用堆栈开辟在通用RAMRAM区区。 00H20H2FH7FH1FH30H80H0FFH特殊功能寄存器特殊功能寄存器区区普通普通RAM区区位寻址区位寻址区 工作寄存器区工作寄存器区初始初始SPSP栈顶栈顶数数据据出栈出栈SP-1指指向向新新的的栈栈顶顶,即即

74、下下一一个个要要出栈的数据出栈的数据 89H栈底栈底SPSP入栈过程入栈过程PUSH ACC栈底栈底出栈过程出栈过程POP ACCSP89HSP 89HAA 89H692.4.4 2.4.4 特殊功能寄存器(特殊功能寄存器(Special Function Registers Special Function Registers 简简称称SFRSFR) 1. 1.在在80518051单片机中设置了单片机中设置了2121个特殊功能寄存器个特殊功能寄存器, ,它们不连续地分布在它们不连续地分布在地址为地址为80H-FFH80H-FFH的的128128个字节的存储空间中。个字节的存储空间中。v用户可

75、以对用户可以对SFRSFR进行进行字节字节存取:存取: 使用物理地址:如累加器使用物理地址:如累加器A A用用E0HE0H,B B用用F0HF0H 使用寄存器标号:如累加器使用寄存器标号:如累加器A A用用AccAcc,B B用用B B 2. 2.在这在这2121个个SFRSFR中,凡是中,凡是字节地址能被字节地址能被8 8整除整除(即(即1616进制的地址码尾数进制的地址码尾数为为0 0或或8 8)的)的1111个个单元均单元均具有位寻址能力具有位寻址能力. . 3.3.有效位地址可用有效位地址可用位地址、位符号、单元地址位地址、位符号、单元地址. .位序和寄存器名位序和寄存器名. .位位序

76、序四种方法来表示,但一般是用四种方法来表示,但一般是用位符号位符号或或寄存器名寄存器名. .位序位序来表示的。来表示的。70特殊功能寄存器特殊功能寄存器字节地址字节地址特殊功能寄存器特殊功能寄存器字节地址字节地址*P0*P080H80H*P1*P190H90HSPSP81H81H*SCON*SCON98H98HDPLDPL82H82HSBUFSBUF99H99HDPHDPH83H83H*P2*P2A0HA0HPCONPCON87H87H*IE*IEA8HA8H*TCON*TCON88H88H*P3*P3B0HB0HTMODTMOD89H89H*IP*IPB8HB8HTL0TL08AH8AH*P

77、SW*PSWD0HD0HTL1TL18BH8BH*ACC*ACCE0HE0HTH0TH08CH8CH*B*BF0HF0HTH1TH18DH8DH说明:带说明:带*号的寄存器可位寻址。与号的寄存器可位寻址。与内部内部RAM地址地址重叠,但寻址方式不同。如重叠,但寻址方式不同。如对内部对内部RAM 81H寻址时,可对寻址时,可对R0送送#81H后,后,MOV A,R0,而对特殊功能寄,而对特殊功能寄存寻址时可直接存寻址时可直接MOV SP,#30H(或或MOV 81H,#30H:不建议采用不建议采用)MCS-51特殊功能寄存器一览表特殊功能寄存器一览表 712121个特殊功能寄存器在各功能机构的分

78、布:个特殊功能寄存器在各功能机构的分布:中央处理器(中央处理器(CPUCPU):):A A、B B、PSWPSW、SPSP、DPTRDPTR(DPHDPH、DPLDPL););并行口:并行口:P0P0、P1P1、P2P2、P3P3;串行口:串行口:SCONSCON、SBUFSBUF、PCONPCON;中断系统:中断系统:IEIE、IPIP;定时定时/ /计数器:计数器:TMODTMOD、TCONTCON、TH0TH0、TL0TL0、TH1TH1、TL1TL1。 72特殊功能寄存器特殊功能寄存器A A、B B、SPSP、PSWPSW、DPTRDPTR(DPHDPH、DPLDPL)介绍:介绍:在应

79、用系统设计尤其是在应用系统设计尤其是软件编程时经常用到软件编程时经常用到CPUCPU的专的专用寄存器组用寄存器组。MCS-51MCS-51的的CPUCPU专用寄存器组包括程序专用寄存器组包括程序计数器计数器PCPC、累加器、累加器ACCACC、寄存器、寄存器B B、程序状态标志寄、程序状态标志寄存器存器PSWPSW、堆栈指针、堆栈指针SPSP和数据地址指针和数据地址指针DPTRDPTR等等6 6个寄个寄存器,存器,除除PCPC外,其余外,其余5 5个寄存器均为可编程可访问个寄存器均为可编程可访问寄存器。寄存器。而而PCPC只能用在查表指令只能用在查表指令MOVCMOVC中,不可直接中,不可直接

80、访问访问。另外,专用寄存器组中只有。另外,专用寄存器组中只有PCPC在物理上是独在物理上是独立的(即立的(即没有与其他器件共同编码的物理地址没有与其他器件共同编码的物理地址),),其余其余5个寄存器个寄存器都有相应的直接地址编码(称字节都有相应的直接地址编码(称字节地址)。地址)。 73 PC不不属属于于特特殊殊功功能能寄寄存存器器,不不可可访访问问,在在物物理理结结构构上上是是独独立立的的。在在MCS-51指指令令系系统统中中有有一一类类基基址址加加变变址址寻寻址址的的指指令令,PC可可用用作作该该类类指指令令的的基基本本地地址址寄存器。寄存器。 PC是一个独立的计数器,用于是一个独立的计数

81、器,用于存放下一条待执行指令的地址存放下一条待执行指令的地址 (当前当前PC值值)。 PC的基本工作方式有:的基本工作方式有: (1)程序计数器程序计数器PC(16位位) 执执行行调调用用子子程程序序或或发发生生中中断断时时,CPUCPU会会自自动动将将当当前前PCPC值值压压入入堆堆栈栈,将将子子程程序序入入口口地地址址或或中中断断入入口口地地址址装装入入PCPC;子子程程序序返返回回或或中中断断返返回回时,恢复原有被压入堆栈的时,恢复原有被压入堆栈的PCPC值,继续执行原顺序程序指令。值,继续执行原顺序程序指令。 自动加自动加1 1。CPUCPU从从ROMROM中每读一个字节,自动执行中每

82、读一个字节,自动执行PC+1PCPC+1PC; 执行转移指令时,执行转移指令时,PCPC会根据该指令要求修改下一次读会根据该指令要求修改下一次读ROMROM新的地址;新的地址;总之:一切分支总之:一切分支/ /跳转跳转/ /调用调用/ /中断中断/ /复位复位 等操作的本质就是等操作的本质就是: :改变改变 PC PC 值值74(2) 累加器累加器ACC(8位):E0Hv(Accumulator):累累加加器器ACC(简简称称A寄寄存存器器或或累累加加器器A)是是一一个个具具有有特特殊殊用用途途的的8位位寄寄存存器器,主主要要用用字字来来存存放放一一个个操操作作数数或或存存放放运运算算的的结结

83、果果。累累加加器器ACC是是CPU中中使使用用最最频频繁繁的的寄寄存存器器,MCS-51指指令令系系统统中中多多数数指指令令的的执行都通过它进行执行都通过它进行。75(3)寄存器寄存器B (8位位):F0Hv 寄存器寄存器B B也是一个也是一个8位位寄存器,寄存器,在乘法和除在乘法和除法运算法运算中用作中用作ALUALU的的输入之一输入之一。乘法乘法运算时,运算时,ALU的两个输入分别为的两个输入分别为A、B,运算结果存放,运算结果存放在在AB寄存器中,其中寄存器中,其中A存放积的低存放积的低8位,位,B B则则存放的存放的积的高积的高8 8位位。除法除法运算时,被除数取自运算时,被除数取自A

84、,除数除数取自取自B B;运算结果商数存于;运算结果商数存于A,而,而余余数数存于存于B B。其它情况下,。其它情况下,B可作为一个工作寄可作为一个工作寄存器使用。存器使用。 76凡凡是是关关系系到到堆堆栈栈操操作作的的场场合合(无无论论是是入入栈栈还还是是出出栈栈),都都需需要要借借助助MCS-51MCS-51的的CPUCPU中中一一个个专专用用8位位寄寄存存器器SPSP来来间间接接指指示示堆堆栈栈中中数数据据存存取取的的位位置置,该该寄寄存存器器被被称称为为堆堆栈栈指指针针。MCS-51MCS-51的的堆堆栈栈是是向向上上生生成成的的(即即向向地地址址增增加加的的方方向向),堆堆栈栈指指针

85、针SPSP的的初初始始值值称称为为栈栈底底。在在堆堆栈栈操操作作过过程程中中,SP始始终终指指向向堆堆栈栈的的栈栈顶顶。需需要要注注意意的的是是,单单片片机机复复位位后后SP的的值值为为07H,因因此此入入栈栈数数据据将将从从08H存存起起,为为了了不不占占用用工工作作寄寄存存器器R0R0R7R7的的地地址址,一一般般在在编编程程时时应应设设置置SPSP的初值(最好在的初值(最好在30H30H7FH7FH区域)区域) (4)堆栈指针堆栈指针SP(8位位):81H77 数数据据指指针针DPTR是是一一个个 16 位位的的专专用用寄寄存存器器, 其其高高位位字字节节寄寄存存器器用用DPH(83H)

86、表表示示、低低位位字字节节寄寄存存器器用用DPL(82H)表表示示。既既可可作作为为一一个个 16 位位寄寄存存器器DPTR来来处处理理, 也也可可作作为为两两个个独独立立的的 8 位位寄寄存存器器DPH和和DPL来来处处理理,压压栈栈时时必必须须分分开操作:开操作:PUSH DPH, PUSH DPL 。 DPTR 主主要要用用来来存存放放 16 位位地地址址,可可通通过过它它访访问问 64 KB外部数据存储器或外部程序存储器空间外部数据存储器或外部程序存储器空间(5) 数据指针寄存器DPTR(16位):82-83H78(6)程序状态字)程序状态字PSW(8位位):D0H它是一个它是一个8位

87、位寄存器,寄存器,用来保存用来保存ALU运算结果的特征。运算结果的特征。PSW的状态可用专门的指令进行测试,也可以用指令读出。的状态可用专门的指令进行测试,也可以用指令读出。 PSW.7 PSW.6 PSW.5 PSW.4 SW.3 PSW.2 PSW.1 PSW.0 CY AC F0 RS1 RS0 OV / P 进位标志进位标志:存放算术运算的进位标志存放算术运算的进位标志和在位操作中作为累加器使用。和在位操作中作为累加器使用。辅助进位标志。当低辅助进位标志。当低4位向高位向高4位进位或借位时,位进位或借位时,AC被硬被硬件置件置“1”,否则被清零。机器在执行,否则被清零。机器在执行“DA

88、 A”指令时指令时自动自动要判断这一位。要判断这一位。 F0(PSW.5):用户标志,可以):用户标志,可以用软件对用软件对F0进行置位或复位。进行置位或复位。 工作寄存器组选择控制位,可用软件设工作寄存器组选择控制位,可用软件设置这两位的状态,来选择对应寄存组。置这两位的状态,来选择对应寄存组。 溢出标志。常用于补码运算。执行算术指令时,由硬件置位或溢出标志。常用于补码运算。执行算术指令时,由硬件置位或清零,以指示溢出状态。清零,以指示溢出状态。OV=1时特指累加器在进行带符号数时特指累加器在进行带符号数(-128+127)运算时出错(超出范围);运算时出错(超出范围);OV=0时未出错。时

89、未出错。P(PSW.0):奇偶标志位。用来表:奇偶标志位。用来表示累加器中示累加器中1的个数的奇偶性。的个数的奇偶性。 79v例:设程序执行前例:设程序执行前F0=0,RS1RS0=00,求机器执,求机器执行如下程序行如下程序MOV A,#0FHADD A,#0F8H后,后,PSW中各位的状态是什么?中各位的状态是什么?解:解:CY=1,AC=1,P1,F0、RS1和和RS0由用户设定,由用户设定,加法指令不改变其状态,运算结果加法指令不改变其状态,运算结果=7,故,故OV= =0PSW=1100001C1H802.4.5 2.4.5 位存储器位存储器MCS-51的位存储器分两部分:的位存储器

90、分两部分:1.内部内部RAM中中20H2FH单元单元2.特殊功能寄存器中地址为特殊功能寄存器中地址为8的倍数的的倍数的SFR81特殊功能寄存器位地址映象特殊功能寄存器位地址映象寄存器寄存器D7D6D5D4D3D2D1D0BF7F6F5F4F3F2F1F0ACCE7E6E5E4E3E2E1E0PSWD7/CYD6/ACD5/F0D4/RS1D3/RS0D2/OVD1/F1D0/PIP-BC/PSBB/PT1BA/PX1B9/PT0B8/PX0P3B7B6B5B4B3B2B1B0IEAF/EA-AC/ESAB/ET1AA/EX1A9/ET0A8/EX0P2A7A6A5A4A3A2A1A0SCON9F/SM09E/SM19D/SM29C/REN9B/TB89A/RB899/ TI98/RIP19796959493929190TCON8F/TF18E/TR18D/TF08C/TR08B/IE18A/IT189/IE088/IT0P08786858483828180对位寻址时可使用:对位寻址时可使用:SETB 0AFH 、 SETB EA、 SETB IE.7、 SETB 0A8H.782

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号