特殊功能寄存器课件_第1页
特殊功能寄存器课件_第2页
特殊功能寄存器课件_第3页
特殊功能寄存器课件_第4页
特殊功能寄存器课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

存储器、堆栈、SFR1数据存储器——RAM(RandomAccessMemory)程序存储器——ROM(ReadOnlyMemory)闪速存储器——FlashMemoryEPROM——(UV)ErazibleProgrammableROMEEPROM/E2PROM——ElectricalErasableProgrammableROM静态存储器

SRAM——StaticRAM

(动态存储器

DRAM——DynamicRAM)按字节寻址:每个字节(8个位)占一个地址按位寻址:有的存储器每一个位就有一个地址单片机的存储器——几个有关的概念:2 8051的存储器组织8051存储器可以分成两大类:﹡RAM,CPU在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。它用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。﹡ROM是一种写入信息后不易改写的存储器。断电后,ROM中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。

32.1.2哈佛结构◆

8051单片机与一般微机的存储器配置方式很不相同。

◆51单片机的存储器在物理结构上分为程序存储空间和数据存储空间,共有四个:片内和片外程序存储空间以及片内和片外数据存储空间,这种在物理结构上把程序存储器和数据存储器分开的结构形式称为哈佛结构。5689C51单片机存储器配置片内RAM128字节(00H—7FH);片内RAM前32个单元是工作寄存器区(00H—1FH)片内RAM有128个可按位寻址的位,占16个单元。位地址编号为:00H—7FH,分布在20H—2FH单元片内21个特殊功能寄存器(SFR)中:地址号能被8整除的SFR中的各位也可按位寻址(P.33-34)可寻址片外RAM64K字节(0000H—FFFFH)可寻址片外ROM64K字节(0000H—FFFFH)片内FlashROM4K字节(000H—FFFH)7¶52对应的RAM有384Byte,其中多出的128Byte只能进行间接寻址用@¶而C51是通过对自定义的数据类型来区分访问的存储空间的:片内外程序存储器空间----code片内数据存储器空间和SFR----data片外数据存储器地址空间----xdata片内间接寻址区间-------idata9存储器配置(片内RAM)片内RAM

128字节(00H—7FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SFR分布在80H-FFH其中92个位可位寻址80HFFH所有的RAM区(包括位寻址区、工作寄存器区)都可以用于存放数据,故也称为数据缓存寄存器89C51128字节1000H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器区3工作寄存器区2工作寄存器区1工作寄存器区00FH10H17H18H片内RAM前32个单元是工作寄存器区(00H—1FH)存储器配置(片内RAM)11这些可位寻址的空间,可通过执行指令直接对某一位进行操作,如置1、清0或判1、判0等,可用作软件标志位或用于位(布尔)处理。这是一般微机所不具备的,这种位寻址能力是8051所独有的。20H~2FH:既可以字节操作,又可以位操作,但是要用不同的指令来区分; mov20h,a setb00h setb20.013存储器配置(片内RAM)89C51片内RAM

128字节(00H—7FH)89C52片内RAM

256字节(00H—0FFH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SFR分布在80H-FFH其中92个位可位寻址80HFFH89C51128字节89C52256字节只能直接寻址只能寄存器间接寻址(P14)既可间接寻址,又可直接寻址14程序存储器外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH15 org 0000h jmp main (跳过中断入口地址区) org 0100hmain: mov p1,#55h mov r0,#3fhLoop: djnz r0,loop cpl a mov p1,a jmp main end17可寻址片外RAM64K字节

(0000H—FFFFH);可寻址片外ROM64K字节

(0000H—FFFFH);片内FlashROM4K字节

(0000H—FFFH);FFFFH0000H可寻址片外RAM64K字节FFFFH0000H可寻址片外ROM64K字节FFFH000H可寻址片内FlashROM4K字节89C517FH00H片内RAM128字节FFH80H存储器配置(片内RAM)18堆栈:

在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循先进后出和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。功用:1)子程序调用和中断服务时CPU自动将当前PC值压栈保存,返回时自动将PC值弹栈。2)保护现场/恢复现场3)数据传输19从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶……00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SP栈顶当前要出栈的数据数据出栈SP-1指向下一个将要出栈的数据初始SP堆栈区由特殊功能寄存器堆栈指针SP管理

堆栈区可以安排在RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。21从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶……00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SP-1指向新的栈顶,也就是下一个将要出栈的数据数据出栈初始SP堆栈区由特殊功能寄存器堆栈指针SP管理

