第2章-AT89S51单片机的片内硬件结构课件.ppt

上传人:得****1 文档编号:76396925 上传时间:2023-03-10 格式:PPT 页数:116 大小:1.90MB
返回 下载 相关 举报
第2章-AT89S51单片机的片内硬件结构课件.ppt_第1页
第1页 / 共116页
第2章-AT89S51单片机的片内硬件结构课件.ppt_第2页
第2页 / 共116页
点击查看更多>>
资源描述

《第2章-AT89S51单片机的片内硬件结构课件.ppt》由会员分享,可在线阅读,更多相关《第2章-AT89S51单片机的片内硬件结构课件.ppt(116页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1第第2章章AT89S51单片机的硬件结构单片机的硬件结构2内容概要内容概要 本本章章介介绍绍AT89S51单单片片机机的的片片内内硬硬件件结结构。构。片内片内外外设资源源的基本功能及工作原理的基本功能及工作原理片内片内存存储器器结构构常常见的的特殊功能寄存器特殊功能寄存器的基本功能的基本功能复位复位电路路与与时钟电路路的的设计单片机最小系片机最小系统掌掌握握3指令(程序)硬件控制图图2-1AT89S51单片机片内结构单片机片内结构2.1AT89S51单片机的硬件组成单片机的硬件组成AT89S51单片机具有如下外围部件及特性:单片机具有如下外围部件及特性:(1)8位位CPU;(2)数据数据存储

2、器(存储器(128BRAM););(3)程序程序存储器(存储器(4KBFlashROM););(4)4个个8位位可编程可编程并行并行I/O口口(P0口、口、P1口、口、P2口和口和P3口);口);(5)2个个可编程可编程16位定时器位定时器/计数器;计数器;6(6)1个个通用的通用的全双工全双工的的异步收发串行口(异步收发串行口(UART););(7)中断系统中断系统具有具有5个中断源、个中断源、5个中断向量;个中断向量;(8)特殊功能寄存器特殊功能寄存器(SFR)26个;个;(9)1个个看门狗定时器看门狗定时器(WDT););7AT89S51片内的片内的各部件各部件通过片内单一总线连接通过片

3、内单一总线连接而成,其基本而成,其基本结构依旧是结构依旧是CPU加上加上外围芯片外围芯片的传统微型计算机结构模式,但的传统微型计算机结构模式,但CPU对各种外围部件的控制是采用特殊功能寄存器对各种外围部件的控制是采用特殊功能寄存器SFR(SpecialFunctionRegister)的集中控制方式。)的集中控制方式。下面对图下面对图2-1中的片内各部件作简单介绍。中的片内各部件作简单介绍。(1)CPU(微处理器):(微处理器):8位的位的CPU,包括了,包括了运算器运算器和和控制器控制器两两大部分,此外还有面向控制的大部分,此外还有面向控制的位处理位处理和和位控功能。位控功能。(2)数据存储

4、器)数据存储器(RAM):):片内片内为为128B(增强型的增强型的52子系列为子系列为256B),片外最多还可),片外最多还可外扩外扩64KB的数据存储器。的数据存储器。(3)程序存储器)程序存储器(FlashROM):用来存储程序。):用来存储程序。AT89S51片内有片内有4KB的的Flash存储器,若片内程序存储存储器,若片内程序存储器容量不够,片外最多可器容量不够,片外最多可外扩外扩64KB程序存储器。程序存储器。(4)中断系统:)中断系统:具有具有5个中断源,个中断源,2级中断优先权。级中断优先权。(5)定时器)定时器/计数器:计数器:片内有片内有2个个16位位的定时器的定时器/计

5、数器计数器具有具有4种工作方式。种工作方式。(6)串行口:)串行口:1个个全双工的异步串行口(全双工的异步串行口(UART),具),具有有4种工作方式。种工作方式。89(7)4个个8位的并行口:位的并行口:P0口、口、P1口、口、P2口和口和P3口。口。(8)特殊功能寄存器()特殊功能寄存器(SFR):):共有共有26个个特殊功能寄特殊功能寄存器,用于存器,用于CPU对片内各外围部件进行管理、控制和监对片内各外围部件进行管理、控制和监视。特殊功能寄存器实际上是片内视。特殊功能寄存器实际上是片内各外围部件的控制寄各外围部件的控制寄存器和状态寄存器,存器和状态寄存器,这些特殊功能寄存器映射在片内这

6、些特殊功能寄存器映射在片内RAM区的区的80HFFH的地址区间内。的地址区间内。(9)1个看门狗定时器个看门狗定时器WDT,当单片机由于干扰而使,当单片机由于干扰而使程序陷入死循环或跑飞状态时,可引起程序陷入死循环或跑飞状态时,可引起单片机复位,单片机复位,使使程序恢复正常运行。程序恢复正常运行。2.2AT89S51的引脚功能的引脚功能 掌握掌握AT89S51单片机,应首先熟悉并掌握单片机,应首先熟悉并掌握各引脚的功能。各引脚的功能。AT89S51与各种与各种8051单片机的引脚单片机的引脚是互相兼容的。目前,是互相兼容的。目前,AT89S51单片机多采用单片机多采用40只只引脚引脚的塑料的塑

