单片机第三章 MCS-51存储器与布尔处理器_第1页
单片机第三章 MCS-51存储器与布尔处理器_第2页
单片机第三章 MCS-51存储器与布尔处理器_第3页
单片机第三章 MCS-51存储器与布尔处理器_第4页
单片机第三章 MCS-51存储器与布尔处理器_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第三章MCS-51存储器和布尔处理器内存:存放当前执行的程序和数据,主机能直接访问,存取速度快,容量小。外存:存放暂不执行的程序和数据,主机不能直接访问,存取速度慢,容量大。

存储器的功能是存储程序和数据。§3.1概述3.1.1存储器的分类2/2/20231RAM存储器双极型:由双极型晶体管构成,速度快、功耗大、集成度低、价格贵。MOS型:由MOS管构成,速度比双极型RAM慢、功耗小、集成度高、价格便宜。按信息的存储方式分为:静态RAM和动态RAM及新出现的iRAM。ROMEEPROM,电擦除(擦除以Byte为单位)。可擦写EPROM,紫外线(一次全部)擦除,需专门的擦除设备。掩膜ROM,出厂时已固化。可编程PROM,用户一次固化。FLASHROM,随机改写,速度快(擦除以Block为单位)。2/2/20232EEPROMFLASHROM区别FLASH集成度高,容量大,写入速度更快。FLASH擦除以Block为单位;EEPROM擦除以Byte为单位2/2/202333.1.28051的片内存储器8051单片机与一般微机的存储器配置方式很不相同。一般微机通常采用冯·诺依曼结构,只有一个逻辑空间,可以随意安排ROM或RAM。访问存储器时,同一地址对应唯一的存储单元,可以是ROM也可以是RAM,并用同类访问指令。而MCS-51则不同:2/2/202348051在物理结构上设计成程序存储器与数据存储器独立分开的哈佛结构:

片内程序存储器4KB(ROM0000H~0FFFH)

片内数据存储器128B(RAM00H~7FH)★§3.2MCS-51的存储器结构8051在物理结构上有四个存储空间:

片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。2/2/2023564KBROMEA=0EA=10000H0FFFH1000HFFFFH4KBROMFFH80H7FH00HSFRRAM64KBRAM(I/O)0000HFFFFH片内片外片外程序存储器数据存储器2/2/20236

8051在逻辑上,即从用户角度上8051有三个存储空间:

片内外统一编址的程序存储器

片内外不统一编址的数据存储器特殊功能寄存器(片内)★访问这几个不同的逻辑空间时,采用的指令:片内外程序存储器空间----MOVC片内数据存储器空间和SFR----MOV片外数据存储器地址空间----MOVX2/2/202373.2.1程序存储器及地址空间作用--程序存储器用于存放编好的程序和表格常数。①8051片内有4K字节ROM,片外用16位地址线最多可扩展64K字节ROM,两者是统一编址的。★如果EA端保持高电平,8051执行片内前4KBROM地址(0000H~0FFFH)中的程序。当寻址范围超过4KB(1000H~FFFFH)时,则从片外存储器取指令。★当EA端保持低电平时,8051的所有取指令操作均在片外程序存储器中进行,这时片外存储器可以从0000H开始编址。2/2/20238②在程序存储器中,有6个单元具有特殊功能0003H:外部中断0入口。000BH:定时器0溢出中断入口。0013H:外部中断1入口。001BH:定时器1溢出中断入口。0023H:串行口中断入口。使用时,通常在这些入口地址处存放一条绝对跳转指令,使程序跳转到用户安排程序上。0000H:

8051复位后,PC=0000H,即程序从0000H开始执行指令。2/2/202393.2.2数据存储器及地址空间数据存储器片外RAM64KB,地址范围0000H~FFFFH片内RAM128B,地址范围00H~7FH使用时只能用MOVX指令访问使用MOV指令访问,可以进行堆栈操作2/2/202310片内数据存储器空间分布图通用RAM区(80B)位地址区(16B)寄存器区4组(32B)7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器区4组(32B).........①由PSW中的2位RS1、RS0来决定选哪一组为当前工作寄存器:

RS1、RS0=00选0组RS1、RS0=01选1组RS1、RS0=10选2组RS1、RS0=11选3组②在位地址区,每一个BIT都有一个

地址,共16×8=128位00H30H2FH20H1FH...2/2/202311片内数据存储器空间分布图通用RAM区(80B)位地址区(16B)7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器0组寄存器区4组(32B).........RS1、RS0=00R7R6R5R4R3R2R1R000H01H02H03H04H05H06H07H00H30H2FH20H1FH...2/2/202312片内数据存储器空间分布图通用RAM区(80B)位地址区(16B)7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器1组R7R6R5R4R3R2R1R008H09H0AH0BH0CH0DH0EH0FH寄存器区4组(32B).........RS1、RS0=0100H30H2FH20H1FH...2/2/202313片内数据存储器空间分布图通用RAM区(80B)位地址区(16B)7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器2组R7R6R5R4R3R2R1R010H11H12H13H14H15H16H17H寄存器区4组(32B).........RS1、RS0=1000H30H2FH20H1FH...2/2/202314片内数据存储器空间分布图通用RAM区(80B)位地址区(16B)7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器3组R7R6R5R4R3R2R1R018H19H1AH1BH1CH1DH1EH1FH寄存器区4组(32B).........RS1、RS0=1100H30H2FH20H1FH...2/2/202315片内数据存储器空间分布图通用RAM区(80B)位地址区(16B)7FH寄存器3组寄存器2组寄存器1组寄存器0组位地址区20H21H22H23H24H25H26H27H28H29H2AH2BH2CH2DH2EH2FH00H01H02H03H04H05H06H07H08H0FH10H7FH78H70H68H60H58H50H48H40H38H30H28H20H77H6FH67H1FH5FH57H4FH47H3FH37H2FH27H1FH17H........................D7D6D5D4D3D2D1D0.........00H30H2FH20H1FH...2/2/202316片内数据存储器空间分布图通用RAM区(80B)位地址区(16B)00H30H2FH20H1FH7FH寄存器3组寄存器2组寄存器1组寄存器0组通用RAM区............共80个字节,作为一般的数据缓冲区并可设置堆栈区2/2/2023173.2.3特殊功能寄存器(21个字节)SFR

