1 / 25

3 MCS-51 存储器和位处理器

3 MCS-51 存储器和位处理器. 1. 概论. 1 )随机存取存储器 RAM 双极型 RAM MOS 型 RAM (静态 RAM 、动态 RAM ) 2 )只读存储器 ROM 掩膜只读存储器 ROM 可编程序只读存储器 PROM 可擦写只读存储器 EPROM (紫外线擦写)、 E 2 PROM (电擦写). 2. MCS-51 存储器结构. 【 存储器映像 】. 1 )程序存储器 (片内 0000H ~ 0FFFH ).

Download Presentation

3 MCS-51 存储器和位处理器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3 MCS-51存储器和位处理器

  2. 1. 概论 1)随机存取存储器RAM • 双极型RAM • MOS型RAM(静态RAM、动态RAM) 2)只读存储器ROM • 掩膜只读存储器ROM • 可编程序只读存储器PROM • 可擦写只读存储器 EPROM(紫外线擦写)、E2PROM(电擦写)

  3. 2. MCS-51存储器结构 【存储器映像】

  4. 1)程序存储器(片内0000H~0FFFH) 8051单片机内部有4KB的掩膜ROM、8751单片机内部有4KB的EPROM,而8031内部没有程序存储器,必须外接程序存储器。 当 引脚接高电平时,CPU将首先访问内部程序存储器,在PC超过0FFFH单元时,CPU将自动转入访问外部程序存储器。 当 引脚接低电平时,所有取指操作均指向外部程序存储器。对于8031/8032, 必须接低电平(接地)。 从0003H~0032H单元被保留专用于中断服务程序。 2)数据存储器 MCS-51系列单片机数据存储器分内部数据存储器(即片内RAM)和外部数据存储器(即片外RAM)。

  5. A.内部数据存储器 低128单元:00H~7FH 高128单元:80H~FFH (1)内部数据存储区低128单元 • 工作寄存器区 • 一共4组,编号:工作寄存器组0~4 • 一组8个字节,用同一组编号R0~R7表示,某一时刻只能选用一组作为当前工作寄存器,由RS1,RS0决定。 • 地址:00H~1FH(32个字节) • 两种使用方法: • MOV A,R0或 MOV A,00H

  6. 位寻址区 • 字节地址:20H~2FH(16个字节) • 位地址:00H~7FH(为位操作指令准备,是位处理器的数据存储空间) • 例如:清除位地址00H单元 • CLR 00H • 而对片内的00H字节清零,则 • MOV 00H,#00H • 或 ANL 00H,#00H • 用户RAM区 • 供用户使用的一般RAM区,30H~7FH。 • 字节地址使用,堆栈区一般常开辟在这个区内。 • (看下图)

  7. 【存储器区的低128字节】

  8. (2)内部数据存储区高128单元 【特殊功能寄存器SFR】 在高地址段128~255共128个字节单元,特殊功能寄存器只占一部分,另一部分为空。对于非SFR不能进行读写操作;对于8052两部分共存,依靠不同的寻址方式实现区别访问。 右图给出了可直接位寻址的SFR的位地址空间→ 可参见前:PC指针、A、B、PSW、DPTR等等。

  9. B.外部数据存储器 由于MCS-51系列单片机内部数据存储器只有128字节,往往不够用,这就需要扩展外部数据存储器,外部数据存储器最多可扩至64KB。外部数据存储器的访问地址可由工作寄存器 Ri(8位)或数据指针DPTR(16位)提供,前者的寻址空间256字节,后者可寻址64KB。Ri由P0口输出;DPTR的DPL由P0口输出,DPH由P2口输出。读/写操作的数据由P0口输入/输出,P0口为分时复用。

  10. 3)MCS-51单片机系统的存储器结构特点 • 数据存储器和程序存储器分开,各有自己的寻址系统、控制信号和功能。 • 存储器有内外之分。 • 分开的存储结构更有效地使用较大而固定的程序和频繁地处理大量的数据或变量。 MCS-51单片机是由芯片内存储器和芯片外扩展存储器构成单片机应用系统的整个存储系统。(参见存储器映像图)

  11. 【存储器映像】

  12. 3. MCS-51的寻址方式 寻址:在单片机的存储空间中寻找指令规定的操作数据的地址,并将操作数取出来。在一条指令中,通常是根据指令的源操作数来决定寻址方式的。 1)立即寻址 指令中直接给出操作数的寻址方式。立即操作数用前面加有“#”号的8位或16位数来表示。 例如: 8位立即数操作 MOV A,#data MOV A,#3AH 16位立即数操作 MOV DPTR,#data16 注意:符号“#”表明其后跟的是立即数,立即数——就是数字量本身。

  13. 2)直接寻址 指令中操作数直接以单元地址的形式给出,就称之为直接寻址。能进行直接寻址的存储空间有SFR寄存器和内部数据RAM。 例如: MOV PSW,# 20H ; (PSW)←#20H MOV A,30H ;(A)←(30H) 规定:访问特殊功能寄存器SFR只能采用直接寻址方式。 MOV A, SP ; (A) ←(SP) MOV A, 81H ; (A) ←(SP) MOV P1, #5AH ; (P1)←(#5AH) MOV 90H,#5AH ; (P1)←(#5AH) MOV B, 30H ; (B) ←(30H) 相同 相同 SFR的地址表见书P41

  14. 3)寄存器寻址 操作数在寄存器中。因此指定了寄存器就能得到操作数。在寄存器寻址方式的指令中以符号名称来表示寄存器。 寄存器包括: 当前工作寄存器组 R0~R7 或 A、B 、DPTR等 例如: MOV A,R0 CLR A ;(A)←0 INC DPTR ;(DPTR)←(DPTR)+1 ADD R5,#20H ;(R5)←#20H+(R5)

  15. 4)寄存器间接寻址 以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。即操作数是通过寄存器间接得到的。 间接寻址的存储器空间包括:内部数据RAM和外部数据RAM。 例如: (与寄存器寻址比较) MOV A,@R0 ;R0=65H,内部(65H)→(A) MOVX A,@R1 ;R1=10H,外部(10H)→(A) MOVX @DPTR,A;外部RAM((DPTR))←(A) 注意: 1)“间接”表示某寄存器中的“内容”只是一个“单元地址”,这个地址单元中存放的数据才是要找的“操作数”。 2)符号“@”表示“在…”,其含义与读音皆同“at”。

  16. MOV A,@R0间接寻址 MOVX @DPTR,A间接寻址 MOVX A,@R1间接寻址

  17. 寄存器间接寻址方式的寻址空间 • 内部RAM低128单元 间址寄存器:R0 或 R1 通用形式为:MOV指令及@Ri(i=0或1) • 外部RAM 64K 间址寄存器:DPTR 通用形式为:MOVX指令及@DPTR 例如:MOVX A,@DPTR • 外部RAM的低256单元 间址寄存器:R0 或 R1 通用形式为:MOVX指令及@Ri(i=0或1) 例如:MOVX A,@R0 • 堆栈操作指令(PUSH和POP):以堆栈指针SP作为间址寄存器

  18. 在51系列单片机中访问特殊功能寄存器SFR只能采用直接寻址方式的原因:SFR分布在80H~0FFH范围内,而52系列单片机有256字节的片内RAM,其中的80H~0FFH的RAM与SFR所占地址重叠。在51系列单片机中访问特殊功能寄存器SFR只能采用直接寻址方式的原因:SFR分布在80H~0FFH范围内,而52系列单片机有256字节的片内RAM,其中的80H~0FFH的RAM与SFR所占地址重叠。 于是规定: 80H~0FFH范围内的RAM只能用寄存器间接寻址方式,而SFR只能用直接寻址方式。从而解决了地址冲突的问题。例如:  MOV A, 90H等效于 MOV A, P1属直接寻址  MOV A, @R0;[事先已知 (R0) = #90H ] 执行的操作:A ←(90H)属寄存器间接寻址,  随意写的指令如:MOV A, 85H则是非法的!(85H单元作为SFR是不可用的)

  19. 存储器配置(片内RAM) • 8051片内RAM128字节(00H—7FH) • 8052片内RAM256字节(00H—0FFH) 只能寄存器间接寻址 FFH FFH SFR分布在80H-FFH 其中92个位可位寻址 52子系列才有 的RAM区 80H 80H 8052 256字节 7FH 普通RAM区 8051 128字节 只能直接寻址 30H 2FH 位寻址区 20H 1FH 工作寄存器区 00H

  20. 5)变址寻址(基址寄存器+变址寄存器间接寻址)5)变址寻址(基址寄存器+变址寄存器间接寻址) 变址寻址只能对程序存储器中数据进行操作。由于程序存储器是只读的,因此变址寻址只有读操作而无写操作,在指令符号上采用MOVC的形式(如图所示)。 例如:MOVC A,@ A+DPTR ;A←(A+DPTR) 又如,MOVC A,@ A+PC ;A←(A+PC) 基址寄存器分别是DPTR和PC,变址寄存器是A。 注: 1.特点:动态寻址 2.用途:散转、查表 3.可寻址范围:以PC为基址,可寻址当前PC指针后的256字节;以DPTR为基址,可寻址64K字节空间的任意单元。 变址寻址示意图

  21. 6)相对寻址 以当前程序计数器PC的内容为基础,加上指令给出的一字节补码数(偏移量)形成新的PC值的寻址方式。 相对寻址用于修改PC值,主要用于实现程序的转移。 转移的目标地址计算公式: 目的地址=转移指令地址字节数+rel (rel:-128~127) 例如: JC 75H ;PC←PC+2+75H地址 在实际编程中,“rel”通常用标号代替

  22. 7)位寻址 查寻片内RAM单元中的20H~2FH和允许进行位操作的专用寄存器中的位地址,从该地址中取出位数据进行操作。 位寻址其实是一种直接寻址方式,不过其地址是位地址。 例如: SETB 10H ;将10H位置1【若22H单元中存放着数据40H,22H单元的Do位的位地址为10H,执行上述指令后(22H)=41H】 又如: MOV 32H,C ;32H←进位位C ORL C ,32H ;C←C∨32H

  23. 位寻址的寻址范围 • 内部RAM中的位寻址区: 单元地址位20H~2FH,位地址是00H~7FH • 专用寄存器的可寻址位 可供位寻址的专用寄存器供由11个,共由寻址位83位。 一个专用寄存器的寻址位在指令中的表示方法: • 直接使用位地址 • 使用位名称 • 单元地址加位数 • 专用寄存器符号加位数 • 用户自定义的符号地址 例如:专用寄存器中的PSW.5位 ⅰ.SERB D5H ⅲ.SETB D0.5H ⅱ.SETB F0 ⅳ.SETB PSW.5

  24. 片内RAM中有128个位可按位寻址的位,位地址:00H—7FH分布在:20H—2FH单元;片内RAM中有128个位可按位寻址的位,位地址:00H—7FH分布在:20H—2FH单元; • 另外,在SFR中还有92个位可按位寻址 D7 D6 D5 D4 D3 D2 D1 D0 7F 7E 7D 7C 7B 7A 79 78 2FH 位地址 47 46 45 44 43 42 41 40 28H 总共128个可按位寻址的位 FFH 3F 3E 3D 3C 3B 3A 39 38 27H 52子系列才有 的RAM区 37 36 35 34 33 32 31 30 26H 2F 2E 2D 2C 2B 2A 29 28 25H 80H 27 26 25 24 23 22 21 20 24H 7FH 1F 1E 1D 1C 1B 1A 19 18 23H 普通RAM区 17 16 15 14 13 12 11 10 17 22H 30H 2FH 0F 0E 0D 0C 0B 0A 09 08 位寻址区 21H 20H 1FH 工作寄存器区 07 06 05 04 03 02 01 00 20H 00H 单元地址

  25. 4. 布尔(位)处理器 MCS-51的位处理器包含位累加器Cy、位寻址寄存器、位寻址I/O口、位寻址内部RAM等等。 位操作指令能对内部RAM的128位(20H~2FH)和部分专用、特殊功能寄存器进行直接位寻址。 对每一个可位寻址的位,布尔(位)处理器能实现置位、清零、求反、传送、判调和逻辑运算等操作。

More Related