7、料双列直插封装(双列直插封装(DIP)方式,如图方式,如图2-2所所示。示。10图图2-2AT89S51双列直插封装方式的引脚双列直插封装方式的引脚 40只引脚只引脚按功能按功能可可分为分为如下如下3类:类:(1)电源及时钟引脚)电源及时钟引脚VCC、VSS;XTAL1、XTAL2;(2)控制引脚)控制引脚PSEN、ALE/PROG、EA/VPP、RST(即(即RESET););(3)I/O口引脚口引脚P0、P1、P2与与P3,为,为4个个8位并行位并行I/O口的外口的外部引脚。部引脚。下面结合图下面结合图2-2介绍各引脚的功能。介绍各引脚的功能。2.2.1电源及时钟引脚电源及时钟引脚1电源引

8、脚电源引脚(1)VCC(40脚):接脚):接+5V电源。电源。(2)VSS(20脚):接数字地。脚):接数字地。12 2时钟引脚时钟引脚 (1)XTAL1(19脚):脚):片内振荡器的反相放大器和外片内振荡器的反相放大器和外部时钟发生器的输入端。部时钟发生器的输入端。使用片内的振荡器时,使用片内的振荡器时,该引该引脚脚外接石英晶体和微调电容。外接石英晶体和微调电容。当当采用外部的独立时钟采用外部的独立时钟源时,源时,本引脚本引脚接外部时钟振荡器的信号。接外部时钟振荡器的信号。(2)XTAL2(18脚):脚):片内振荡器反相放大器的输出片内振荡器反相放大器的输出端。当端。当使用片内振荡器时,使用

9、片内振荡器时,该引脚该引脚连接外部石英晶体连接外部石英晶体和微调电容。和微调电容。当当使用外部时钟源时,使用外部时钟源时,本引脚本引脚悬空。悬空。13142.2.2控制引脚控制引脚控制引脚控制引脚提供控制信号,提供控制信号,有的引脚还具有复用功能。有的引脚还具有复用功能。(1)RST(RESET,9脚)脚)复位信号输入端,复位信号输入端,高电平有效。高电平有效。在此引脚加上在此引脚加上持续持续时间时间大于大于2个机器周期的高电平,个机器周期的高电平,就可使就可使单片机复位。单片机复位。在在单片机正常工作时,此引脚应为单片机正常工作时,此引脚应为0.5V的低电平。的低电平。当看门狗定时器溢出输出

10、时,该引脚将输出长达当看门狗定时器溢出输出时,该引脚将输出长达96个时钟振荡周期的高电平。个时钟振荡周期的高电平。(2)EA/VPP(EnableAddress/VoltagePulseofPrograming,31脚脚)(ExternalAccessEnable)为该引脚的第一功能:)为该引脚的第一功能:外部程序外部程序存储器访问允许控制端。存储器访问允许控制端。当当EA=1时,在单片机片内的时,在单片机片内的PC值不超出值不超出0FFFH(即(即不超出片内不超出片内4KBFlash存储器的最大地址范围)时,单片机读存储器的最大地址范围)时,单片机读片内程序存储器(片内程序存储器(4KB)中

11、的程序代码,但)中的程序代码,但PC值值超出超出0FFFH(即超出片内(即超出片内4KBFlash存储器地址范围)时,将自存储器地址范围)时,将自动转向动转向读取片外读取片外60KB(1000HFFFFH)程序存储器中的程程序存储器中的程序代码。序代码。1516当当EA=0时,时,只读取外部的程序存储器中的内容,只读取外部的程序存储器中的内容,读取读取的地址范围为的地址范围为0000HFFFFH,片内片内的的4KBFlash程序程序存储器不起作用。存储器不起作用。VPP为该引脚的第二功能,在对片内为该引脚的第二功能,在对片内Flash进行编程进行编程时,时,VPP引脚接入编程电压。引脚接入编程

12、电压。(3)ALE/PROG(AddressLatchEnable/PROGramming,30脚)脚)ALE的第一功能为的第一功能为CPU访问访问外部程序存储器外部程序存储器或或外部数外部数据存储器据存储器提供低提供低8位地址锁存信号,位地址锁存信号,将单片机将单片机P0口发出的口发出的低低8位地址锁存在片外地址锁存器中。位地址锁存在片外地址锁存器中。PROG为该引脚的第二功能,在对片内为该引脚的第二功能,在对片内Flash存储器编程存储器编程时,此引脚作为编程脉冲输入端。时,此引脚作为编程脉冲输入端。17(4)PSEN(ProgramStrobeENable,29脚)脚)片内或片外片内或片