(SpecialFunctionalRegister)见书P40表3-6①与ALU相关的(3个)

ARegister(Accumulator):

累加器,通常用A或ACC表示。可字节寻址(E0H),

也可位寻址(E0H~E7H)

在运算器做运算时其中一个数一定是在ACC中。

BRegister:暂存寄存器。

暂存寄存器。在做乘、除法时放乘数或除数及结果。

PSW(ProgramStatusWord

):

PSW是8位寄存器,用于作为程序运行状态的标志。借此,可以了解CPU的当前状态,并作出相应的处理。2/2/202318它的各位功能如下:当CPU进行各种逻辑操作或算术运算时,为反映操作或运算结果的状态,把相应的标志位置1或清0。这些标志的状态,可由专门的指令来测试,也可通过指令来读出。它为计算机确定程序的下一步进行方向提供依据。PSW寄存器中各位的名称及位置如上所示,下面说明各标志位的作用。D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVPPSW位地址2/2/202319

CY:进位标志。

加减运算时,保存最高位进位、借位状态。

AC:半进位标志。

例:78H+97H01111000+10010111100001111

D7HD6HD5HD4HD3HD2HD1HD0H

CYACF0RS1RS0OVPPSW位地址有进位CY=1没有半进位AY=02/2/202320

RS1、RS0:工作寄存器组选择位。

00选择工作寄存器0组(内部RAM地址00H~07H)

01选择工作寄存器1组(内部RAM地址08H~0FH)

10选择工作寄存器2组(内部RAM地址10H~17H)

11选择工作寄存器3组(内部RAM地址18H~1FH)

P:奇偶校验位,它用来表示累加器A内容中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。例:某运算结果是78H(01111000),P=0。D7HD6HD5HD4HD3HD2HD1H

D0HCY

ACF0

RS1

RS0OV

PPSW位地址2/2/202321F0:用户标志位。作为软件标志,由编程人员决定何时使用。OV:OV(PSW.2):溢出标志位,运算结果的D7或 D6位中只有一位产生进/借位时,置位OV,表 示产生溢出。D7HD6HD5HD4HD3HD2HD1H

D0HCY

AC

F0RS1RS0

OVPPSW位地址2/2/202322②与指针相关的(2个)

SP(StackPointer):

堆栈指针,8位寄存器,用来指定堆栈的栈顶位置,初值为07H,它是加1计数。

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

数据指针可以用它来访问外部数据存储器中的任一单元,也可以作为通用寄存器来用,由我们自已决定如何使用。2/2/202323P0、P1、P2、P3:

四个并行输入/输出口的寄存器(锁存器)。它里面的内容对应着管脚的输出。SCON(SerialControl

Register)SBUF

(SerialDateBuffer)PCON(PowerControl

Register)③与端口相关的(7个)④与定时/计数器相关的(6个)TMOD(Timer/CounterModeRegister)

定时器工作模式寄存器。TCON(Timer/CounterControlRegister)

定时器控制寄存器。TH0、TL0、TH1、TL1:分别是T0、T1的记数初值寄存器。2/2/202324IP(InterruptPriority

Register)IE(InterruptEnableRegister)⑤与中断相关的(2个)课堂练习补充题:下列是关于8031单片机存储空间的描述,分析其对错:

a.特殊功能寄存器容量为21B,没有位地址。

b.外部数据存储器容量可达64kB,字节地址和位地址范围均为0000H~FFFFH

c.程序存储器容量可达64kB,字节地址和位地址范围均为0000H~FFFFH2/2/202325d.内部数据存储器容量为128B,字节地址和位地址范围均为00H~7FHe.特殊功能寄存器容量为21B,有一部分特殊功能寄存器具有位地址。f.程序存储器容量可达64kB,地址范围为0000H~FFFFH。

2.MCS-51单片机的工作寄存器组如何选择?若PSW的RS1、RS0位的内容是01,那么此时工作寄存器R1的字节地址是多少?3.MCS-51内部RAM的寄存器区一共有多少个存储单元?分为多少组?每组有多少个存储单元?分别以什么作为寄存器名?2/2/2023264.8051存储空间的结构与8086/8088有什么不同?它的物理结构是怎样的?5.MCS-51单片机的内部数据存储器容量是多少?它有什么特点?2/2/202327注(了解):8052/8032既有高128B的内部RAM,又有全部的SFR,它们地址空间重叠,依靠不同的寻址方式实现区别访问.比较:

温馨提示

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

评论

0/150

提交评论