堆栈区可以安排在RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。22在实际应用中,常需在RAM区设置堆栈。80C51的堆栈一般设在30H~7FH的范围内。栈顶的位置由SP寄存器指示。复位时SP的初值为07H,在系统初始化时可以重新设置。2389C51特殊功能寄存器(SFR)▼特殊功能寄存器SFR(专用寄存器)专用于控制、选择、管理、存放单片机内部各部分的工作方式、条件、状态、结果的寄存器。▼不同的SFR管理不同的硬件模块,负责不同的功能——各司其职换言之:要让单片机实现预定的功能,必须有相应的硬件和软件,而软件中最重要的一项工作就是对SFR写命令(要求)。252627IP(InterruptPriority

Register)IE(InterruptEnable

Register)

与中断相关的(2个)29程序计数器PC(ProgramCounter)PC

不是一个特殊功能寄存器SFR,但其作用又十分重要和特殊!!!特点:▼它是16位的按机器周期自动增1计数器▼一切分支/跳转/调用/中断/复位等操作的本质就是:改变PC值▼总指向下一条指令所在首地址(当前PC值)特殊功能寄存器(PC)30

DPTR(DataPointer)(分成DPH、DPL两个):

数据指针可以用它来访问外部数据存储器中的任一单元,也可以作为通用寄存器来用,由我们自已决定如何使用。31数据指针寄存器DPTR数据指针DPTR是一个16位的专用寄存器,其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。既可作为一个16位寄存器DPTR来处理,也可作为两个独立的8位寄存器DPH和DPL来处理。DPTR主要用来存放16位地址,当对64KB外部数据存储器空间寻址时,作为间址寄存器用。在访问程序存储器时,用作基址寄存器。mova,@a+dptr3289C51有21个SFR(89C52有26个)P.33~34已知的P0、P1、P2、P3等四个8位I/O口分别由名为P0、P1、P2、P3四个SFR代表。堆栈指针寄存器SP(StackPointer):总是指向栈顶,压栈时先(SP)+1然后数据进栈;弹栈时数据先出栈然后(SP)-1。累加器ACC:一个被众多指令用得最频繁的特殊功能寄存器(如:运算、数据传输…)。副累加器B:一个经常与ACC配合在一起使用的特殊功能寄存器(如:乘法、除法),此外,它也经常当作普通寄存器使用。特殊功能寄存器(P0—P3,SP,A,B)33程序状态字寄存器

PSW:CYACF0RS0OVPRS1PSW.7PSW.0▼CY(PSW.7)进位/借位标志位。若ACC在运算过程中发生了进位或借位,则CY=1;否则=0。它也是布尔处理器的位累加器,可用于布尔操作。▼AC(PSW.6)半进位/借位标志位。若ACC在运算过程中,D3位向D4位发生了进位或借位,则CY=1,否则=0。机器在执行“DAA”指令时自动要判断这一位,我们可以暂时不关心它。▼F0(PSW.5)可由用户定义的标志位。PSW.6PSW.5特殊功能寄存器(PSW)34程序状态字寄存器

PSW:CYACF0RS0OVPRS1PSW.7PSW.0PSW.6PSW.5特殊功能寄存器(PSW)例:78H+97H01111000+10010111100001111

有进位CY=1没有半进位AC=035程序状态字寄存器

PSW(续):CYACF0RS0OVPRS1PSW.7PSW.0▼RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位。RS1,RS0=01则选择了工作寄存器组1区R0~R7分别代表08H~0FH单元。RS1,RS0=10则选择了工作寄存器组2区R0~R7分别代表10H~17H单元。RS1,RS0=11则选择了工作寄存器组3区R0~R7分别代表18H~1FH单元。PSW.4PSW.3RS1,RS0=00则选择了工作寄存器组0区R0~R7分别代表08H~0FH单元。36片内RAM前32个单元(00H—1FH)是工作寄存器区

(由PSW中的RS1,RS0决定)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器区3工作寄存器区2工作寄存器区1工作寄存器区037程序状态字寄存器

PSW(续):CYACF0RS0OVPRS1PSW.7PSW.0▼OV(PSW.2)溢出标志位。

OV=1时特指累加器在进行带符号数(-128—+127)运算时出错(超出范围);OV=0时未出错。▼PSW.1未定义。▼P(PSW.0)奇偶标志位。

P=1表示累加器中“1”的个数为奇数

P=0表示累加器中“1”的个数为偶数CPU随时监视着ACC中的“1”的个数,并反映在PSW中PSW.2PSW.1例:某运算结果是78H(01111000),P=0。 它常用在校验串行通信中的数据是否出错。3889C51单片机存储器配置片内RAM128字节(00H—7FH);片内RAM前32个单元是工作寄存器区(00H—1FH)片内RAM有128个可按位寻址的位,占16个单元。位地址编号

温馨提示

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

评论

0/150

提交评论