13、外程序存储器程序存储器的的读选通信号,读选通信号,低电平有效。低电平有效。2.2.3并行并行I/O口引脚口引脚(1)P0口:口:P0.7P0.0引脚引脚 漏极开路的漏极开路的双向双向I/O口。口。当当AT89S51扩展外部扩展外部存储器及存储器及I/O接口芯片接口芯片时,时,P0口作为口作为地址总线(低地址总线(低8位)位)及数据总线的分时复用端口。及数据总线的分时复用端口。P0口也可作为通用口也可作为通用I/O口使用,但口使用,但需加上拉电阻,需加上拉电阻,这时为准双向口。这时为准双向口。P0口可口可驱动驱动8个个LS型型TTL负载。负载。19(2)P1口:口:P1.7P1.0引脚引脚准双向

14、准双向I/O口,具有内部上拉电阻,可口,具有内部上拉电阻,可驱动驱动4个个LS型型TTL负载。负载。P1口是完全可提供给用户使用的准双向口是完全可提供给用户使用的准双向I/O口。口。P1.5/MOSI、P1.6/MISO和和P1.7/SCK也可用于对片也可用于对片内内Flash存储器的串行编程和校验,它们分别是串行数据存储器的串行编程和校验,它们分别是串行数据输入、串行数据输出和移位脉冲引脚。输入、串行数据输出和移位脉冲引脚。(3)P2口:口:P2.7P2.0引脚引脚 准双向准双向I/O口,具有内部上拉电阻,可口,具有内部上拉电阻,可驱动驱动4个个LS型型TTL负载。负载。当当AT89S51扩

15、展外部存储器及扩展外部存储器及I/O口时,口时,P2口作口作为为高高8位地址总线位地址总线用,输出高用,输出高8位地址。位地址。P2口也可作为通用的口也可作为通用的I/O口使用。口使用。2021(4)P3口:口:P3.7P3.0准双向准双向I/O口,具有内部上拉电阻。口,具有内部上拉电阻。P3口可作为通用的口可作为通用的I/O口使用,可口使用,可驱动驱动4个个LS型型TTL负载。负载。P3口还可提供第二功能,其第二功能定义如表口还可提供第二功能,其第二功能定义如表2-1所示,读者应熟记。所示,读者应熟记。22 综上所述,综上所述,P0口作为地址总线(低口作为地址总线(低8位)及数据总线使用位)

16、及数据总线使用时,为双向口。作为通用的时,为双向口。作为通用的I/O口使用时,需加上拉电阻,这时为口使用时,需加上拉电阻,这时为准双向口。而准双向口。而P1口、口、P2口、口、P3口均为准双向口。口均为准双向口。双向口双向口P0与与P1口、口、P2口、口、P3口这口这3个准双向口相比,多个准双向口相比,多了一个高阻输入的了一个高阻输入的“悬浮悬浮”态。这是由于态。这是由于P0口作为数据总线使用口作为数据总线使用时,多个数据源都挂在数据总线上,当时,多个数据源都挂在数据总线上,当P0口不需与其他数据源打口不需与其他数据源打交道时,需要与数据总线高阻交道时,需要与数据总线高阻“悬浮悬浮”隔离。而准

17、双向隔离。而准双向I/O口则无口则无高阻的高阻的“悬浮悬浮”状态。另外,状态。另外,准双向口作通用准双向口作通用I/O的输入口使用时,的输入口使用时,一定要向该口先写入一定要向该口先写入“1”。以上的准双向口与双向口的差别,在以上的准双向口与双向口的差别,在学习本章学习本章2.5节的节的P0P3口的内部结构后,将会有更深入的理解。口的内部结构后,将会有更深入的理解。232.3AT89S51的的CPUAT89S51的的CPU是由是由运算器运算器和和控制器控制器构成。构成。2.3.1运算器运算器 运算器主要用来对操作数进行运算器主要用来对操作数进行算术、逻辑和算术、逻辑和位操作运算。位操作运算。算

18、术逻辑运算单元算术逻辑运算单元ALU累加器累加器A位处理器位处理器程序状态字寄存器程序状态字寄存器PSW两个暂存器两个暂存器251算术逻辑运算单元算术逻辑运算单元ALUALU的功能强,不仅可对的功能强,不仅可对8位变量进行逻辑与、或、位变量进行逻辑与、或、异或以及循环、求补和清异或以及循环、求补和清0等操作,还可以进行加、减、等操作,还可以进行加、减、乘、除等基本算术运算。乘、除等基本算术运算。ALU还具有还具有位操作功能,位操作功能,可对可对位(位(bit)变量进行位处理,如置)变量进行位处理,如置“1”、清、清“0”、求补、求补、测试转移及逻辑测试转移及逻辑“与与”、“或或”等操作。等操作

19、。2累加器累加器A 累加器累加器A是是CPU中中使用最频繁使用最频繁的一个的一个8位寄存器。位寄存器。累累加器的作用如下。加器的作用如下。(1)是)是ALU单元的输入数据源之一,单元的输入数据源之一,同时又是同时又是ALU运运算结果的存放单元。算结果的存放单元。(2)CPU中数据传送大多都通过累加器中数据传送大多都通过累加器A,故累加器,故累加器A又相当于又相当于数据的中转站。数据的中转站。为解决累加器结构所带来的为解决累加器结构所带来的“瓶颈瓶颈堵塞堵塞”问题,问题,AT89S51单片机单片机增加了一部分可以不经过累加增加了一部分可以不经过累加器器A的传送指令。的传送指令。累加器累加器A的的

20、进位位进位位Cy(位于程序状态字特殊功能寄存(位于程序状态字特殊功能寄存器器PSW中)是特殊的,因为它同时又是位处理器的中)是特殊的,因为它同时又是位处理器的位累加器。位累加器。26273程序状态字寄存器程序状态字寄存器PSWAT89S51单片机的程序状态字寄存器(单片机的程序状态字寄存器(ProgramStatusWord,PSW)位于单片机片内的特殊功能寄存)位于单片机片内的特殊功能寄存器区,字节地址为器区,字节地址为D0H。PSW的不同位包含了程序运行的不同位包含了程序运行状态的不同信息,其中状态的不同信息,其中4位保存当前指令执行后的状态,位保存当前指令执行后的状态,以供程序查询和判断

21、。以供程序查询和判断。PSW格式见图格式见图2-3。28PSW中各个位的功能如下。中各个位的功能如下。(1)Cy(PSW.7)进位标志位:)进位标志位:也可写为也可写为C。在执行。在执行算术运算和逻辑运算指令时,若算术运算和逻辑运算指令时,若有进位有进位/借位,则借位,则Cy=1;否则,;否则,Cy=0。在位处理器中,它是位累加器。在位处理器中,它是位累加器。(2)Ac(PSW.6)辅助进位标志位:)辅助进位标志位:Ac标志位用于标志位用于在在BCD码运算时进行十进位调整。即在运算时,当码运算时进行十进位调整。即在运算时,当D3位位向向D4位位产生进位或借位时,产生进位或借位时,Ac=1;否则

22、,;否则,Ac=0。2930(3)F0(PSW.5)用户使用的标志位:)用户使用的标志位:可用指令来使可用指令来使它置它置“1”或清或清“0”,也可用指令来测试该标志位,根,也可用指令来测试该标志位,根据测试结果控制程序的流向。编程时,用户应当充分利据测试结果控制程序的流向。编程时,用户应当充分利用该标志位。用该标志位。(4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区组工作寄存器区选择控制位选择控制位1和位和位0:这两位用来选择片内这两位用来选择片内RAM区中的区中的4组工作寄存器区中的某一组为当前工作寄存区,组工作寄存器区中的某一组为当前工作寄存区,RS1、RS0与所选择的与所

23、选择的4组工作寄存器区的对应关系如表组工作寄存器区的对应关系如表2-2所示。所示。(5)OV(PSW.2)溢出标志位:)溢出标志位:当执行算术指令时,当执行算术指令时,OV用来用来指示运算结果是否产生溢出。如果结果产生溢出,指示运算结果是否产生溢出。如果结果产生溢出,OV=1;否则,;否则,OV=0。(6)PSW.1位:保留位,未用。位:保留位,未用。(7)P(PSW.0)奇偶标志位:)奇偶标志位:该标志位表示指令执行完时,该标志位表示指令执行完时,累加器累加器A中中“1”的个数是奇数还是偶数。的个数是奇数还是偶数。P=1,表示,表示A中中“1”的个数为奇数。的个数为奇数。P=0,表示,表示A

24、中中“1”的个数为偶数。的个数为偶数。该标志位对串行口通信中的数据传输有重要的意义。在串行通该标志位对串行口通信中的数据传输有重要的意义。在串行通信中,常用奇偶检验的方法来检验数据串行传输的可靠性。信中,常用奇偶检验的方法来检验数据串行传输的可靠性。32332.3.2控制器控制器控制器的主要任务是控制器的主要任务是识别指令,识别指令,并根据指令的性并根据指令的性质质控制单片机各功能部件,控制单片机各功能部件,从而保证单片机各部分能从而保证单片机各部分能自动协调地工作。自动协调地工作。控制器主要包括控制器主要包括程序计数器、指令寄存器、指令程序计数器、指令寄存器、指令译码器、定时及控制电路等。译

25、码器、定时及控制电路等。其功能是控制指令的读其功能是控制指令的读入、译码和执行,从而对单片机的各功能部件进行定入、译码和执行,从而对单片机的各功能部件进行定时和逻辑控制。时和逻辑控制。程序计数器程序计数器PC是控制器中是控制器中最基本的寄存器,最基本的寄存器,它是它是一个独立的一个独立的16位位计数器,计数器,用户不能直接使用指令对用户不能直接使用指令对PC进行读写。进行读写。当单片机当单片机复位时,复位时,PC中的内容为中的内容为0000H,即即CPU从程序存储器从程序存储器0000H单元取指令,开始执行程单元取指令,开始执行程序。序。PC的基本工作过程是:的基本工作过程是:CPU读取指令时

26、,读取指令时,PC内容内容作为欲读取指令的地址发送给程序存储器,然后程序存作为欲读取指令的地址发送给程序存储器,然后程序存储器按此地址输出指令字节,同时储器按此地址输出指令字节,同时PC自动加自动加1,这也是,这也是为什么为什么PC被称为程序计数器的原因。由于被称为程序计数器的原因。由于PC实质上是实质上是作为程序寄存器的地址指针,所以也称其为作为程序寄存器的地址指针,所以也称其为程序指针。程序指针。PC内容的变化轨迹决定了程序的流程。由于内容的变化轨迹决定了程序的流程。由于PC是是用户不可直接访问的,当顺序执行程序时自动加用户不可直接访问的,当顺序执行程序时自动加1;执;执行转移程序或子程序

27、或中断子程序调用时,由运行的指行转移程序或子程序或中断子程序调用时,由运行的指令自动将其内容更改成所要转移的目的地址。令自动将其内容更改成所要转移的目的地址。3435 程序计数器的计数宽度决定了访问程序存程序计数器的计数宽度决定了访问程序存储器的地址范围。储器的地址范围。AT89S51单片机中的单片机中的PC位数位数为为16位,位,故可对故可对64KB(=216B)的程序存储器)的程序存储器进行寻址。进行寻址。2.4AT89S51单片机存储器的结构单片机存储器的结构AT89S51单片机存储器结构为单片机存储器结构为哈佛结构,哈佛结构,即即程序存储器空间程序存储器空间和和数据存储器空间数据存储器

28、空间是是各自独立各自独立的。的。AT89S51单片机的存储器空间可划分为如下单片机的存储器空间可划分为如下4类。类。1.程序存储器空间程序存储器空间 单片机能够按照一定的次序工作,是由于程序存储器中单片机能够按照一定的次序工作,是由于程序存储器中存放了经调试正确的程序。程序存储器可以分为存放了经调试正确的程序。程序存储器可以分为片内片内和和片外片外两两部分。部分。AT89S51单片机的单片机的片内片内程序存储器为程序存储器为4KB的的Flash存储器,存储器,编程和擦除完全是电气实现,且速度快。可使用编程器对其编编程和擦除完全是电气实现,且速度快。可使用编程器对其编程,也可在线编程。程,也可在

29、线编程。36 当当AT89S51单片机的片内的单片机的片内的4KB的的Flash存储器不够用存储器不够用时,用户可在时,用户可在片外片外可扩展程序存储器,最多可扩展至可扩展程序存储器,最多可扩展至64KB程序程序存储器。存储器。2.数据存储器空间数据存储器空间 数据存储器空间分为数据存储器空间分为片内片内与与片外片外两部分。两部分。AT89S51单片机单片机内部有内部有128B的的RAM(增强型的(增强型的52子系列子系列为为256B),用来),用来存放可读存放可读/写的数据。写的数据。当当AT89S51单片机的片内单片机的片内RAM不够用时,可在不够用时,可在片外片外扩展最多扩展最多64KB

30、的的RAM的能力,究竟扩展多少的能力,究竟扩展多少RAM,由用户根,由用户根据实际需要来定。据实际需要来定。37383.特殊功能寄存器特殊功能寄存器AT89S51单片机片内共有单片机片内共有26个个特殊功能寄存器特殊功能寄存器SFR(SpecialFunctionRegister)。)。SFR实际上是实际上是各外围部件的控制寄存器及各外围部件的控制寄存器及状态寄存器,状态寄存器,综合反映了整个单片机基本系统内部实际的工作综合反映了整个单片机基本系统内部实际的工作状态及工作方式。状态及工作方式。4.位地址空间位地址空间AT89S51单片机内共有单片机内共有211个可寻址位,个可寻址位,构成了位地

31、址空间。构成了位地址空间。它们位于片它们位于片RAM区地址区地址20H2FH(共(共128位)和特殊功能寄存位)和特殊功能寄存器区(片内器区(片内RAM区字节地址区字节地址80HFFH,共计共计83位)。位)。2.4.1程序存储器空间程序存储器空间 程序存储器是只读存储器(程序存储器是只读存储器(ROM),用于),用于存放程序和存放程序和表格表格之类的之类的固定常数。固定常数。AT89S51的片内程序存储器为的片内程序存储器为4KB的的Flash存储器,地址范围为存储器,地址范围为0000H0FFFH。AT89S51单片机有单片机有16位地位地址总线,址总线,可外扩的程序存储器空间最大为可外扩

32、的程序存储器空间最大为64KB,地址范围为,地址范围为0000HFFFFH。有关片内与片外扩展的程序存储器在使用时应有关片内与片外扩展的程序存储器在使用时应注意以下问题:注意以下问题:(1)整个程序存储器空间可分为片内和片外两部分,)整个程序存储器空间可分为片内和片外两部分,CPU究竟是访问片内的还是片外的程序存储器,可由引脚上所接的电究竟是访问片内的还是片外的程序存储器,可由引脚上所接的电平来确定。平来确定。39 当当EA=1,PC值值0FFFH(为片内(为片内4KBFlash存储器的最大存储器的最大地址)时,地址)时,CPU只读取片内的只读取片内的Flash程序存储器中的程序代码,程序存储

33、器中的程序代码,当当PC值值0FFFH会自动转向读取片外程序存储器空间会自动转向读取片外程序存储器空间1000HFFFFH内的程序代码。内的程序代码。当当EA=0,单片机只读取片外程序存储器(地址范围为,单片机只读取片外程序存储器(地址范围为0000HFFFFH)中的程序代码。)中的程序代码。CPU不理会片内不理会片内4KB(地址范(地址范围围0000H0FFFH)的)的Flash存储器。存储器。(2)程序存储器的某些单元被固定用于各中断源的中断)程序存储器的某些单元被固定用于各中断源的中断服务程序的入口地址。服务程序的入口地址。64KB程序存储器空间中有程序存储器空间中有5个特殊单元个特殊单

34、元分别对应于分别对应于5个中断个中断源的中断服务子程序的中断入口,如表源的中断服务子程序的中断入口,如表2-3所示。所示。相差多少字节42 用汇编语言编程时,通常在这用汇编语言编程时,通常在这5个中断入口地址处都个中断入口地址处都放放1条条跳转指令跳转指令跳向对应的中断服务子程序,而不是直接存放中断服务跳向对应的中断服务子程序,而不是直接存放中断服务子程序。这是因为两个中断入口间隔仅有子程序。这是因为两个中断入口间隔仅有8个单元,如果这个单元,如果这8个单个单元存放中断服务子程序,往往是不够用的。元存放中断服务子程序,往往是不够用的。AT89S51复位后,程序存储器地址指针复位后,程序存储器地

35、址指针PC的内容为的内容为0000H,程序从程序存储器地址程序从程序存储器地址0000H开始执行程序。由于外部中断开始执行程序。由于外部中断0的的中断服务程序入口地址为中断服务程序入口地址为0003H,为使主程序不与外部中断,为使主程序不与外部中断0的的中断服务程序发生冲突,中断服务程序发生冲突,用汇编语言编程时,一般在用汇编语言编程时,一般在0000H单元单元存放一条跳转指令,转向主程序的入口地址。存放一条跳转指令,转向主程序的入口地址。2.4.2数据存储器空间数据存储器空间 数据存储器空间分为片内与片外两部分。数据存储器空间分为片内与片外两部分。.片内数据存储器片内数据存储器AT89S51

36、单片机的片内数据存储器(单片机的片内数据存储器(RAM)共有)共有128个单元,字节地址为个单元,字节地址为00H7FH。图图2-4为为AT89S51片内片内数据存储器的结构。数据存储器的结构。4344图图2-4AT89S51片内片内RAM的结构的结构地址为地址为00H1FH的的32个单元是个单元是4组通用工作寄存器区,组通用工作寄存器区,每个每个区包含区包含8B的工作寄存器,编号为的工作寄存器,编号为R7R0。用户可以通过指令改用户可以通过指令改变特殊功能寄存器变特殊功能寄存器PSW中的中的RS1、RS0这两位来切换选择当前的这两位来切换选择当前的工作寄存器区,如表工作寄存器区,如表2-2所

37、示。所示。地址为地址为20H2FH的的16个单元的个单元的128位(位(8位位16)可可进行进行位位寻址,也可寻址,也可以进行以进行字节寻址。字节寻址。地址为地址为30H7FH的单元为用户的单元为用户RAM区,区,只能进行字节寻址,只能进行字节寻址,用作存放数据以及作为堆栈区使用作存放数据以及作为堆栈区使用。用。.片外数据存储器片外数据存储器当片内当片内128B的的RAM不够用时,需要外扩数据存储器,最多可不够用时,需要外扩数据存储器,最多可外扩外扩64KB的的RAM。注意,虽然片内注意,虽然片内RAM与片外与片外RAM的低的低128B的地址是相同的,但是由于是两个不同的数据存储区,访问时使的

38、地址是相同的,但是由于是两个不同的数据存储区,访问时使用不同的指令,所以不会发生数据冲突。用不同的指令,所以不会发生数据冲突。452.4.3特殊功能寄存器特殊功能寄存器AT89S51单片机中的特殊功能寄存器的单元地址映射单片机中的特殊功能寄存器的单元地址映射在片内在片内RAM区的区的80HFFH区域中,共有区域中,共有26个,个,离散地离散地分布分布在该区域中,表在该区域中,表2-4所示为所示为SFR的名称及其分布。其的名称及其分布。其中有些中有些SFR还可进行位寻址,其位地址已在表还可进行位寻址,其位地址已在表2-4中列出。中列出。与与AT89C51相比,相比,AT89S51新增新增加了加了

39、5个个SFR:DP1L、DP1H、AUXR、AUXR1和和WDTRST(见表(见表2-4中的序号为中的序号为5、6、14、19和和20的寄存器)。的寄存器)。4647 从表从表2-4中可以发现,凡是可以进行中可以发现,凡是可以进行位寻址位寻址的的SFR,其,其字节地址的末位只能是字节地址的末位只能是0H或或8H。另外,若另外,若CPU读读/写没有定义的单元,将得到一个不确定的随机写没有定义的单元,将得到一个不确定的随机数。数。SFR块中的累加器块中的累加器A和程序状态字寄存器和程序状态字寄存器PSW已在已在前面作过介绍。下面简单介绍前面作过介绍。下面简单介绍SFR块中的某些块中的某些SFR,余

40、,余下的下的SFR与片内外围部件密切相关,将在后续介绍片内与片内外围部件密切相关,将在后续介绍片内外围部件时进行说明。外围部件时进行说明。501堆栈指针堆栈指针SP堆栈指针堆栈指针SP的内容的内容指示指示出出堆栈顶部堆栈顶部在在内部内部RAM块中的位置。块中的位置。它可指向内部它可指向内部RAM00H7FH的的任何单元。任何单元。AT89S51的堆栈结构的堆栈结构属于属于向上生长型向上生长型的堆栈(即每向堆栈压入的堆栈(即每向堆栈压入1字节数据时,字节数据时,SP的内的内容自动增容自动增1)。单片机)。单片机复位复位后,后,SP中的内容为中的内容为07H,使得堆栈使得堆栈实实际上从际上从08H

41、单元开始,单元开始,考虑到考虑到08H1FH单元分别是属于单元分别是属于13组组的工作寄存器区,所以在程序设计中要用到这些工作寄存器区最的工作寄存器区,所以在程序设计中要用到这些工作寄存器区最好在复位后且运行程序前,好在复位后且运行程序前,把把SP值改置为值改置为60H或更大的值,或更大的值,以避以避免堆栈区与工作寄存器区发生冲突。免堆栈区与工作寄存器区发生冲突。堆栈主要是为堆栈主要是为子程序调用子程序调用和和中断操作中断操作而设立的,具体功能而设立的,具体功能有两个:有两个:保护断点保护断点和和现场保护。现场保护。(1)保护断点。)保护断点。因为无论是子程序调用操作还是中因为无论是子程序调用

42、操作还是中断服务子程序调用操作,主程序都会被断服务子程序调用操作,主程序都会被“打断打断”,但最终,但最终都要返回到主程序继续执行程序。因此,应预先把主程序都要返回到主程序继续执行程序。因此,应预先把主程序的断点在堆栈中保护起来,为程序的正确返回做准备。的断点在堆栈中保护起来,为程序的正确返回做准备。(2)现场保护。)现场保护。在单片机执行子程序或中断服务在单片机执行子程序或中断服务子程序时,很可能要用到单片机中的一些寄存器单元,这子程序时,很可能要用到单片机中的一些寄存器单元,这就会破坏主程序运行时这些寄存器单元的原有内容。所以就会破坏主程序运行时这些寄存器单元的原有内容。所以在执行子程序或

43、中断服务程序之前,要把单片机中有关寄在执行子程序或中断服务程序之前,要把单片机中有关寄存器单元的内容保存起来,送入堆栈,这就是所谓的存器单元的内容保存起来,送入堆栈,这就是所谓的“现现场保护场保护”。51 堆堆栈栈的的操操作作有有两两种种:一一种种是是数数据据压压入入(PUSH)堆堆栈栈,另另一一种种是是数数据据弹弹出出(POP)堆堆栈栈。当当1字字节节数数据据压压入入堆堆栈栈时时,SP先先自自动动加加1,再再把把1字字节节数数据据压压入入堆堆栈栈;1字字节节数数据据弹弹出出堆堆栈栈后后,SP自自动动减减1。例例如如,(SP)=60H,CPU执执行行1条条子子程程序序调调用用指指令令或或响响应

44、应中中断断后后,PC内内容容(断断点点地地址址)进进栈栈,PC的的低低8位位PCL的的内内容容压压入入到到61H单单元元,PC的的高高8位位PCH的的内内容容压入到压入到62H,此时,此时,(SP)=62H。52532寄存器寄存器BAT89S51单片机在进行单片机在进行乘法和除法乘法和除法操作时要操作时要使用寄存使用寄存器器B。在在不执行乘、除法操作不执行乘、除法操作的情况下,可把它当作一个的情况下,可把它当作一个普通寄存器普通寄存器来使用。来使用。乘法运算乘法运算时,两个乘数分别在时,两个乘数分别在A、B中,执行乘法指令中,执行乘法指令后,后,乘积乘积存放存放在在BA寄存器对中。寄存器对中。

45、B中中放乘积的放乘积的高高8位,位,A中中放乘积的放乘积的低低8位。位。除法运算除法运算时,时,被除数被除数取自取自A,除数除数取自取自B,商商存放在存放在A中,中,余数余数存放于存放于B中。中。3AUXR寄存器寄存器AUXR是辅助寄存器,格式见是辅助寄存器,格式见图图2-5。54图图2-5AUXR寄存器的格式寄存器的格式 nDISALE:ALE的禁止的禁止/允许位。允许位。0:ALE有效,发出有效,发出ALE脉冲;脉冲;1:ALE仅在仅在CPU访问外部存储器时有效,不访问外部存访问外部存储器时有效,不访问外部存储器时,储器时,ALE引脚不输出脉冲信号,可减少对外部电路的引脚不输出脉冲信号,可

46、减少对外部电路的干扰。干扰。nDISRTO:禁止禁止/允许看门狗定时器允许看门狗定时器WDT溢出时的复位输溢出时的复位输出。出。0:WDT溢出时,允许向溢出时,允许向RST引脚输出一个高电平脉冲,引脚输出一个高电平脉冲,使单片机复位;使单片机复位;1:禁止:禁止WDT溢出时的复位输出。溢出时的复位输出。5556WDIDLE:WDT在空闲模式下的禁止在空闲模式下的禁止/允许位。允许位。0:允许:允许WDT在空闲模式下计数;在空闲模式下计数;1:禁止:禁止WDT在空闲模式下计数。在空闲模式下计数。4数据指针数据指针DPTR0和和DPTR1DPTR0和和DPTR1为双数据指针寄存器。是为了为双数据指

47、针寄存器。是为了便于访问数据存储器而设置的。便于访问数据存储器而设置的。DPTR0为为8051单片机单片机原有的数据指针,原有的数据指针,DPTR1为新增加的数据指针。为新增加的数据指针。AUXR1的的DPS位(见图位(见图2-6)用于选择这两个)用于选择这两个数据指针。当数据指针。当DPS=0时,选用时,选用DPTR0;当;当DPS=1时,时,选用选用DPTR1。AT89S51复位时,默认选用复位时,默认选用DPTR0。5758DPTR0(或(或DPTR1)是一个)是一个16位位的的SFR,其高位,其高位字节寄存器用字节寄存器用DP0H(或(或DP1H)表示,低位字节寄存)表示,低位字节寄存

48、器用器用DP0L(或(或DP1L)表示。)表示。DPTR0(或(或DPTR1)既)既可以作为一个可以作为一个16位寄存器来用,也位寄存器来用,也可以作为两个独立可以作为两个独立的的8位寄存器位寄存器DP0H(或(或DP1H)和)和DP0L(或(或DP1L)来用。来用。595AUXR1寄存器寄存器AUXR1是辅助寄存器,其格式如图是辅助寄存器,其格式如图2-6所示。所示。其中:其中:DPS数据指针寄存器选择位。数据指针寄存器选择位。0:选择数据指针寄存器选择数据指针寄存器DPTR0;1:选择数据指针寄存器选择数据指针寄存器DPTR1。606看门狗定时器看门狗定时器WDT看门狗定时器看门狗定时器W

49、DT包含包含1个个14位计数器位计数器和看门狗和看门狗复位寄存器(复位寄存器(WDTRST)。)。当当CPU由于干扰,程序由于干扰,程序陷入死循环或跑飞状态时,看门狗定时器陷入死循环或跑飞状态时,看门狗定时器WDT提供提供了一种使程序恢复正常运行的有效手段。了一种使程序恢复正常运行的有效手段。612.4.4位地址空间位地址空间AT89S51在在RAM和和SFR中共有中共有211个寻址位个寻址位的位地的位地址,位地址范围为址,位地址范围为00HFFH,其中其中00H7FH这这128位处于片内位处于片内RAM字节地址字节地址20H2FH单元中,如表单元中,如表2-5所示。所示。其其余余的的83个个

50、可可寻寻址址位位分分布布在在特特殊殊功功能能寄寄存存器器SFR中中,如如表表2-6所所示示。可可被被位位寻寻址址的的寄寄存存器器有有11个个,共共有有位位地地址址88个个,其其中中5个个位位未未用用,其其余余83个个位位的的位位地地址址离离散散地地分分布布于于片片内内数数据据存存储储器器区区字字节节地地址址为为80HFFH的的范范围围内内,其其最最低低位位的的位位地地址址与与其其字字节节地地址址相相同同,并且其字节地址的末位都为并且其字节地址的末位都为0H或或8H。63图图2-7AT89S51单片机的存储器结构单片机的存储器结构2.5AT89S51单片机的并行单片机的并行I/O端口端口AT89

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